App-Dochazka-REST
view release on metacpan or search on metacpan
0.284 2014-11-18 11:01 CET
- unit tests: move existing '002-root' and '003-current-priv' units to
new t/sql directory; add new 't/sql/immutable_id.t' unit to test
new triggers to make 'eid', 'iid', etc. fields immutable
- config/sql/dbinit_Config.pm: add "immutability" triggers for 'employees.eid',
'schedhistory.shid' and 'privhistory.phid'
0.285 2014-11-18 11:53 CET
- dbinit_Config.pm, t/sql/immutable_id.t: finish making '*id' fields immutable
0.286 2014-11-18 12:49 CET
- dispatch_Config.pm, interval_Config.pm: add basic set of 'intervals'
resources
0.287 2014-11-18 15:33 CET
- config/dispatch/HTTP_Message_en.conf: make a separate message file for codes
that map directly to an HTTP error code
- config/, lib/: transform DOCHAZKA_BAD_INPUT and DOCHAZKA_INSUFFICENT_PRIV into
special status codes that map directly to HTTP error codes
- Resource.pm: when target returns certain status codes (see package variable
%status_http_map), translate them directly into HTTP error codes
- t/: adapt to current state
0.288 2014-11-19 10:05 CET
- Dispatch/Lock.pm: lay groundwork for locks
- t/dispatch/interval.t: new tests
- interval_Config.pm, dispatch_Message_en.conf: minor fixes
- Dispatch/Interval.pm: add special ACL handling
- Model/Interval.pm: fix bug (wrong order of properties in call to 'cud')
- Test.pm: let 'req' handle any user as long as "passhash" property is
set the same as "nick"
0.289 2014-11-19 11:08 CET
- interval_Config.pm: make not-implemented resources use 'not_implemented'
dispatch target
- t/dispatch/interval.pm: add some missing boilerplate tests
0.290 2014-11-19 11:23 CET
- interval_Config.pm: 'interval/nick/:nick/:tsrange' resource was broken due to
missing EOH - fixed
- t/dispatch/interval.t: $base for 'interval/nick/:nick/:tsrange' resource was
set to wrong value - fixed
0.291 2014-11-19 15:19 CET
- HTTP_Message_en.conf, Resources.pm: add 404 status trigger
- interval_Config.pm: call the hypothetical error code DISPATCH_TOO_MANY_RECORDS_FOUND
- top_Config.pm: fix factual error in documentation
- dispatch_Message_en.conf: add DISPATCH_TOO_MANY_RECORDS_FOUND definition
- Dispatch/Shared.pm->history: trigger 404 when no records found
- Model/Employee.pm: return DISPATCH_NO_RECORDS_FOUND with status level 'NOTICE'
- t/dispatch/history.t: explore more possibilities for entering an invalid EID;
adapt to current state (status-triggered 404 errors)
- t/dispatch/interval.t: add basic tests for 'interval/self/:tsrange'
0.292 2014-11-19 16:40 CET
- dispatch/interval_Config.pm: enable _fetch_* dispatch targets
- sql/interval_Config.pm: add SQL_INTERVAL_SELECT_BY_EID_AND_TSRANGE
- Dispatch/Interval.pm: implement _fetch_* dispatch targets
- Model/Interval.pm: implement a fetch_by_eid_and_tsrange function
- Model/Shared.pm: load_multiple had no provision for binding parameters -
fixed
- t/dispatch/interval.t: add some basic tests for
'/interval/eid/:eid/:tsrange', 'interval/nick/:nick/:tsrange' and
'/interval/self/:tsrange'
0.293 2014-11-19 18:05 CET
- Dispatch/Interval.pm: let _new set EID to that of current user
if no EID specified in request body
- t/dispatch/interval.t: add tests under 'interval/new' resource
0.294 2014-11-19 22:59 CET
- Dispatch.pm: adapt _docu* dispatch targets so they expect to receive argument
in 'resource' property
- Dispatch/Interval.pm: pass argument with DISPATCH_PARAMETER_BAD_OR_MISSING to
report which property is missing
- Resource.pm: only that JSON is not malformed that converts into a hashref
- Test.pm: adapt to current state
- t/dispatch/intervals.t: add two tests under 'interval/new'
0.295 2014-11-20 11:50 CET
- rename resource 'schedule/interval' to 'schedule/new'
- Resource.pm: no longer accept content bodies that do not convert cleanly into
a hashref - this required some minor retooling of the following resources that
had been accepting bare scalars or JSON arrays:
- 'docu' and 'docu/html'
- 'metaparam' and 'siteparam'
- 'schedule/new'
- Dispatch.pm->_param_post now saves the pre-change value and attempts to
restore it if the new value is not set properly
- t/: adapt to current state
0.296 2014-11-20 14:01 CET
- split 'metaparam' / 'metaparam/:param'
0.297 2014-11-20 18:21 CET
- config/dispatch/lock_Config.pm: add lock resource definitions
(very similar to interval_Config.pm)
- dispatch/interval_Config.pm: adapt to generalized dispatch targets
- dispatch_Config.pm: enable lock resources
- sql/lock_Config.pm: add missing SQL statements
- Dispatch/: remove bogus "use App::Dochazka::REST::Dispatch::ACL qw( check_acl);"
line from all dispatch modules
- Dispatch/ACL.pm: add 'check_acl_context' routine (shared between interval
and lock dispatch targets)
- Dispatch/{Interval,Shared}.pm: generalize most of the dispatch targets
- Dispatch/Lock.pm: get it ready for business
- Model/Lock.pm: add missing fetch_by_eid_and_tsrange routine
- t/dispatch/: rename 'interval.t' to 'interval_lock.t' and start running
each resource's tests in a foreach loop so the same tests are run for
'interval/..' and 'lock/..' counterparts
0.298 2014-11-20 21:51 CET
- sql/lock_Config.pm: fix typos in SQL_LOCK_UPDATE
- Dispatch/Lock.pm: in '_new', make eid not required in request body
- Dispatch/Shared.pm: fix bugs in interval+lock shared routines
- add several debug log messages; comment out one debug log message
- t/dispatch/interval_lock.t: test both 'interval/..' and 'lock/..'
for all resources
0.299 2014-11-23 12:13 CET
- Util/Date.pm: drop unused dependency
- REST/Test.pm: skip tests if Mason initialization fails
- Implement Feature #39:
- REST.pm: implement, use, test reset_mason_dir() routine
- REST.pm->reset_mason_dir(): return comp_root in payload
- REST.pm->reset_mason_dir(): return payload only on success
- Model/Component.pm: add create_file method
- Model/Component.pm: call create_file on successful insert and update
- Model/Component.pm: add delete_file method
0.508 2016-01-02 20:24 CET
- Build.PL: add Mason dependency
- docker: add Mason dependency
- t/mason.t: skip tests if state directory inaccessible
0.509 2016-01-02 21:56 CET
- docker: add new dependencies and create state directory
- ResourceDefs.pm: add genreport resource definition
- Implement basic "POST genreport" operation
0.510 2016-01-02 23:24 CET
- Model/Component.pm: improve error handling in generate method
- Add sample/site_param.mc Mason template
- Mason.pm: add basic class_header parameter
- t/dispatch/component.t: do not complain when we add sample templates
- Dispatch.pm->handler_genreport: pass arguments to generate method
- Model/Component.pm->generate: accept and process template arguments
0.511 2016-01-04 00:43 CET
- various documentation fixes
- bin/docgen.plx: reinstate resource POD generation script (lost in
migration from SourceForge to GitHub)
- REST/Test.pm: use accessors to get employee EID
- Docs/Workflow.pm: cover report generation and Mason components
- Model/Shared.pm->tsrange_equal(): return true or false
- Model/Shared.pm: implement tsrange_intersection()
- Partial intervals feature (#43)
- Build.PL: require Common 0.196 for partial intervals
- interval_Config.pm: use overlap instead of contained by
- sql: define SQL_INTERVAL_SELECT_BY_EID_AND_TSRANGE_PARTIAL_INTERVALS
- sql: make SQL_INTERVAL_SELECT_BY_EID_AND_TSRANGE ignore partial intervals
- config/sql/interval_Config.pm: fix syntax error
- Model/Interval.pm: get whole and partial intervals
- Model/Interval.pm: use tsrange_intersection() to create partial intervals
- t/model/interval_lock.t: add partial interval tests
0.512 2016-01-04 11:43 CET
- Fix "Partial intervals not shown in temporal order" (#46)
- bin/create_active_employee.t: script to create employee in empty database
- sql/interval_Config.pm: refrain from sorting intervals
- Model/Interval.pm: sort concatenated set of intervals
- Model/Shared.pm: use tstzrange instead of tsrange
- t/model/interval_lock.t: test case for #46
0.513 2016-01-04 20:39 CET
- Implement feature "No database operations on partial intervals" (#47)
- config/: add DOCHAZKA_PARTIAL_INTERVAL_ILLEGAL_OPERATION message
- Model/Interval.pm: no database operations on partial intervals
- Implement "Test function to delete all attendance data" (#49)
- REST.pm: split insert initial set of activities code into separate function
- Model/Shared.pm->cud_generic(): make bind_params parameter optional
- REST/Test.pm: delete_all_attendance_data() function
- t/{dispatch,model}: use delete_all_attendance_data()
0.514 2016-01-05 11:41 CET
- Fix "INTERVAL DELETE operations clobber partial intervals" (#50)
- Model/Shared.pm: improve cud() and cud_generic() return status
- t/: adapt tests to current state
- config: SQL_INTERVAL_DELETE_BY_EID_AND_TSRANGE ignore partial intervals
- sql/interval_Config.pm: do not apply LIMIT when selecting partial intervals
- Dispatch.pm: fix a double my
- REST.pm: rearrange sections; new high-level content; move details to
REST/Guide.pm
0.515 2016-01-06 21:15 CET
- doc: fix GitHub issue tracker URL
- Model/Interval.pm: drop obsolete comment
- ResourceDefs.pm: rethink interval/summary/...
- interval/summary/eid/:eid/:tsrange skeleton implementation
- Dispatch.pm: make _handler_intlock aware of interval/summary
- Implement handler for interval/summary/eid/:eid/:tsrange
- Util/Date.pm: implement calculate_hours() function
- Model/Activity.pm: implement code_by_aid() function
- Improve interval/summary/eid/:eid/:tsrange handling
0.516 2016-01-09 20:42 CET
- cleanup: merge Utils::Date into Utils::Holiday
- cleanup: move REST::Util::Holiday to REST::Holiday
- cleanup: refrain from using the /a modifier
- Component_Config.pm: enclose siteparam template in HTML 4.0
- doc: improve comments in Util.pm
- doc: expand documentation of genreport resource
- Model/Interval.pm: simplify interval summary data structure
- Dispatch.pm: require 'source', 'acl' properties for insert only
- t/dispatch/interval_lock.t: add interval/summary tests
- Implement feature "Component class: add validations property" (#54)
- sql/component_Config.pm: add validations to SQL statements
- sql/dbinit_Config.pm: add validations to components table
- REST.pm->reset_db: add validations to SQL_COMPONENT_INSERT
- Model/Component.pm: add validations property
- t/dispatch/component.t: add validations property
- Build.PL: require App::Dochazka::Common 0.199 for component validations
- Fix bug "genreport resource does not validate parameters" (#53)
- genreport resource: apply validations, if any
- REST/Dispatch.pm->handler_genreport(): vet parameters more carefully
0.517 2016-01-11 00:29 CET
- config/Component_Config.pm: use Data::Dumper in component
- config/Component_Config.pm: beginnings of monthly report template
- t/model/tempintvls.t: change Util::Date to Holiday
- Dispatch.pm->handler_genreport(): refactor function
- Revamp Docker testing environment:
- version.plx: Perl script to print App::Dochazka::REST version
- .gitignore: ignore docker/Dockerfile
- bin/dochazka-dbinit: add database reset script
- docker: Makefile to generate 3 different images from a single
Dockerfile.in
- docker-test.sh: adapt to current state
0.518 2016-01-11 18:29 CET
- version.plx: use the right library directory
( run in 1.421 second using v1.01-cache-2.11-cpan-2398b32b56e )