App-Dochazka-REST

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN


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

Changes  view on Meta::CPAN

- 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 )