Revision history for Dochazka-REST
0.001 2014-06-07 22:35 CEST
- start distro using 'module-starter'
- bring in useful scripts from perl-CELL project (release.sh, dev.sh,
test.sh)
- set license to BSD-3-Clause
- Spec.pm: add technical specification (current state)
- add empty shells: bin/dochazka-rest, REST.pm, Activity.pm, Employee.pm,
History.pm, Interval.pm, Lock.pm, Policy.pm, Status.pm
- generate a proper README
0.002 2014-06-07 23:07 CEST
- tweak release script
- update MANIFEST (put files in alphabetical order)
0.003 2014-06-09 10:53 CEST
- move outdated top-level README to doc/
- add a new top-level README stub
- git repo cleanup
- t/001-init.t: test for server initialization routine
- REST.pm: start implementing init routine
0.004 2014-06-09 18:23 CEST
- REST.pm: produce a more convincing 'init' method
- t/000-depends.t: check dependencies
- t/001-init.t: unit tests for the 'init' method
- t/pod-coverage.t: check pod only in taxative list of modules (i.e.,
ignore config/*.pm)
0.005 2014-06-11 10:01 CEST
- REST.pm: add $REST singleton, flesh out init routine
0.006 2014-06-13 15:38 CEST
- add project-web.sh script to update http://dochazka.sourceforge.net
with contents of Spec.pm
- Spec.pm: work on "intervals" table -- use tsrange and EXCLUDE constraint
with gist index to exclude overlapping intervals for a given employee
- config/dbinit_Config.pm: fix data_source in DBINIT_CONNECT
- REST.pm: flesh out initialization routine
- t/001-init.t: improve initialization routine unit test
- add missing distro files to MANIFEST
- add auto-generated README file to top-level git repo
- get rid of old OBS CI stuff (moved to archive)
0.007 2014-06-13 21:59 CEST
- config/dbinit_Config.pm: revamp
- REST.pm: add reset_db routine, make separate connect_db routine that can
connect to any database, add create_tables routine
- t/001-init.t: unit test now drops and re-creates the testing database
0.008 2014-06-19 09:34 CEST
- REST.pm: minor cleanup in connect_db(), init now optionally takes verbose
parameter (and passes it to $CELL->load)
0.009 2014-06-19 15:51 CEST
- status-strings.pod: Status string verbiage removed from Spec.pm because
we will not implement status strings in version 1.0
- dbinit_Config.pm: add lots more SQL
- Spec.pm: try to keep documentation in stride with dbinit_Config.pm
0.010 2014-06-19 22:38 CEST
- add more SQL to dbinit_Config.pm
- Spec.pm: keep documenting the table definitions
0.011 2014-06-21 16:51 CEST
- dbinit_Config.pm: AutoCommit default to 1, add nicks table, add
current_priv SQL function
- employee_Config.pm: add configuration file just for employee
- t/001-init.t: cleanup
- t/002-insert-employee.t: new tests
- REST.pm: improve create_tables
- Spec.pm: blearily try to write employee-related verbiage
0.012 2014-07-04 02:08 CEST
- t/: add license boilerplate
- t/: rename 002-insert-employee.t to 002-nick.t
- start writing App::Dochazka::REST::Model::Nick
- release.sh: run bash-ism with bash instead of sh
0.013 2014-07-04 10:17 CEST
- Nick.pm: make it a little less naive
- t/002-nick.t: add tests
0.014 2014-07-04 13:37 CEST
- t/002-nick.t: test for non-existent IDs and nicks
0.015 2014-07-04 16:19 CEST
- got rid of Nick as a separate entity after figuring out that a simple
UNIQUE constraint in the employees table does what I needed
- create_tables now adds superuser employee with admin privs
0.016 2014-07-06 02:37 CEST
- Dochazka_Message_en.conf: add "db not reachable" error message
- break employeehistory table into schedhistory and privhistory
- add a second round of dbinit SQL statements to ensure that the root
employee is immutable
- Employee.pm: refactoring (WIP)
- Spec.pm: update verbiage
- stored procedure 'current_priv' now returns 'passerby' if current priv
level cannot be determined
- t/002-root.t: new tests for immutable root employee
- t/003-current-priv.t: new tests for current_priv stored procedure
- t/004-employee.t: skip tests for Employee.pm (WIP)
0.016 2014-07-06 02:41 CEST
- fix MANIFEST
0.017 2014-07-06 22:17 CEST
- refactored Employee.pm
- t/004-employee.pm: new unit tests for Employee.pm
- dbinit_Config.pm: add remark field to employees table
0.018 2014-07-07 12:30 CEST
- config/Dochazka_Config.pm: add comments
- config/employee_Config.pm: add SQL_EMPLOYEE_CURRENT_PRIV
- Employee.pm: _load now resets employee object, start working on ACL
checks
- t/004-employee.t: finished refactoring old tests
0.019 2014-07-07 14:44 CEST
- REST.pm: implement connect_db_pristine and set DOCHAZKA_EID_OF_ROOT
site param
- t/: adjust tests for same
0.020 2014-07-07 16:08 CEST
- Employee.pm: implement UPDATE functionality
0.021 2014-07-07 16:48 CEST
- Employee.pm: add accessor functions
- t/004-employee.pm: add tests for accessors
0.022 2014-07-07 19:23 CEST
- remove Policy.pm as it is only a stub and might not be needed
- config/dbinit_Config.pm: make a generalized priv_at_timestamp function
and change current_priv into a wrapper around that function
- Priv.pm: move priv_by_eid to the new Priv.pm module
- Employee.pm: add 'priv' accessor method, edit POD a little
0.023 2014-07-07 20:35 CEST
- rename Priv.pm to Privhistory.pm
- Privhistory.pm: start working on insert_priv
- t/005-privhistory.t: start implementing privhistory tests
0.024 2014-07-07 21:27 CEST
- fix some nitpicks
0.025 2014-07-08 01:30 CEST
- employee_Config.pm, Employee.pm: eliminate double DBI call by
including call to current_priv() in SELECT statement
- add stub Timestamp.pm for timestamp-related utilities
- dbinit_Config.pm: make priv_at_timestamp use '<=' instead of '<'
- Privhistory.pm, t/005-privhistory.t: add privhistory_by_eid
0.026 2014-07-08 10:46 CEST
- Employee.pm: make _load return DOCHAZKA_RECORDS_FETCHED when SELECT
succeeds
0.027 2014-07-08 12:35 CEST
- Employee.pm, t/004-employee.pm: fix buggy eid_by_nick function, export
it, add test for it
- Spec.pm: write verbiage for employee Perl API current state
0.028 2014-07-08 22:51 CEST
- Privhistory.pm: implementing OO interface to privhistory table
- Factory.pm: add new module under Util/ with 'makereset' function
- Employee.pm: use new makereset function
0.029 2014-07-08 23:46 CEST
- Privhistory.pm: use the new function 'makereset', move priv_by_eid to
Factory.pm (not sure if it really belongs here, though)
- Factory.pm: refactor makereset
0.030 2014-07-09 00:29 CEST
- Factory.pm, Employee.pm, Privhistory.pm: add and use 'make_spawn'
- t/006-reset.t: add test demonstrating how spawn "validates" the
attributes provided in PARAMHASH
- Privhistory.pm no longer exports any functions
0.031 2014-07-09 01:32 CEST
- t/005-privhistory.t: add unit tests
- Privhistory.pm: make 'load' trigger warning if nothing found
0.032 2014-07-09 12:09 CEST
- make privhistory SQL statements return int_id where appropriate
- t/005-privhistory.t: add some int_id tests
- start working on a delete method for privhistory objects
0.033 2014-07-09 14:41 CEST
- dbinit_Config.pm: fix valid_sched_intvl trigger, add translate_interval
function
- Spec.pm: fix date in sample schedule tsrange (year was wrong)
- rename privhistory_Config.pm to priv_Config.pm
0.034 2014-07-09 15:07 CEST
- schedule_Config.pm: add SQL_SCHEDULE_INSERT param
- add stubby Schedule.pm and Schedintvl.pm in lib/Dochazka/REST/Model
0.035 2014-07-09 23:12 CEST
- dbinit_Config.pm: rename translate_interval to translate_schedintvl,
merge 'schedhistory' table into 'schedules'
- schedule_Config.pm: add definitions for SQL_SCHEDINTVL_INSERT and
SQL_SCHEDINTVL_SELECT
- add Schedintvl.pm, remove Schedhistory.pm
- Spec.pm: update schedule verbiage to reflect table structure change
- Interval.pm: make a stub class for activity intervals
- t/007-interval.t: add stub unit-test file for interval objects
0.036 2014-07-10 00:48 CEST
- Model/Schedule.pm: fix up boilerplate, flesh out insert method
- Util/Timestamp.pm: add qw( $today $yesterday $tomorrow ) exports
- t/005-privhistory.t: import $today, $yesterday from Timestamp.pm
- rename t/007-interval.t to t/007-schedule.t
- t/007-schedule.t: import $today, $yesterday from Timestamp.pm, add tests for
insert method
0.037 2014-07-10 15:57 CEST
- begin implementing new schedules concept (table structure and other
database artifacts, objects, object methods, unit tests)
- rename Schedintvl.pm to Schedintvls.pm because the object will contain
all the intervals that make up a single schedule
- for now, the new schedules concept is described in tickets/tickets
pending re-write of schedule-related verbiage in Spec.pm
- Factory.pm: make_reset function now calls 'populate' method _iff_ there
is one
- Schedintvls.pm now uses populate method to automatically load a new
"scratch SID" every time an object is spawned/reset
0.038 2014-07-10 16:32 CEST
- Spec.pm: adjust verbiage to accommodate revamped schedule logic
0.039 2014-07-10 17:31 CEST
- Spec.pm: re-organize sections, add note concerning 'jsonb' type in
PostgreSQL 9.4
- re-generate project web page http://dochazka.sourceforget.net
0.040 2014-07-11 10:03 CEST
- Schedintvls, t/007-schedule.t: implement basic insert method, start working
on a translate method
- dbinit_Config.pm, schedule_Config.pm: fix translate_schedintvl
0.041 2014-07-11 15:38 CEST
- schedule_Config.pm: develop SQL_SCHEDINTVLS_SELECT statement
- Schedintvls.pm: rename translate to load, load now succesfully converts
tsranges array to our more-readable schedule format (but doesn't yet sort
the array), added json method, started work on sort method
- t/007-schedule.t: add tests for $schedintvls->load
0.042 2014-07-11 20:27 CEST
- schedule_Config.pm: add ORDER BY to SQL_SCHEDINTVLS_SELECT, so the intervals
come out of the database pre-sorted
- Schedintvls.pm: get rid of sort method
- t/007-schedule.t: insert schedule intervals in reverse chronological order
to test sorting functionality
0.043 2014-07-11 22:40 CEST
- dbinit_Config.pm: add remark field to schedules table, fix a small bug
(round_effective trigger applies to schedhistory table, not schedules)
- schedule_Config.pm: tweak param names, fix SQL_SCHEDULE_INSERT, add
SQL_SCHEDULE_SELECT
- Schedule.pm: fix attributes, revamp insert method
- t/007-schedule.t: add seven more unit tests
0.044 2014-07-12 22:08 CEST
- schedule_Config.pm: add SQL_SCHEDHISTORY_INSERT,
SQL_SCHEDHISTORY_SELECT_ARBITRARY, and SQL_SCHEDHISTORY_SELECT_CURRENT
- Schedintvls.pm: add debugging code to populate method
- t/007-schedule.pm: add unit tests for $schedhistory->insert,
$schedhistory->load
0.045 2014-07-13 09:26 CEST
- schedule_Config.pm: make two schedule SELECT statements: "select sid
given schedule" and "select schedule given sid"
- Schedule.pm: get rid of load method, add get_json exported function
- t/007-schedule.pm: add tests for get_json
0.046 2014-07-13 10:20 CEST
- Schedintvls.pm: cleanup; put translated intervals into a separate attribute,
$self->{schedule}, instead of overwriting $self->{intvls}
0.047 2014-07-13 11:08 CEST
- schedule_Config.pm, Schedintvls.pm, t/007-schedule.t: implement and test
delete method for Schedintvls objects
- Spec.pm: clarifications
0.048 2014-07-13 11:46 CEST
- Spec.pm: write up the "Privilege levels in the Perl API" section
0.049 2014-07-13 13:12 CEST
- tickets/tickets: add new tickets, clean up old tickets
- regenerate project webpage
- REST.pm: rename init -> init_no_db and make a new 'init' that "does
everything", including connecting to the database
- t/: adjust tests to use the new 'init' and 'init_no_db' methods
0.050 2014-07-13 16:15 CEST
- dbinit_Config.pm: implement schedule_at_timestamp and current_schedule stored
procedures
- employee_Config.pm: have SELECTs get employee's current_schedule
- t/007-schedule.t: test for presence of schedule attribute in employee object
0.051 2014-07-13 16:55 CEST
- employee_Config.pm: add SQL_EMPLOYEE_SCHEDULE_AT_TIMESTAMP and
SQL_EMPLOYEE_CURRENT_SCHEDULE
- REST.pm: add 'eid_of_root' method
- Employee.pm: add 'schedule' accessor
- Factory.pm: add 'schedule_by_eid' function
- t/002-root.t: add several 'eid_of_root' unit tests
- t/004-employee.t: clean up, add more tests
0.052 2014-07-13 20:27 CEST
- Spec.pm: update to reflect current state of code
- dbinit_Config.pm, Schedintvls.pm, t/007-schedule.t: minor cleanup
0.053 2014-07-13 22:24 CEST
- dbinit_Config.pm: add activities and intervals tables
- Spec.pm: work on Activities, Intervals, and Locks sections
0.054 2014-07-14 10:08 CEST
- Activity.pm: adapt existing code from Employee.pm
- rename 'name' column to 'code' in 'activities' table
- activity_Config.pm: new file
0.055 2014-07-14 12:10 CEST
- Spec.pm: change L<...> to C<...> to avoid pod2html's annoying practice of
rendering the links as "the ... manpage"
- bin/dochazka-rest: add license boilerplate
- moved 'cud' subroutine into new module App::Dochazka::REST::Model::Shared
to avoid code duplication in Activity.pm and Employee.pm
- t/008-activity.t: add stub for activity-related unit tests
- config/Dochazka_Message_en.conf: add a DOCHAZKA_DBI_ERR message for
reporting DBI errors
- config/employee_Config.pm: add SQL_EMPLOYEE_DELETE
0.056 2014-07-14 12:43 CEST
- Spec.pm: cleanup
- config/Dochazka_Config.pm: add DOCHAZKA_ACTIVITY_DEFINITIONS
- REST.pm: have 'create_tables' insert initial set of activities
0.057 2014-07-14 12:59 CEST
- config/Dochazka_Messages.conf: remove colon from DOCHAZKA_DBI_ERR
- model/Shared.pm: fix bug in cud (wasn't returning err status on DBI err)
- t/008-activity.t: add lots of unit tests
0.058 2014-07-14 15:59 CEST
- activity_Config.pm: add 'upper' safeguards to make sure no lower-case
activity code makes it into the database, yet to accept lower-case in
SELECTs
- dbinit_Config.pm: add 'code_to_upper' trigger on activities table,
split off valid_intvl from valid_schedintvl so it can be applied to
both 'schedintvls' and 'intervals'
- Spec.pm: update to reflect latest code
- t/008-activity.t: add more unit tests
0.059 2014-07-14 16:24 CEST
- Privhistory.pm: block in 'get_privhistory' function
- rename t/008-activity.t to t/009-activity.t
- add stub t/008-schedintvls.t for testing "illegal" schedintvls
0.060 2014-07-14 20:38 CEST
- REST.pm: put 'create_tables' SQL incantations into a transaction
- Schedintvls: put 'insert' SQL incantations into a transaction that
gets rolled back if any of the intervals are bad
- t/008-schedintvls.t: test with bogus intervals, test that no
intervals are inserted if any of them are bad
0.061 2014-07-15 11:06 CEST
- t/001-init.t: make diagnostic messages more useful
- config/sql/interval_Config.pm: new SQL for use in Interval.pm
- Interval.pm: start developing the stub into something useful
- dochazka_Config.pm: add DOCHAZKA_ADVANCE_INTERVALS_MAX_DAYS
- dbinit_Config.pm: rename intervals.int_id to intervals.iid (Interval ID)
- REST.pm: revamp 'try' code block in 'create_tables'
- Activity.pm, Employee.pm: use new best practice for 'cud' calls
- Privhistory.pm, Schedhistory.pm: rewrite insert and delete methods to use 'cud'
- Schedule.pm: rewrite insert method to use 'cud'
- Shared.pm: add 'open_transaction' and 'close_transaction', revamp 'cud' to use
Try::Tiny
0.062 2014-07-15 13:17 CEST
- make adjustments so test suite succeeds even if PostgreSQL server not
present
0.063 2014-07-15 16:56 CEST
- dbinit_Config.pm, REST.pm: get rid of DBINIT_AUTOCOMMIT
- dbinit_Config.pm, Dochazka_Config.pm, REST.pm: use DOCHAZKA_DBNAME
instead of DBINIT_DBNAME
- REST.pm: reset_db now drops/re-creates 'dochazka' user and grants all
dochazka database privileges to that user, 'create_tables' runs as
user 'dochazka'
- REST.pm: connect_db_pristine takes full PARAMHASH
0.064 2014-07-15 17:48 CEST
- more modifications to ensure test suite doesn't fail on build workers and
other automatons (CPAN Testers, Open Build Service)
0.065 2014-07-15 18:00 CEST
- rename to App::Dochazka::REST
0.066 2014-07-15 18:02 CEST
- fix current_ver.plx and prepare release script for CPAN
0.067 2014-07-15 22:36 CEST
- dbinit_Config.pm: fix 'intervals' table definition
- interval_Config.pm, Interval.pm: add missing 'long_desc' everywhere
- t/010-interval.t: start unit test file for activity intervals
- move priv_by_eid and sched_by_eid functions from Factory.pm to Shared.pm,
populate 'aclpriv' attribute in each function that consults it, instead of in
Factory.pm->make_reset
- POD cleanup
- Util/Timestamp.pm, t/011-tsrange_equal.t: add tsrange_equal function
- Util/Timestamp.pm, t/: split $today into two ($today and $today_ts), and
do the same for $yesterday and $tomorrow -- hopefully this makes the code
_less_ complicated
0.068 2014-07-16 08:35 CEST
- Build.PL: add DBD::Pg and DBI dependencies
0.069 2014-07-16 22:11 CEST
- move 'make_spawn' and 'reset' from Util/Factory.pm to Model/Shared.pm,
delete Util/Factory.pm
0.070 2014-07-17 11:42 CEST
- Shared.pm, REST.pm: get rid of open_transaction and close_transaction as they
don't work as expected
- Schedintvls.pm, t/007-schedule.t: revamp 'delete' method
- Dochazka_Message_en.conf: add DOCHAZKA_RECORDS_DELETED
0.071 2014-07-17 21:37 CEST
- dbinit_Config.pm: add locks table
- Spec.pm: work on Lock section
- Interval.pm: make load_by_iid also load the long_desc, add 'update' and
'delete' methods
- Lock.pm: first crack at lock data model
- Activity.pm: fix order of attributes in update and make delete reset the
object on success
0.072 2014-07-17 21:42 CEST
- MANIFEST: minor fix
0.073 2014-07-18 08:19 CEST
- Schedule.pm: add an untested 'delete' method
- Privhistory.pm, Schedhistory.pm, Schedintvls.pm: add 'no update method' verbiage
- Shared.pm: when croaking on odd number of arguments, stringify the actual
arguments and include them in the error message
- t/009-activity.pm: add tests for 'update' method
0.074 2014-07-18 08:39 CEST
- Build.PL: add another missing dependency (JSON.pm)
0.075 2014-07-18 09:44 CEST
- now that App::Dochazka::REST is on CPAN, and since Spec.pm was getting to
be too big, make the following documentation changes:
- break out the "... in the database" and "... in the Perl API" sections
into the respective data model modules under C<App::Dochazka::REST::Model>
- move the rest of the Spec.pm verbiage into L<App::Dochazka::REST>
0.076 2014-07-18 10:20 CEST
- MANIFEST: update to reflect current state
- REST.pm, Privhistory.pm, Schedhistory.pm: work on POD
0.077 2014-07-18 13:16 CEST
- REST.pm: POD cleanup
- Interval.pm: add missing POD verbiage
- release.sh: attempt to fix minor brokenness that sometimes causes version
numbers to get messed up when switching from one development machine to
another
- Shared.pm: add 'noof' function
- t/001-init.t: add comments and two unit tests
- t/003-current_priv.t, t/004-employee.t: rework tests, clean up database
when done
0.078 2014-07-18 13:43 CEST
- Privhistory.pm, etc.: change privhistory.int_id to privhistory.phid
- Schedhistory.pm, etc.: change schedhistory.int_id to schedhistory.shid
- schedule_Config.pm: add missing SQL_SCHEDHISTORY_DELETE parameter
0.079 2014-07-18 16:13 CEST
- schedule_Config.pm: add SQL_SCHEDULE_SELECT and SQL_SCHEDULE_DELETE
- Schedule.pm: fix bug in 'delete' method, implement 'load_by_sid' method
- t/: clean up several unit test files (unit test files no longer leave
any database artifacts behind, so each one starts from a clean slate
and can be run independently)
0.080 2014-07-19 18:03 CEST
- lock_Config.pm, t/012-lock.t: add the beginnings of some SQL and unit tests
for lock objects
- privhistory_Config.pm: add SQL_PRIVHISTORY_SELECT_BY_PHID and
SQL_PRIVHISTORY_SELECT_RANGE
- Privhistory.pm, t/005-privhistory.t: add load_by_phid method and get_privhistory function
- Timestamp.pm: add untested functions 'split_tsrange' and 'canonicalize_ts'
0.081 2014-07-21 09:08 CEST
- minor edit to bump version number as PAUSE refuses to accept version 0.080
0.082 2014-07-21 19:44 CEST
- Build.PL: add another dependency to appease CPAN Testers
- bin/*, config/dochazka-rest.psgi, Resource.pm: start working on executable
for starting the server
0.083 2014-07-22 10:18 CEST
- dochazka-rest.psgi: minimize
- Resource.pm: add POD, work on 'resource_exists' (path dispatcher)
- Dispatch.pm: put path dispatch state machine into separate module
0.084 2014-07-22 14:32 CEST
- bin/dochazka-rest: rework into standalone server startup script
- t/301-psgi.t: start testing web server functionality
- REST.pm: add POD re: starting server and authentication, include PSGI
$app coderef in $REST singleton
- config/Dochazka_Config.pm, Resource.pm: add DOCHAZKA_REST_HTML param
defining the HTML displayed when someone accesses the server from a
browser
- Resource.pm: enable HTTP Basic Authorization for authentication, using a
hard-coded dummy username/password pair for now
- Build.PL, t/000-dependencies.t: update dependencies
0.085 2014-07-23 09:12 CEST
- t/000-depends.t: fix bug (wrong number of tests)
- dispatch_Message_en.conf: new file for path dispatch messages
- Dispatch.pm: work on '_get_response'
- Resource.pm: use 'expurgate' method (new in App::CELL::Status 0.194)
- t/301-dispatch.t: rename from 301-psgi.t and add unit tests
0.086 2014-07-23 09:40 CEST
- REST.pm, Dispatch.pm: document request syntax
0.087 2014-07-23 11:16 CEST
- Dochazka_Config.pm: improve default HTML (DOCHAZKA_REST_HTML)
- t/301-dispatch.t: add unit tests
- Dispatch.pm: remove SYNOPSIS so the meat of the POD starts higher up on
the page
- obs.sh: add OBS CI script
0.088 2014-07-23 12:53 CEST
- bin/dochazka-rest: load the local sitedir
- REST.pm: explain current installation/bootstrap process in detail in the
"INSTALLATION" section
0.089 2014-07-23 15:19 CEST
- config/Dochazka_Config.pm: add DOCHAZKA_URI_MAX_LENGTH
- REST.pm: work on "REST INTERFACE" POD
- Dispatch.pm: fix methods so they all set "extraneous_url_part" if
appropriate
- Resource.pm: add uri_too_long method
- t/: rename 301-dispatch.t to 301-resource.t and split off 330-dispatch.t
from it, test uri_too_long in 301-resource.t
0.090 2014-07-23 17:23 CEST
- Employee.pm: add 'expurgate' and 'select_multiple_by_nick' methods
- Dispatch: add '/lookup/employee/nick' request (doesn't quite work yet)
- remove all mentions of 'acleid' and 'aclpriv' from data model;
authorization will take place at the web resource level
0.091 2014-07-23 23:08 CEST
- Employee.pm: finally find and fix problem with 'expurgate'
- t/004-employee.t: add tests for expurgate method
- REST.pm: get rid of $REST singleton: 'init' now acts as a constructor
returning an object
- lots of modifications to all files to make them work without $REST singleton
0.092 2014-07-24 08:12 CEST
- Dispatch: deprecate '_get_response' in favor of 'is_auth' which will be
called from Response.pm->is_authorized
0.093 2014-07-24 08:18 CEST
- Build.PL: require perl 5.012 (RT#97442 -- thanks, Slaven!)
0.094 2014-07-24 10:52 CEST
- bin/: eliminate $REST singleton
- /version now reports whether server is UP or DOWN
0.095 2014-07-24 11:58 CEST
- config/: DOCHAZKA_REST_HTML is now a message, no longer a site param,
and it also newly reports the version number and server status
- dbh.pm: add 'status' routine that reports database server status
- Dispatch.pm: use the new dbh.pm->status routine in '_version'
- Resource.pm: use the new dbh.pm->status routine in 'render_html'
0.096 2014-07-24 14:19 CEST
- Employee.pm: revamp load_by_nick and load_by_eid
so they now work as both instance and class methods
- Schedintvls.pm: fix parentage and use dbh.pm->dbh method
- Shared.pm: spawn no longer sticks dbh into objects
- Resource.pm: use $CELL->msg in render_html
- t/: update tests to current state
0.097 2014-07-24 15:37 CEST
- bin/dochazka-rest: force Plack::Middleware::StackTrace to be used on
_all_ errors
- Resource.pm: make the server display HTML by default, with the
JSON response embedded in the HTML
0.098 2014-07-24 17:49 CEST
- Resource.pm, Dispatch.pm: finished converting to 'is_auth',
eliminated deprecated 'resource_exists' and '_get_response'
routines, added a 'forbidden' request that always triggers a
403
0.099 2014-07-25 14:50 CEST
- config/Dochazka_Config.pm: add DOCHAZKA_URI and DOCHAZKA_DOCUMENTATION_URI
site params
- REST.pm: work on POD
- Dispatch.pm: a flurry of modifications
- Resource.pm: change $self->{'context'} into a hashref, implement a _push
method to make it easy to add to it
- t/: disable all data model tests except 001-init.t, tests can be activated by
setting an environment variable
0.100 2014-07-25 17:19 CEST
- added CSS to our HTML template to enable line wrapping in <pre></pre>
blocks
- Build.PL: require Path::Router
0.101 2014-07-26 23:24 CEST
- Resource.pm, Dispatch.pm: major revamp to implement Path::Router
- Resource.pm, Dispatch.pm, LDAP.pm: authentication
- Dispatch/Employee.pm: get ready for each resource to have its own controller
(dispatch) module
- Employee.pm: authentication
- t/: update tests to current state, add some HTTP tests
0.102 2014-07-27 19:18 CEST
- each major resource will have its own controller, e.g.:
App::Dochazka::REST::Dispatch::Employee
- each controller will inherit from App::Dochazka::REST::Dispatch,
where the 'init' method will also run the 'init' methods in
all of its sub-controllers (taken from the DISPATCH_CONTROLLERS
site param)
- implement separate Path::Router instances for GET, POST, etc.
0.103 2014-07-27 20:42 CEST
- Resource.pm, Dispatch.pm, Dispatch/Employee.pm: separate router accessor and
router initialization routines so there are separate routers for each HTTP
method (just 'GET' and 'POST' for now) -- this is necessary to be able to
handle a GET request for, e.g., '/employee/nick/bud' differently than a
POST request for the same path/resource
0.104 2014-07-27 21:03 CEST
- add GET route /employee/eid/:param
0.105 2014-07-27 22:44 CEST
- move 'authenticate' from Model/Employee.pm to Resource.pm and rename to
'_authenticate')
- Dispatch/Employee.pm: add default GET target
- cleanup
- t/: rename data model tests to 1??-something.t and tweak them so they run
cleanly again
0.106 2014-07-28 10:26 CEST
- cleanup
- put current employee object in request context
- Resource.pm, Dispatch*: send entire context to targets and let them pick out
what they need from it
0.107 2014-07-28 12:16 CEST
- add core dependencies to Build.PL
- clean up test suite
- t/: fix 3?? tests so they don't break builds in OBS
0.108 2014-07-28 13:16 CEST
- Resource.pm: expurgate employee objects (to remove passhash and salt)
before displaying them; if DOCHAZKA_DEBUG environment variable is set,
display the entire context, otherwise display 'entity' only
- Model/Employee.pm: make 'expurgate' method delete 'passhash' and 'salt'
attributes
- Dispatch/Employee.pm: make 'employee/nick/:param' resource return
an array only when the search finds more than one employee
0.109 2014-07-28 14:28 CEST
- bring back 'employee/current' resource
- fix 'link' attribute displayed for each resource by '_get_default' targets
0.110 2014-07-28 16:23 CEST
- working on LDAP authentication
0.111 2014-07-28 21:12 CEST
- work on LDAP authentication
- add a 'privhistory' resource
- start working on 'privhistory/current' and 'privhistory/current/:tsrange'
resources, implement ACL restriction ('active' and 'admin' only)
- t/332-dispatch-privhistory.t: add tests for 'privhistory' resource, including
test of ACL restriction
0.112 2014-07-28 22:25 CEST
- Privhistory.pm: fix bug "when handed a backwards tsrange, get_privhistory
returns 0 records instead of returning DOCHAZKA_DBI_ERR as it should"
- test for the bug
0.113 2014-07-29 09:46 CEST
- REST.pm: work on POD (Request-response cycle)
0.114 2014-07-29 17:51 CEST
- LDAP auth
- privhistory resource
- Model/Employee.pm: implement true/false 'nick_exists' exported function
0.115 2014-07-30 09:08 CEST
- Model/Privhistory.pm: fix bug "DBI errors should not include file and line
number in 'catch' block of 'get_privhistory' routine"
- Model/Employee.pm: add 'eid_exists' exported function; rewrite 'nick_exists';
revise load_by_nick, load_by_employee, and _load methods
- Dispatch/Privhistory.pm: add 'privhistory/nick' and 'privhistory/eid'
resources
0.116 2014-07-30 14:19 CEST
- LDAP.pm: get rid of 'Argument "Net::LDAP::LDAP_SUCCESS" isn't numeric'
warning (not clear how to properly use this constant); when searching
for the user's DN, check 'uid', 'cn', and 'email' fields for matches,
instead of just 'uid'
- rename DOCHAZKA_BASIC_AUTH_REALM for clarity and turn it into a site
configuration parameter so it can be overrided
0.117 2014-07-30 15:53 CEST
- Dispatch/Employee.pm: add proper ACL checks to 'employee/nick' and
'employee/eid'
- Dispatch/ACL.pm: put ACL check code into a separate module
- Test.pm: put some common testing code into a separate module
0.118 2014-07-30 17:04 CEST
- resolve two tickets re: "get database handle from parent and eliminate it
from function/method calls"
0.119 2014-07-31 02:25 CEST
- revamp ACL model: ACL profile of resource is now in the 'defaults'
attribute of the route object. ACL check reduced to four lines of
boilerplate code that are included in each target.
0.120 2014-07-31 03:33 CEST
- add 'employee/count' and 'employee/count/:priv' resources
0.121 2014-07-31 09:06 CEST
- Resource.pm: add log messages to _authenticate routine
0.122 2014-07-31 09:27 CEST
- another ACL revamp: do the ACL check in Resource.pm->forbidden, eliminate
boilerplate code in targets
0.123 2014-07-31 15:23 CEST
- allow site admin to set nick-to-LDAP mapping (DOCHAZKA_LDAP_NICK_MAPPING)
0.124 2014-07-31 15:38 CEST
- resolve ticket "make LDAP auth switchable so unit testing scripts can
disable it" by adding META_DOCHAZKA_UNIT_TESTING meta param and testing
for it in Resource.pm
- LDAP.pm now exports the ldap_exists and ldap_auth functions
0.125 2014-07-31 16:33 CEST
- t/000-depends.t: add dependency on Params::Validate
- Build.PL: build_require Test::Fatal, require Params::Validate
- Model/Activity.pm: add parameter validation code
0.126 2014-08-01 13:23 CEST
- Model/Activity.pm: load_by_code, load_by_aid, _load now use "best practices"
established in Model/Employee.pm
- start adding parameter validation code using Param::Validate
- start adding unit tests for the new parameter validation code
0.127 2014-08-01 17:07 CEST
- cleanup, validate parameters, add some tests that call functions with
invalid parameters
0.128 2014-08-01 18:21 CEST
- Model/Activity.pm, Model/Shared.pm: moved '_load' to shared so code can
be re-used
0.129 2014-08-01 18:54 CEST
- Model/Employee.pm: use the new Shared.pm->load routine
- Model/Activity.pm, Model/Employee.pm: eliminate deprecated _load routines
- t/: update tests to current state
0.130 2014-08-01 19:09 CEST
- Model/Schedule.pm, Model/Shared.pm: use shared 'load' routine for schedules
- t/: update tests to current state
0.131 2014-08-02 16:34 CEST
- Shared.pm: modify 'cud' and 'load' so they take named parameters, add
parameter validation, add a 'make_accessor' routine
- t/004-shared-paramvalid.t: elicit lots of fatal errors from Model/Shared.pm
- Model/: remove all database ping checks (replaced by a single line in
dbh.pm), adapt all calls to 'cud' and 'load', replace a lot of spaghetti code
with boilerplate
- t/: adapt tests to current state
0.132 2014-08-02 23:51 CEST
- dynamically generate routers and default targets from site configuration in
dispatch_GET_Config.pm (WIP)
0.133 2014-08-04 10:29 CEST
- dynamic generation of resources now works, in a global sense, but some
individual resources are broken
0.134 2014-08-04 12:12 CEST
- REST.pm: enable setting of 'debug_mode' in init routine
- Model/Employee.pm: 'select_multiple_by_nick' always return payload with
result_set and search_key, even when result_set is empty
- Dispatch/Employee.pm: simplify target routines
- Dispatch/Shared.pm: fix bug in make_get_default that was causing empty
resource list when generating HTTP request via Plack::Test
- add some calls to $log->debug
- Test.pm: add 'status_from_json' method to facilitate testing of HTTP
response
- t/330-dispatch.t: add a bunch of tests that examine the HTTP responses
returned when various resources are requested
0.135 2014-08-04 15:55 CEST
- t/330-dispatch.t: fill in missing tests of HTTP response content
- t/331-dispatch-employee.t: fill in missing tests of HTTP response content
- t/332-dispatch-privhistory.t: fill in missing tests of HTTP response content
- Dispatch/Privhistory.t: refactor targets so they make more sense
- Model/Privhistory.t: work on get_privhistory routine
- t/105-privhistory.t: update to reflect current code
0.136 2014-08-04 20:15 CEST
- REST.pm: add some POD about how the REST interface is self-documenting
- Dispatch.pm, Dispatch/*.pm: add _post_default routine
- Shared.pm: rename 'make_get_default' to 'make_default' and adapt it to
generate both _get_default and _post_default
- config/dispatch/dispatch_POST_Config.pm, Resource.pm: start laying groundwork
for POST processing
- POST requests to all resources with _post_default as their target are working
but unit tests are missing
0.137 2014-08-04 20:47 CEST
- t/: add tests for the first POST resources (the really simple ones
like 'help')
0.138 2014-08-04 21:25 CEST
- Dispatch.pm: implemented '/echo' POST resource, including unit tests
- t/: renumber and rename dispatch-related unit test files to accommodate
new POST code
0.139 2014-08-05 09:44 CEST
- REST.pm: write some POD
0.140 2014-08-05 12:39 CEST
- REST.pm: work on POD
- Dispatch.pm: fix bug in 'echo' POST resource (wasn't handling empty
requests)
- Resource.pm: implement 'known_content_type' and 'malformed_request'
routines - requests with body containing anything other than legal JSON will
be rejected
0.141 2014-08-05 15:52 CEST
- implement basic handling of PUT requests
0.142 2014-08-05 21:46 CEST
- implement 'employee' and 'employee/:nick' (INSERT/UPDATE) PUT resources
(ATM without unit tests)
- Model/Employee.pm: fix bug "'update' routine doesn't work at all"
- Resource.pm: in 'malformed_request', push JSON from request body onto
context _after_ decoding it into a Perl hashref
- minor cleanup/fixup
0.143 2014-08-06 10:19 CEST
- working on employee PUT resources: refactor targets, add 'eid' resources
- Model/Shared.pm: make 'cud' return RETURNING values in payload
- Model/Employee.pm: make 'insert' and 'update' return payload received from
'cud'
0.144 2014-08-06 13:55 CEST
- Model/Employee.pm: fix bug "'update' returns OK status when called with
undefined EID -- should be ERR"
- config/: rename SQL_EMPLOYEE_UPDATE to SQL_EMPLOYEE_UPDATE_BY_EID to
emphasize that EID is required
- t/317-dispatch-put-employee.t: add lots of unit tests
0.145 2014-08-06 15:08 CEST
- Dispatch/Employee.pm: GET resource 'employee/nick/:nick' now returns
only a single employee record unless nick parameter contains a '%',
in which case it returns a result set (JSON array of employee records)
- t/: adapt tests
0.146 2014-08-07 09:42 CEST
- config/dispatch/: improve resource descriptions by including method
- REST.pm: write some POD about POST and PUT
- staging/: get rid of old ballast, add some new ballast (CLI scripts)
- minor cleanup
0.147 2014-08-07 11:05 CEST
- t/317-dispatch-put-employee.t: fix 'keys on reference' oversight
that caused build to fail with Perl 5.20
- staging/cli.plx: work on CLI script
- split off "pure" data model functions into App::Dochazka so they can
be shared with App::Dochazka::CLI
0.148 2014-08-08 10:15 CEST
- test release script
- t/: update depends script
0.149 2014-08-08 10:25 CEST
- test release script once again
0.150 2014-08-10 18:25 CEST
- Build.PL: add dependencies Plack::Middleware::Session, Plack::Middleware::StackTrace
- config/sql/: add new 'sessions' table and 'random_number()' SQL function
0.151 2014-08-10 22:49 CEST
- update dependencies
- start implementing session management
0.152 2014-08-11 10:02 CEST
- more work on session management (reconsider idea of storing sessions in
database)
- REST.pm: describe authentication/session management algorithm in POD
- config/, Dispatch.pm: add a "/session" resource that displays session state
0.153 2014-08-11 13:18 CEST
- update dependencies
- config/Dochazka_Config.pm: add 'DOCHAZKA_REST_SESSION_EXPIRATION_TIME'
and 'DOCHAZKA_REST_DEBUG_MODE' site params
- REST.pm: in 'init_no_db', respect 'debug_mode' PARAMHASH key and
DOCHAZKA_REST_DEBUG_MODE site param, in that order
- Resource.pm: finish implementing session management
- NOTE: since session management doesn't seem to work with Plack::Test, it is
completely disabled when META_DOCHAZKA_UNIT_TESTING is true (set this to true
in unit tests that use Plack::Test)
0.154 2014-08-11 14:19 CEST
- add 'Plack::Session' to build_requires, just in case CPAN Testers gets
funny ideas
0.155 2014-08-11 16:45 CEST
- Resource.pm: cleanup
0.156 2014-08-12 10:22 CEST
- cleanup, documentation
0.157 2014-08-12 15:52 CEST
- REST.pm: add a 'DEBUGGING' section to POD
- Util.pm: add a new 'Util.pm' module for miscellaneous utilities
and put 'deep_copy' function into it
- Resource.pm: fix bug "die with StackTrace happens when DOCHAZKA_DEBUG
environment variable set"
0.158 2014-08-13 03:21 CEST
- REST.pm: add parameter validation to init_no_db
- t/301-resource.t: fix bug found thanks to the above parameter validation
0.159 2014-08-14 14:55 CEST
- config/REST_Config.pm: add DOCHAZKA_HOST and DOCHAZKA_PORT
- bin/dochazka-rest: look into how we could allow admin to specify host/port on
command line, yet default to values in site configuration if they are not
specified there
0.160 2014-08-16 10:17 CEST
- bin/dochazka-rest: comment out 'die' statement so server runs again
0.161 2014-08-18 10:38 CEST
- fix bug: "LDAP users can log in with wrong/no password"
0.162 2014-08-21 15:31 CEST
- t/002-root.t: fix broken unit test
- bin/dochazka-rest: turn on debug_mode
- Resource.pm: uncomment session ID debug message in _validate_session
0.163 2014-08-27 17:42 CEST
- Dispatch/Employee.pm->_put_employee: allow undef as value for optional fields
('fullname', 'email', 'passhash', 'salt', 'remark')
- Model/Employee.pm->expurgate: when expurgating employee objects, do not
remove 'passhash' and 'salt' properties
0.164 2014-08-28 11:26 CEST
- Model/Shared.pm: do not put empty strings into the database
0.165 2014-09-01 07:51 CEST
- Unicode hell
- add more debug messages
0.166 2014-09-01 16:40 CEST
- Resource.pm: Unicode hell! /employee/nick/číča is handled correctly when
sent by browser, but incorrectly when sent via App::Dochazka::WWW - yet
the path_info string is decoded correctly in 'service_available' in both
cases! Very strange.
0.167 2014-09-04 17:34 CEST
- respect DOCHAZKA_REST_LOG_FILE and DOCHAZKA_REST_LOG_FILE_REST core/site
config parameters (as is already the case in App::Dochazka::WWW) - no
more chasing temporary files
0.168 2014-09-04 17:41 CEST
- t/: change default configuration directory (for unit testing purposes) from
'/etc/dochazka' to '/etc/dochazka-rest', as the former is ambiguous
0.169 2014-09-17 09:59 CEST
- REST.pm: modify INSTALLATION section of POD to bring it closer to current
reality
0.170 2014-09-17 10:30 CEST
- REST.pm: add some debug messages
0.171 2014-09-17 10:51 CEST
- REST.pm: fix bug 'Can't call method "errstr" on an undefined value' when
connect_db_pristine can't connect to database; remove debug messages
0.172 2014-09-17 11:13 CEST
- t/001-init.t: bail out of testing if we cannot connect to database
0.173 2014-09-17 14:28 CEST
- REST.pm: expand INSTALLATION section of POD with explanation of how to test database
connection using 'psql'
0.174 2014-09-24 16:38 CEST
- try to fix UTF-8 bug, but only make it worse
0.175 2014-09-25 09:29 CEST
- Resource.pm: encode response body in UTF-8 before sending it out on the line
0.176 2014-10-14 17:31 CEST
- Dispatch/: add some comments
- Resource.pm: add debug message; add allow_nonref; find bug #57
0.177 2014-10-15 10:33 CEST
- start revamping path dispatch code in light of bug #57 (PUT request to
non-existent resource returns HTTP code 200 and null entity body)
- realize that it makes no sense to return 404 on a PUT request, since the
whole idea of PUT is to create a new resource
- the principal change is in Resource.pm->allowed_methods:
- the definition of each resource (in config/dispatch) should contain list of allowed methods
- when path is recognized, return the allowed methods from the resource definition
- when the path is not recognized _AND_ the method is PUT, return 405 Method Not Allowed
0.178 2014-10-15 16:41 CEST
- the design change in 0.177 caused a lot of breakage: put the pieces back together (WIP)
0.179 2014-10-15 22:54 CEST
- Build.PL: require App::CELL 0.197 (for 'get_param')
- continue fixing brokenness following the design change in 0.177
0.180 2014-10-16 08:40 CEST
- massage Changes file
- config/dispatch: make 'help' resources for all four HTTP methods we support
(GET, POST, PUT, DELETE)
- t/: fix or disable all broken tests - test suite running clean again, but
many tests are missing
0.181 2014-10-16 10:35 CEST
- make 'employee/nick' and 'employee/eid' be POST requests (instead of PUT) -
we will reserve PUT for unique resources like 'employee/nick/joedavis'
0.182 2014-10-16 10:56 CEST
- Dispatch.pm: add POD for "" and "help" resources
0.183 2014-10-16 11:12 CEST
- LDAP.pm: use EXPORT_OK instead of EXPORT
- Resource.pm: import routines from LDAP.pm explicitly
0.184 2014-10-16 12:59 CEST
- Resource.pm: implement basic handling of DELETE requests
0.185 2014-10-16 13:37 CEST
- t/: tweak naming scheme for dispatch unit test files; add unit test files
for DELETE method
- config/dispatch/dispatch_Top_Config.pm: add target for DELETE on 'echo'
resource
0.186 2014-10-16 16:44 CEST
- Dispatch/, t/: work on dispatch-related POD, unit tests
0.187 2014-10-16 17:53 CEST
- t/: more dispatch tests
0.188 2014-10-16 22:46 CEST
- t/: add a bunch of tests; refine siteparam and metaparam tests; find
App::CELL bug ($meta can be used to access site parameters)
0.189 2014-10-17 11:10 CEST
- Resource.pm: provide hash to keys, instead of hash reference
0.190 2014-10-17 17:48 CEST
- Build.PL: require latest App::CELL to avoid bug
- implement 'bugreport' resource
- implement PUT method for 'metaparam/:param' resource
- Dispatch.pm: add POD for more resources
- t/310-dispatch-top-get.t: add test case for 'bugreport' resource
- t/312-dispatch-top-put.t: add test case "set meta parameter via REST
call"
0.191 2014-10-20 16:53 CEST
- Hackweek Day 1
- Build.PL: depend on latest version of App::Dochazka
- config/dispatch/dispatch_Employee_Config.pm: use refactored employee
targets
- config/sql/employee_Config.pm: do not include 'priv' and 'schedule' in
employee objects
- Dispatch/Employee.pm: refactor employee PUT and POST targets
- Model/Employee.pm: add 'overlay' method
- Resource.pm: instead of having 'priv' property directly in the current
employee hash, we make a separate 'current_priv' property for it;
push the HTTP method onto the context hash ASAP (in service_available)
- t/316-dispatch-employee-post.t: add some "real" tests involving inserting
and update employee objects
- t/317-dispatch-employee-put.t: fix broken tests
0.192 2014-10-20 22:15 CEST
- dispatch/dispatch_Employee_Config.pm: resources into alphabetical order; add
'employee/current/priv' resource
- dispatch/dispatch_Message_en.conf, Dispatch/Employee.pm: add
'employee/current/priv' resource
- Model/Shared.pm: add some log messages in course of debugging a problem with
App::Dochazka::CLI
0.193 2014-10-21 08:35 CEST
- t/: fix accumulated brokenness in data model tests
- t/315-dispatch-employee-get.t: clean up comments and add a test case
0.194 2014-10-21 09:21 CEST
- Resource.pm: if method is GET and result is "No records found", return
404 instead of 200 + status object
- t/: adapt tests to this change
0.195 2014-10-21 10:51 CEST
- Model/Employee.pm->noof_employees_by_priv: if $priv is not a valid
privlevel, return 'OK' status + status code DISPATCH_NO_RECORDS_FOUND
to trigger a 404 Not Found response; also, put 'count' property in the
payload where it belongs
- t/315-dispatch-employee-get.t: adapt existing test case
0.196 2014-10-21 11:38 CEST
- config/dispatch_Top_Config.pm: make "echo" work with POST only; put
resources in alphabetical order
- t/: remove 'echo' tests from top-level PUT and DELETE units
0.197 2014-10-21 11:47 CEST
- work on development-checklist
- t/: standardize method order (GET, PUT, POST, DELETE); adapt units
0.198 2014-10-21 12:10 CEST
- Dispatch.pm: document all target subroutines; put into alphabetical order
by resource name/path
0.199 2014-10-21 16:31 CEST
- Hackweek Day 2
- dispatch_Message_en.conf: add DISPATCH_RESOURCE_NOT_IMPLEMENTED
- dispatch_Top_Config.pm: implement 'not_implemented' resource
- Dispatch.pm: implement 'not_implemented' resource, alphabetical order
tweak
- t/: add missing top-level dispatch tests
- new ../development-checklist chart to clarify and streamline
resource-implementation workflow
0.200 2014-10-21 22:29 CEST
- ../development-checklist: finish implementing top-level resources
- Dispatch.pm: when getting site and meta params, show file and line
number along with other metadata; tweak resource documentation
- t/: some tests failing due to bug in App::CELL::Config->get_param_meta
0.201 2014-10-22 08:30 CEST
- Build.PL: require App::CELL 0.200 for bug fix
- t/: adjust two tests now that PUT metaparam/:param and PUT siteparam/:param
are assigning the request body to the parameter directly
0.202 2014-10-22 16:47 CEST
- Hackweek Day 3
- lots of refinements to (plus documentation and test cases for) employee
resources
- implement DELETE support for employee resources
- eliminate problematic "short-cut" 'employee/:nick' and 'employee/:eid'
resources
- make it possible to update an employee property to null
- eliminate problematic 'overlay' method in Model/Employee.pm
- improve debug message in Resource.pm
- add negative and otherwise pathological test cases
0.203 2014-10-22 17:15 CEST
- t/317-dispatch-employee-post.t: got tests running again
0.204 2014-10-23 10:57 CEST
- t/: figure out how to run tests using 'prove -r'; make a 't/dispatch/'
directory for dispatch tests; merge all top-level dispatch tests into a
single file 't/dispatch/top.t'
0.205 2014-10-23 14:02 CEST
- Hackweek Day 4
- Build.PL: make Module::Build walk t/ directory recursively
- REST_MetaConfig.pm: make sure META_DOCHAZKA_VALID_RESOURCES is
initialized to an empty hashref
- add on-line documentation infrastructure
- config/dispatch/dispatch_Top_Config.pm: add HTML documentation strings
to all the top-level resources; add 'docu' resource definition
- Dispatch.pm: remove POD sections corresponding to the HTML documentation
strings added to resource definition file; add target subroutine
for 'docu' resource; use heredoc in _forbidden
- Resource.pm: enable validations to be specified in resource definitions
(see Path::Router) -- untested; during path/router initialization build
up META_DOCHAZKA_VALID_RESOURCES (hash of valid resources); push
'documentation' property onto context
- t/dispatch/top.t: add tests for 'docu' resource
0.206 2014-10-23 14:31 CEST
- config/dispatch/dispatch_Employee_Config.pm: add HTML documentation
strings to all the employee resources
- Dispatch/Employee.pm: remove POD documentation that has been moved to the
resource definition file
- find bug "POST docu" returns same string, no matter which resource is
specified (should return the documentation string stipulated for the
resource in the resource definition)"
- t/dispatch/top.t: add test cases for the bug
0.207 2014-10-23 15:16 CEST
- rename meta param META_DOCHAZKA_VALID_RESOURCES to
META_DOCHAZKA_RESOURCE_DOCS and store resource documentation strings
there during path router initialization
- in the 'docu' target, get the HTML string from
META_DOCHAZKA_RESOURCE_DOCS meta param
- Resource.pm: no longer need to push documentation HTML string onto the
context
- Test.pm: add a 'docu_check' routine (to automate testing of each resource
for presence of documentation in the resource definition)
- t/dispatch/top.t: run docu_check on each top-level resource
0.208 2014-10-24 08:43 CEST
- convert portion of employee dispatch tests to new structure
0.209 2014-10-24 10:49 CEST
- complete development workflow for employee resources
- dispatch_Employee_Config.pm: add missing documentation
- Dispatch/Employee.pm: fix bug "DELETE employee/nick/:nick actually
inserts a new employee if :nick not found"
- t/: continue migrating dispatch tests to new structure; disable old
units so ./Build test doesn't run them; add new unit
t/dispatch/employee/nick.t
0.210 2014-10-24 15:33 CEST
- Hackweek Day 5
- implement privhistory resources using new development workflow
- merge 'privhistory/current' and 'privhistory/current/:tsrange' into a
single resource 'privhistory/current/?:tsrange'
- dispatch/dispatch_Privhistory_Config.pm: put resources in alphabetical
order; document resources; add more supported methods
- t/dispatch/privhistory: add privhistory tests in new structure
- Dispatch/Privhistory.pm: put targets in order according to their
corresponding resources; rename _get_nick and _get_eid to _nick and _eid,
respectively, and expand them to support PUT and DELETE
- Model/Privhistory.pm: add some debug messages
0.211 2014-10-24 22:40 CEST
- Hackweek Day 5, continued
- config/sql/dbinit_Config.pm: add UNIQUE (eid, effective) constraint to
privhistory table to avoid duplicate entries in a given employee's
privhistory listing
- dispatch_Message_en.conf: add DISPATCH_PRIVHISTORY_COULD_NOT_SPAWN
- Dispatch/Privhistory.pm: implement support for PUT and DELETE requests in
_eid and _nick targets
- Model/Employee.pm: fix bug "get 500 Server Error when I send a request for
bogus resource 'privhistory/eid/asdf'"
- t/dispatch/privhistory/: add quite a few tests
0.212 2014-10-25 23:23 CEST
- update MANIFEST to current state
- change 'privhistory' to 'priv'
- add new 'priv/current/?:ts' resource
- t/: start adapting tests
0.213 2014-10-26 22:36 CET
- config/dispatch/priv_Config.pm: add "priv/current/eid/:eid/?:ts" and
"priv/current/nick/:nick/?:ts" resources; unclear how privhistory records
will be added and deleted
- dispatch_Message_en.conf: remove duplicate message
- Dispatch/Privhistory.pm: repurpose _current_priv so it works for the new
resources added in this commit; rename _eid and _nick to _history_eid and
_history_nick, respectively
0.214 2014-10-27 13:12 CET
- config/dispatch/top_Config.pm: add 'cli' property to all top-level
resource definitions; put into alphabetical order; rename 'privhistory'
to 'priv'
- Dispatch.pm: make 'docu' resource return "resource => ''" when called
without an argument, instead of "resource => undef"; make
"not_implemented" resource include HTTP method in payload
0.215 2014-10-27 13:39 CET
- config/dispatch/employee_Config.pm, config/dispatch/priv_Config.pm: add
'cli' properties to all resource definitions
- ../development-checklist: complete manual CLI testing of all top-level
and employee resources
0.216 2014-10-27 14:29 CET
- config/dispatch/priv_Config.pm: fix 'priv/eid/:eid/?:ts' and
'priv/nick/:nick/?:ts' resource definitions
- config/dispatch_Message_en.conf: add DISPATCH_EMPLOYEE_CURRENT_PRIV_AT_TIMESTAMP
- Dispatch/Privhistory.pm: fix bugs in _current_priv
- Model/Shared.pm: fix bugs in priv_by_eid and _st_by_eid
0.217 2014-10-27 17:53 CET
- config/dispatch/priv_Config.pm: eliminate duplicate 'priv' resource
definition that was giving me grief; fix two wrong ACL profiles;
eliminate 'priv/history/?:tsrange' and replace it with
'priv/history/current/?:tsrange'; add 'priv/history/phid/:phid' resource
- config/dispatch/top_Config.pm: tweak resource documentation
- dispatch_Message_en.conf: tweak priv-related messages
- Dispatch/Privhistory.pm: tweak priv-related messages, add
'priv/history/phid/:phid' resource target
- t/: add new tests; adapt existing tests to current state
0.218 2014-10-27 20:31 CET
- config/dispatch_Message_en.conf: tweak bad/missing parameter message
- Dispatch/Employee.pm: handle non-integer EID values more gracefully
- Test.pm: add descriptions to docu_check tests
- t/dispatch/employee/eid.t: add descriptions to tests; add some new "negative"
test cases
0.219 2014-10-27 22:33 CET
- t/: clean up units; merge all employee tests into a single unit (employee.t);
merge all priv tests into a single unit (priv.t)
- config/dispatch/priv_Config.pm: alphabetical order tweak
- Test.pm: export all the test functions (EXPORT instead of EXPORT_OK); bring
in create_testing_employee and delete_testing_employee
- STATUS: all top-level, employee, and priv resources implemented and tested,
ready to start work on activity, interval, etc. resources
0.220 2014-10-28 09:35 CET
- MANIFEST: add Dispatch/Activity.pm
- config/dispatch/activity_Config.pm: add 'activity/all' resource definition
- config/dispatch/top_Config.pm: add 'activity' resource definition; rename
'_not_implemented' target to 'not_implemented' because we are now exporting
it from Dispatch/Shared.pm
- config/dispatch_Config.pm: uncomment DISPATCH_RESOURCES_ACTIVITY
- Dispatch.pm: import not_implemented target from Dispatch/Shared.pm
- Dispatch/Employee.pm: fix debug messages
- Dispatch/Privhistory.pm: import priv_by_eid from the right module
- Dispatch/Shared.pm: export 'not_implemented' routine
- Resource.pm: add 'use App::Dochazka::REST::Dispatch::Activity' so activity
targets will work
0.221 2014-10-28 12:08 CET
- MANIFEST: add t/dispatch/activity.t
- config/sql/: add 'SQL_ACTIVITY_SELECT_ALL'; add 'disabled'
field to 'activities' table; adapt SQL statements where appropriate
- t/dispatch/activity.t: new unit for activity dispatch tests
0.222 2014-10-28 21:51 CET
- config/dispatch/activity_Config.pm: activate 'activity/all' resource for GET
requests
- config/sql/activity_Config.pm: divide 'activity/all' SELECT into two variants
(with and without disabled activities)
- Dispatch/Activity.pm: implement _get_all_without_disabled and
_get_all_including_disabled dispatch targets
- Model/Activity.pm: eliminate superfluous 'use' lines; implement
'get_all_activities' routine
- t/dispatch/activity.t: add tests for GET activity/all
0.223 2014-10-28 22:37 CET
- REST_MetaConfig.pm: add META_DOCHAZKA_RESOURCE_ACLS
- config/dispatch/top_Config.pm: bring comments up-to-date
- Dispatch.pm: modify "_help_post" ('docu' dispatch target) to display ACL
profile of queried resource as well as its documentation
- Resource.pm: modify path initializer to populate META_DOCHAZKA_RESOURCE_ACLS
0.224 2014-10-29 08:07 CET
- activity_Config.pm: add 'activity/all/disabled' resource definition
- Dispatch/Activity.pm: comment out 'get_all' target
- t/dispatch/activity.t: add basic tests for 'activity/all/disabled'; add FIXME
lines for future tests
0.225 2014-10-29 09:33 CET
- dispatch/activity_Config.pm: add 'activity/aid/:aid' resource definition
- t/dispatch/activity.t: add initial tests for 'activity/aid/:aid'
0.226 2014-10-29 10:34 CET
- Build.PL: require 0.172 of App::Dochazka (for 'disabled' field)
- config/sql/activity_Config.pm: make SELECTs return disabled field
- t/dispatch/activity.t: add some tests for 'activity/aid/:aid' resource (GET)
- Dispatch/Activity.pm: implement 'activity/aid/:aid' resource for GET requests
0.227 2014-10-29 13:54 CET
- Dispatch/{Employee,Activity}.pm: fix bug where PUT request with request body
consisting of just a number or just a string (e.g. '9', or '"asdf"') was
causing the server to vomit 500
- activity_Config.pm: support PUT and DELETE requests for 'activity/aid/:aid';
add resource definition for 'activity/code/:code'
- dispatch_Message_en.conf: add DISPATCH_CODE_DOES_NOT_EXIST
- Dispatch/Activity.pm: support PUT and DELETE requests for 'activity/aid/:aid';
add support for 'activity/code/:code'
- Model/Activity.pm: fix 'update' routine to support the new 'disabled' field
- Model/Shared.pm: make a note in 'cud' routine that order of attrs must match
the '?' characters in the SQL statement
- Test.pm: add 'create_testing_activity' and 'delete_testing_activity'
- t/dispatch/activity.t: add a bunch of tests
0.228 2014-10-29 16:43 CET
- Dispatch/Activity.pm: trying to get _insert_activity to deal gracefully with
bogus JSON
- t/: add DELETE tests for 'activity/aid/:aid'; add tests for
'activity/code/:code'; tweak tests
0.229 2014-10-30 13:07 CET
- Build.PL: require App::Dochazka 0.174 for new 'filter' routine
- config/sql/dbinit_Config.pm: add check constraints for 'nick' (employees) and
'code' (activities) fields because folks might try to insert an activity code
like '!!!' or commit other similar bogusness
- Dispatch/Shared.pm: add new 'pre_update_comparison' routine for validating
updates
- Dispatch/Activity.pm: refactor _update_activity and _insert_activity so they
filter out bogus properties
- Dispatch/Employee.pm: refactor _update_employee and _insert_employee so they
filter out bogus properties
- t/: adapt tests to current state; add some tests that attempt to
insert/update bogus properties
0.230 2014-10-30 18:21 CET
- activity_Config.pm: add resource definitions for 'activity/aid' and 'activity/code'
- t/dispatch/activity.t: add DELETE tests for 'activity/code/:code'
0.231 2014-10-30 19:37 CET
- Dispatch/Employee.pm: handle an edge case ($eid might be undefined due to
bogus user input)
- t/dispatch/employee.t: label some tests; add tests for some edge cases
- t/dispatch/activity.t: add tests for some edge cases
0.232 2014-10-30 22:07 CET
- activity_Config.pm: activate 'activity/code' dispatch target
- Dispatch/Activity.pm: adapt '_code' dispatch target to handle POST
- t/dispatch/activity.t: add tests
0.233 2014-10-31 13:30 CET
- realize that there are resources where the GET method needs ACL profile of,
e.g., "active" but the remaining methods (PUT, POST, DELETE) need to be
available only to administrators
- Resource.pm: modify 'forbidden' method to handle resources with ACL profiles
defined for each HTTP method separately
- config/dispatch/activity_Config.pm: define per-method ACL profiles where needed
- Model/Privhistory.pm: improve documentation of 'get_privhistory' routine
- Test.pm: add 'req_active', 'req_json_active', 'create_active_employee', and
'delete_active_employee' routines
- t/dispatch/activity.t: adapt tests to use the new routines in Test.pm and to
test the per-method ACL profile definitions
0.234 2014-10-31 16:48 CET
- config/dispatch/: convert 'documentation' property of resource definitions
from HTML to POD
- t/dispatch/activity.t: provide some tests for 'activity/aid' and
'activity/code' resources
0.235 2014-10-31 17:29 CET
- Dispatch.pm: do not chomp off linebreaks when processing resource
documentation string
0.236 2014-10-31 21:29 CET
- Build.PL: require Pod::Simple::HTML (needed by 'docu/html' target)
- config/dispatch/: activate 'activity/aid' resource for POST; add '=pod'
line at top of documentation string on each resource; rename 'docu' target
from '_help_post' to '_docu'; add 'docu/html' resource definition; convert
some remaining documentation from HTML to POD
- Dispatch.pm: add a '_docu_html' target
- Dispatch/Activity.pm: adapt '_aid' target for POST
- Test.pm: expand 'docu_check' routine to cover 'docu/html' resource as well as
straight 'docu'
- Util.pm: add a 'pod_to_html' conversion routine
- t/dispatch/activity.t: fill in remaining tests necessary to meet minimal
workflow expectations
- t/dispatch/top.t: add battery of 'docu/html' tests, mostly plagiarized from
'docu'
0.237 2014-11-01 14:11 CET
- rename Dispatch/Privhistory.pm to Dispatch/Priv.pm to match 'priv' resource
0.238 2014-11-03 10:30 CET
- add many schedule-related resources to development-checklist
- in new schedule_Config.pm file with schedule resource definitions
copied from priv_Config.pm, edit resource descriptions and documentation
strings
- in Model/Privhistory.pm, move 'get_privhistory' routine to Model/Shared.pm
and generalize into 'get_history'; make 'get_privhistory' and
'get_schedhistory' in Model/{Privhistory, Schedhistory}.pm be wrappers for this
new shared routine
- t/: adapt to current state
0.239 2014-11-03 12:15 CET
- renamed all 'priv/current/...' and 'schedule/current/...' resources
to 'priv/self/...' and 'schedule/self/...', respectively
- Dispatch/Priv.pm: renamed _get_current to _get_history_self; move
_current_priv logic to Dispatch/Shared.pm->current because we will call it
from Dispatch/Schedule.pm as well;
- Dispatch/Schedule.pm: ongoing adaptations
- t/: adapt to current state
0.240 2014-11-03 16:19 CET
- MANIFEST: add Dispatch/Schedule.pm, t/dispatch/schedule.t
- activity_Config.pm: add 'activity/help' resource definition
- priv_Config.pm, etc.: rename some resources and targets
(in particular s/current/self/ in resource names)
- dispatch_Config.pm, Resource.pm: activate schedule resources
- dispatch_Message_en.pm: add new DISPATCH_EMPLOYEE_SCHEDULE and
DISPATCH_EMPLOYEE_SCHEDULE_AS_AT messages
- config/sql/schedule_Config.pm: add new SQL_SCHEDHISTORY_SELECT_RANGE_BY_EID
and SQL_SCHEDHISTORY_SELECT_RANGE_BY_NICK params
- Dispatch/Shared.pm: adapt 'current' routine to work for both priv and
schedule resources
- Model/Shared.pm: fix some bugs
- Resource.pm: activate schedule resources
- t/dispatch/activity.t: add tests for 'activity/help'
- t/dispatch/schedule.t: add tests for "/schedule/eid/:eid/?:ts",
"/schedule/help", "/schedule/nick/:nick/?:ts", and "/schedule/self/?:ts"
resources
0.241 2014-11-03 22:32 CET
- Dispatch/Shared.pm: "numify" $eid in return value payload from dispatch
target 'current'; check for hashref instead of scalar now that we are
converting the schedule from JSON string into Perl hashref
- Model/Schedule.pm: rename 'get_json' to 'get_schedule_json' and add
'decode_schedule_json' for converting the schedule JSON string into a Perl
hashref
- Model/Shared.pm: return decoded schedule (hashref) from schedule_by_eid
- t/dispatch/schedule.t: uncomment/adapt some tests
- t/: get model units to run cleanly again
0.242 2014-11-04 08:30 CET
- config/dispatch/schedule_Config.pm: put resource definitions in alphabetical order;
add missing POD; add missing 'schedule/intervals' resource definition
0.243 2014-11-04 09:56 CET
- schedule_Config.pm, Dispatch/Schedule.pm: make 'schedule/history/...'
resources use "not_implemented" dispatch target so they don't vomit 500
0.244 2014-11-04 11:32 CET
- schedule_Config.pm: split 'schedule/intervals/?:shid' into two separate
resources for parsing clarity
0.245 2014-11-04 17:50 CET
- Build.PL: require App::Dochazka 0.175 for 'ssid' (instead of 'scratch_sid')
- schedule_Config.pm: 'schedule/intervals' is POST and DELETE only; activate
DELETE on 'schedule/intervals/:sid'; rename ':shid' parameter to ':sid'
- rename 'scratch_sid' field/property of intervals to 'ssid'
- dispatch_Message_en.conf: add DISPATCH_SCHEDINTVLS_MISSING,
DISPATCH_SCHEDULE_INSERT_OK, DISPATCH_SCHEDULE_NO_UPDATE
- Dispatch/Schedule.pm: add _intervals_post and _intervals_delete dispatch
targets
- move 'expurgate' logic to Model/Shared.pm and implement a wrapper method
in each model module
- Model/Schedintvls.pm: fix 'insert' method so it returns a sensible status
payload
- Test.pm: in docu_check, run 'payload' tests only if there is a payload;
add as-yet untested 'create_testing_schedule' and 'delete_testing_schedule'
routines
- t/: add new 'intervals.t' unit; adapt existing units to current state
0.246 2014-11-04 21:08 CET
- stabilization after the last commit
- t/dispatch/intervals.t: add some tests called for by development workflow
0.247 2014-11-04 22:21 CET
- add 'DISPATCH_SCHEDULE_EXISTS' message
- add 'schedule/all' and 'schedule/all/disabled' resource definitions
- add 'disabled' field to 'schedules' table
- Dispatch/Schedule.pm: when schedule already exists, return
'DISPATCH_SCHEDULE_OK'
- t/dispatch/intervals.t: test for 'DISPATCH_SCHEDULE_OK' when inserting the
same schedule a second time
0.248 2014-11-05 11:05 CET
- Build.PL: require App::Dochazka 0.176 to ensure Schedule objects have a
'disabled' property
- config/dispatch/schedule_Config.pm: activate 'schedule/all' and
'schedule/all/disabled' resources
- config/sql/schedule_Config.pm: add 'disabled' field to SQL statements;
add two new SQL statements to get all schedule records
- Dispatch/Schedule.pm: import 'get_all_schedules' and
'get_all_schedules_including_disabled' routines
- Model/Schedule.pm: implement 'get_all_schedules' and
'get_all_schedules_including_disabled' routines
0.249 2014-11-05 12:18 CET
- give 'schedule/all/...' dispatch targets more sensible names
- enable POST on 'schedule/intervals/:sid', including documentation
- t/dispatch/schedule.t: add 405 tests for 'schedule/all/...'
0.250 2014-11-05 17:54 CET
- Build.PL: require App::Dochazka 0.177 for TO_JSON method; require
App::CELL 0.201 to get rid of Data::Structure::Util
- Resource.pm: get rid of wacky debug code; add 'convert_blessed' to our
JSON 'encode' method call now that we have TO_JSON methods in all models;
this obviates the need to call 'unblessed'
- Data::Structure::Util does not work with perl 5.20, so it needs to go;
remove all mentions of it; fix resulting brokenness
- Util.pm: get rid of jury-rigged 'deep_copy' routine (use Storable::dclone
instead!)
0.251 2014-11-06 09:42 CET
- Dispatch/Schedule.pm->_intervals_delete was reporting success even when
nothing was actually deleted - fixed
- Model/Schedule.pm->schedule_all was crashing when no records found (because
$counter was not initialized) - fixed
- t/104-employee.t: deprecate expurgate in favor of TO_JSON
- t/dispatch/intervals.t: when no schedule records are in the database,
'schedule/all/...' will return 404 - fixed
- t/dispatch/schedule.t: add basic tests for 'schedule/all' and
'schedule/all/disabled'
0.252 2014-11-06 16:43 CET
- Build.PL: require App::Dochazka 0.181 for new boilerplate code
- schedule_Config.pm: rename '/schedule/intervals/:sid' to
'/schedule/sid/:sid'
- dbinit_Config.pm: add a trigger to make immutable/unupdatable the 'schedule'
field of the 'shedules' table
- add a 'SQL_SCHEDULE_UPDATE' statement to support updates on the
'schedules' table
- replace calls to 'expurgate' method with 'TO_JSON'
- Dispatch/Schedule.pm: implement _intervals_get and _schedule_post dispatch
targets and '_update_schedule' routine adapted from Employee.pm
- Model/Shedule.pm: override the boilerplate 'compare' method for this
model because the 'disabled' field needs special handling; implement
an 'update' method
- Resource.pm: fix a debug message
- t/107-schedule.t: add test case for 'update' method
- t/dispatch/intervals.t: add GET test case for '/schedule/sid/:sid' resource
0.253 2014-11-07 14:33 CET
- Test.pm: make a new 'req' routine that to replace the current rag-tag
collection of kludgey routines for generating HTTP requests against the
Plack::Test object
- t/dispatch/intervals.t: add 'POST schedule/sid/:sid' test cases; migrate the
entire unit to the new 'req' routine
- t/: move model tests into their own subdirectory and comment out 'skip_all'
so they run
- Model/: remove 'expurgate' method from all model modules (replaced by TO_JSON);
remove 'compare' method overlay (replaced by compare_disabled)
- t/model/activity.t: adapt tests, remove deprecated tests, add new tests
0.254 2014-11-07 16:19 CET
- t/dispatch/activity.t: migrate to new 'req' function
0.255 2014-11-07 22:12 CET
- t/dispatch/employee.t: strenuously migrate to the new 'req' routine
0.256 2014-11-08 20:30 CET
- t/dispatch/priv.t: migrate another unit to 'req'
0.257 2014-11-08 21:35 CET
- t/dispatch/schedule.t: migrate unit to 'req'
0.258 2014-11-09 09:10 CET
- t/dispatch/top.t: migrate unit to 'req'
- Test.pm: deprecate and eliminate kludgey testing routines (replaced by 'req')
0.259 2014-11-10 08:54 CET
- Model/Shared.pm: finally get up the courage to return 'NOTICE' status level
instead of 'OK' when SELECT statements return no records - this makes
"nothing found" easy to distinguish from "something found", while keeping "ERR"
reserved for DBI errors; add 'make_test_exists' to generate 'nick_exists',
'eid_exists', etc. etc. (to be used in all model modules)
- Dispatch/Activity.pm: adapt to above change
- Model/Employee.pm: revamp nick_exists and eid_exists (generalize these routines
and generate them at runtime for code re-use)
- Resource.pm: adapt to above change
- t/dispatch/activity.t: cleanup
- t/model/employee.t: cleanup
- not testing cleanly
0.260 2014-11-10 11:29 CET
- Dispatch/: cleanup
- Dispatch/Priv.pm: break out common code from _history_eid and _history_nick
into a separate '_history_end_game' routine
- Model/: cleanup
- Model/Shared.pm: fix make_test_exists; make get_history include both
EID and nick in the payload
- t/: adapt tests to current state
- tests running cleanly again
0.261 2014-11-10 12:14 CET
- Model/: add 'aid_exists', 'code_exists', 'iid_exists', etc. runtime-generated
boilerplate functions to all models where they make sense
- Model/Employee.pm: cleanup
- Model/{Schedule,Shared}.pm: eliminate circular dependency and clean up aftermath
- t/model/: add test cases for new boilerplate
0.262 2014-11-10 14:02 CET
- release/: new docgen.plx to auto-generate POD documentation on all resources;
adapt release.sh to use the new docgen.plx script
- docs/Resources.pm: auto-generated POD documentation
- config/docgen_Config.pm: special params for use in docgen.plx
- config/dispatch/: clean up some of the docs
- config/dispatch_Config.pm: add POD to DISPATCH_RESOURCE_LISTS
- Resource.pm: adapt 'init_router' routine to new DISPATCH_RESOURCE_LISTS
format
0.263 2014-11-10 14:40 CET
- REST.pm: eliminate obsolete POD; add new POD about
App::Dochazka::REST::Docs::Resources
- config/dispatch/: add some asterisks
- config/docgen_Config.pm: add DOCHAZKA_DOCGEN_EPITAPH to make
Docs/Resources.pm a valid module
- ../release/docgen.plx: process the epitaph
0.264 2014-11-10 17:13 CET
- ../release/docgen.plx, config/docgen_Config.pm: POD module generated by
docgen.plx not rendering correctly on metacpan.org - tweak; add DESCRIPTION
section
- Model/Schedule.pm: fix broken schedule_all routine (it wasn't using the right
SQL statement)
- t/dispatch/schedules.t: add proper minimal test cases for 'schedule/all' and
'schedule/all/disabled'
0.265 2014-11-11 17:45 CET
- config/dispatch/schedule_Config.pm: rewrite documentation of
'schedule/intervals' resource
- Dispatch/Schedule.pm: cleanup
- major refactor of history-related dispatch targets and supporting
code for code sharing between Privhistory and Schedhistory
- lots of regressions; not testing cleanly yet
- config/dispatch/schedule_Config.pm: activate history resources,
etc.
- experimenting with metacpan POD rendering glitch
0.266 2014-11-11 10:10 CET
- docgen.plx: flesh out auto-generated resource documentation by adding
permitted methods and CLI command
- more trial-and-error on metacpan POD rendering issue (change all heredocs
so the end flags are unique)
- Model/Shared.pm: implement new 'load_multiple' routine to eliminate some
creeping code duplication
- Model/Activity.pm: make get_all_activities use 'load_multiple'
- Model/Schedule.pm: replace 'schedule_all' and 'schedule_all_disabled' with
a single 'get_all_schedules' routine based on 'load_multiple'
- Dispatch/Schedule.pm: adapt to the new routines
- t/: adapt to current state; add test cases for get_all_activities
0.267 2014-11-11 22:51 CET
- complete refactor of shared history-related dispatch targets
- integrate intervals.t into schedule.t
- split history.t off from priv.t
- remove history-related tests from schedule.t
- (now ready to add schedhistory tests to history.t)
0.268 2014-11-12 09:13 CET
- t/dispatch/history.t: adapt to test both 'priv/history' and
'schedule/history' resources
- ../release/docgen.plx: add ACL profile to each resource; tweak display of
HTTP methods
- t/dispatch/history.t: clean up comments, variable and function names
0.269 2014-11-12 11:15 CET
- ../release/release.sh not incrementing version number of Docs/Resources.pm -
attempt to fix
0.270 2014-11-12 11:39 CET
- ../release/docgen.plx: tweak POD formatting