App-Dochazka-REST

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

    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

Changes  view on Meta::CPAN


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

Changes  view on Meta::CPAN

- 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

0.271  2014-11-12 11:43 CET
- cleanup distro infrastructure

0.272  2014-11-12 13:38 CET
- Dispatch/Employee.pm, t/dispatch/employee.t: add current schedule to payload
  of 'employee/current/priv' resource
- Docs/Workflow.pm: new POD module describing workflow scenarios from an
  end-user perspective
- dispatch_Message_en.conf: add DISPATCH_EMPLOYEE_CURRENT_PRIV
- Test.pm: add 'create_inactive_employee'; rename 'delete_active_employee' to
  'delete_employee_by_nick' (complete re-write)
- t/dispatch/activity.t: add some tests for 'activity/help'; prepare for this
  resource to handle resources where 'acl_profile' is a HASHREF
- ../release/docgen.plx: tweak POD formatting some more

0.273  2014-11-12 16:49 CET
- Dispatch/Shared.pm: make 'make_default' handle resources that use
  fine-grained acl_profile definition
- t/dispatch/activity.t: test above handler

0.274  2014-11-13 10:43 CET
- config/dispatch/: allow 'inactive' to view own priv/schedule history
- Dispatch/Shared.pm: refactor 'current' routine to use a dispatch table
- Docs/Workflow.pm: add verbiage
- Test.pm: create_{active,inactive}_employee return $eid
- t/: start fixing regressions

0.275  2014-11-13 15:01 CET
- fix regression: "GET schedule/eid/:eid vomits 500 or returns nonsense"
- Dispatch/Shared.pm: the regression was caused by not saving the return
  value from the call to {priv,schedule}_by_eid in the 'current' routine
- t/dispatch/schedule.t: add test case for this regression 

0.276  2014-11-13 15:37 CET
- t/dispatch/schedule.t: add more positive tests focused on 'current' dispatch
  target

0.277  2014-11-13 16:30 CET
- Dispatch/Schedule.pm: cleanup
- t/dispatch/schedule.t: add negative tests for 'schedule/eid/:eid/?:ts'

0.278  2014-11-13 22:32 CET
- t/dispatch/schedule.t: add more negative tests
- ../development-checklist, Docs/Workflow.pm: start blocking in interval
  and lock resources; add verbiage
- config/dispatch/: make 'employee/self' be a synonym for 'employee/current'
  and enable POST requests on these resources so employees can, e.g., change
  their own password; update documentation of history resources
- REST_Config.pm: add 'DOCHAZKA_PROFILE_EDITABLE_FIELDS' for POST requests
  on 'employee/self' 
- t/dispatch/employee.t: run all 'employee/current' tests on 'employee/self'
  as well; realize that if a resource returns 405 it will do so regardless
  of which user we authenticate as (even non-existent user)

0.279  2014-11-14 10:39 CET
- Dispatch/Employee.pm: add _post_current (dispatch target for POST
  'employee/{current, self}'
- t/dispatch/employee.t: ACL checks are not working for resources with
  fine-grained ACL profile definition: add a test case for this

0.280  2014-11-14 11:29 CET
- employee_Config.pm: fix 'employee/self' acl_profile property
- Dispatch/Employee.pm: request body needs to be a hashref - check for that
  where we really care about it - in _put_post_delete_employee_by_eid
- Dispatch/Shared.pm: pre_update_comparison was causing DOCHAZKA_BAD_INPUT to
  be returned if no fields would actually change on update, but this might be
  confusing - change it to allow updates in such cases
- t/dispatch/employee.t: add test cases for POST employee/{current,self} by
  inactive and active employees; adapt tests to current state

0.281  2014-11-14 16:42 CET
- finish implementation (including test cases) of POST dispatch
  target for 'employee/{current,self}' resource

0.282  2014-11-14 21:36 CET
- dbinit_Config.pm: add trigger clause to make 'sid' field immutable
- Docs/Workflow.pm: add verbiage
- t/model/schedule.t: add test case verifying that 'update' method does not
  change the database even if the 'sid' field is changed

0.283  2014-11-18 07:45 CET
- REST_Message_en.conf: add finer-grained notice messages for 'cud'
- Model/Shared.pm: in cud, check return value of '$sth->execute' and
  return finer-grained notices to distinguish various edge cases
- t/: adapt to current state

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

Changes  view on Meta::CPAN

- REST.pm: eliminate 'create_tables' routine; all database initialization now
  takes place in 'reset_db'
- ConnBank.pm: refactor 'get_conn'
- adapt all instances of 'get_conn' throughout the code base
- {Dispatch,Model}/Employee.pm: eliminate 'select_multiple_by_nick' routine;
  call load_multiple directly from the dispatch target
- t/: adapt to current state

0.340  2014-12-09 11:09 CET
- for auditing purposes we need to send not only the DBIx::Connector object,
  but also the current EID in all 'cud' calls
- Model/Shared.pm: in cud routine, add 'eid' to PARAMHASH and run
  SQL_SET_DOCHAZKA_EID_GUC to set 'dochazka.eid' GUC session variable
- {Dispatch,Model}/Activity.pm: carry out necessary modifications

0.341  2014-12-09 17:17 CET
- work on getting the current EID into Model/Shared.pm->cud
- send request context in all 'insert', 'update' and 'delete' method calls on
  datamodel objects; these methods then split out the DBIx::Connector object
  and the current EID
- Model/: make all necessary modifications
- Test.pm, Dispatch/: deal with cascade effects (WIP)
- t/sql/, t/model/: adapt tests to current state
- t/dispatch/: WIP

0.342  2014-12-10 10:52 CET
- audit_Config.pm: DROP SCHEMA is not necessary here, since the immediately
  preceding command is DROP DATABASE
- Dispatch/: completed the migration described above
- Model/: fix some lingering migration-related issues
- Test.pm, t/: migration broke lots of tests; we are now expected to send the
  request context, but with Plack::Test there is none(!); fortunately, it is
  trivial to simulate such a context ($faux_context)
- dispatch_Message_en.conf: get rid of
  DISPATCH_EMPLOYEE_{INSERT,UPDATE,DELETE}_OK message (DOCHAZKA_CUD_OK is
  sufficient)

0.343  2014-12-10 16:43 CET
- dbinit_Config.pm: fix names of parameters used to store PostgreSQL superuser
  credentials for testing purposes
- ConnBank.pm: refactor the entire module
- REST.pm: adapt to the new ConnBank.pm code; make 'init' routine return a
  status object with the Plack application in the payload
- Dispatch/, Model/, Test.pm, t/: adapt to the new ConnBank.pm code

0.344  2014-12-10 18:01 CET
- bin/dochazka-rest: adapt to recent modifications to REST.pm->init
- REST_Message_en.conf: add DOCHAZKA_NO_DBIX_CONNECTOR
- dbinit_Config.pm: sum(numbackends) is not working for some reason; work
  around the problem
- REST/Dispatch.pm: add missing 'use Try::Tiny'; add some debugging messages to
  '_get_dbstatus'; numify number of connections
- Test.pm: add some error checking; 
- t/dispatch/top.t: add subtest for 'dbstatus' resource

0.345  2014-12-11 11:35 CET
- REST.pm: add verbiage to POD
- Resource.pm, Dispatch/Employee.pm: prepare for Blowfish

0.346  2014-12-11 18:36 CET
- hash passwords using Authen::Passphrase::SaltedDigest
  - App::Dochazka::CLI authentication works fine
  - tests in t/dispatch/ are broken
- Dispatch/Employee.pm: implement 'hash_the_password' routine, call it from
  _insert_employee and _update_employee; export it for use in Test.pm
- Resource.pm: in _authenticate, compare password with stored salted hash 
- Test.pm: import hash_the_password and use it in create_testing_employee;
  adapt calls
- dbinit_Config.pm, t/sql/root.t: use the real hash+salt instead of the
  plaintext password

0.347  2014-12-11 20:13 CET
- REST_Config.pm: modify DOCHAZKA_PROFILE_EDITABLE_FIELDS so inactives and
  actives can still change their password now that we are hashing
- config/dispatch/employee_Config.pm: 'GET employee/nick/:nick' acl_profile was
  set too restrictive - fix
- dbinit_Config.pm: use real hash/salt when INSERTing 'root' and 'demo'
  employees
- Dispatch/Employee.pm: fix hash_the_password function calls
- Resource.pm: put call to Authen::Passphrase::SaltedDigest into a try/catch
  block; add some basic error-checking
- t/: adapt to current state

0.348  2014-12-12 09:39 CET
- REST_Config.pm: add DOCHAZKA_AUDITING and DOCHAZKA_AUDIT_TABLES to (1) make
  auditing optional, and (2) give site admin control over which tables are
audited
- REST.pm: make auditing optional; implement 'create_audit_triggers' and
  'delete_audit_triggers' routines to enable auditing to be disabled and
  re-enabled as and when desired

0.349  2014-12-12 16:43 CET
- get rid of DOCHAZKA_AUDITING
- Resource.pm: try to eliminate suspected double-encoding problem

0.350  2014-12-12 18:06 CET
- config/dispatch/interval_Config.pm: add resource definition for
  'interval/summary/?:qualifiers'
- dbinit_Config.pm: work on valid_schedintvl ticket
- config/REST_Config.pm: add DOCHAZKA_DBHOST, DOCHAZKA_DBPORT,
  DOCHAZKA_DBSSLMODE params
- ConnBank.pm: use the new site params in construction of data source string,
  provided they are set
- t/dispatch/interval_lock.t: start adding tests for the new
  'interval/summary/?:qualifiers' resource

0.351  2014-12-12 21:59 CET
- dbinit_Config.pm: the valid_schedintvl() function we had before was bogus -
  write a proper one
- t/model/schedintvls.t: add some tests that try to enter sets of intervals
  spanning more than 168 hours (which is banned by policy, enforced by the
  valid_schedintvl function)

0.352  2014-12-13 14:51 CET
- Build.PL: require Authen::Passphrase::SaltedDigest

0.353  2014-12-13 22:19 CET
- t/202-qualifiers.t: new unit to test Dispatch/Intervals->process_quals routine
- Dispatch/Intervals.pm: implmement 'process_quals' routine to parse qualifiers;
  start writing _get_summary (dispatch target for /interval/summary/?:qualifiers)

0.354  2014-12-14 22:47 CET
- config/dispatch/interval_Config.pm: activate the new 'interval/summary/..."
  resource
- Dispatch/Interval.pm: work on dispatch target for the new resource
- Util/Timestamp.pm: export '$current_month' and '$current_year'

0.355  2014-12-18 10:07 CET
- REST.pm: work on POD

0.356  2014-12-18 18:40 CET
- Resource.pm: add 'finish_request' routine to add 'no_cache' headers
- t/301-resource.t: test for presence of "no-cache" headers in HTTP response

===============================================
SPLIT OFF App::MREST into separate distribution
===============================================

0.357  2015-01-27 11:32 CET

Changes  view on Meta::CPAN

- Dispatch.pm: give 'forbidden' resource an invalid acl_profile; add note about
  this to resource documentation string

0.363  2015-02-02 11:44 CET
- t/301-resource.t: finish migrating unit to Web::MREST
- bin/dochazka-rest: migrate server startup script to Web::MREST
- Dispatch.pm: improve documentation of docu resource
- Employee.pm: fix typo
- Test.pm: migrate 'docu_check' routine to Web::MREST
- t/dispatch/top.t: start migrating unit to Web::MREST

0.364  2015-02-02 17:03 CET
- migrate 'priv/history/...' resource definitions
- Dispatch/Priv.pm: migrate '/priv/history/self/?:tsrange' handler (working
  nicely)

0.365  2015-02-02 21:44 CET
- Dispatch/Priv.pm: rewrite the main privhistory handler (split into three parts)

0.366  2015-02-03 07:26 CET
- Dispatch/Priv.pm: get handler_priv_history_post into a working state

0.367  2015-02-03 12:23 CET
- Dispatch/: split off History.pm from Priv.pm and make it work for both
  'priv/history/...' and 'schedule/history/...' resources
- Dispatch.pm: load resource definitions from Dispatch/History.pm
- remove old, pre-migration code obsoleted by these changes

0.368  2015-02-04 17:04 CET
- migrate 'schedule/new' resource definition
- migrate 'schedule/new' resource handler (WIP)
- t/dispatch/schedule.t: migrate (WIP)

0.369  2015-02-04 18:08 CET
- Dispatch/History.pm: handle errors
- Dispatch/Schedule.pm: in handler_schedule_new, do the work in pass two,
  because in pass one 'request_entity' is not yet populated
- Test.pm: migrate dbi_err and create_testing_schedule
- t/dispatch/history.pm: migrate (WIP)

0.370  2015-02-05 09:44 CET
- Dispatch/History.pm, Dispatch/Shared.pm, t/dispatch/history.t: migrate (WIP)

0.371  2015-02-05 15:10 CET
- migrate 'priv/...' (non-history) resources (WIP)
- iron out last bugs, t/dispatch/history.t runs cleanly now

0.372  2015-02-06 06:12 CET
- Dispatch/Priv.pm: implement separate handler for 'priv/{eid,nick}'
- Dispatch/Schedule.pm: migrate 'schedule/all' and 'schedule/all/disabled' resources
- Dispatch/Shared.pm: migrate the not-very-aptly-named 'current' routine
- t/dispatch/{priv,schedule}.t: remove 'noop'/'help' tests
- t/dispatch/priv.t: unit runs cleanly

0.373  2015-02-06 15:23 CET
- migrate 'schedule/...' resources (WIP)

0.374  2015-02-08 19:49 CET
- Dispatch/Schedule.pm: migrate 'schedule/eid/...' and 'schedule/nick/...';
  start migrating 'schedule/sid/:sid'
- Dispatch/Employee.pm: migrate 'employee/count/?:priv'; move hash_the_password
  to Util.pm
- t/dispatch/schedule.t: migrate unit tests

0.375  2015-02-09 08:52 CET
- Dispatch/Shared.pm: make a generalized method ('handler_first_pass_lookup')
  for fetching objects from the database based on URI mapping
- start migrating resource handlers to the new method

0.376  2015-02-09 15:15 CET
- migrating resources to 'handler_first_pass_lookup'

0.377  2015-02-09 20:33 CET
- debugging WIP

0.378  2015-02-10 08:40 CET
- migrate 'employee/...' resources (WIP)
- get rid of 'make_default', which was used to implement 'help' resources
  but is not compatible with Web::MREST

0.379  2015-02-10 17:29 CET
- massive reorganization: move handler routines to Dispatch.pm

0.380  2015-02-10 18:27 CET
- Dispatch.pm: merge 'current' into 'handler_get_privsched'; fix _update_schedule
- t/dispatch/schedule.t: migrate unit tests - unit runs cleanly again

0.381  2015-02-11 10:42 CET
- work on employee handlers (PUT employee/eid/:eid and PUT employee/nick/:nick)
  with two-pass additional ACL check for updates; insert is working, too
- TODO: migrate rest of employee resources and t/dispatch/employee.t

0.382  2015-02-11 14:41 CET
- ResourceDefs.pm: new module; move all migrated resource defs into it;
  add missing acl_profile properties to top-level resource defs; 
- Test.pm: include location header in return status (a-la Web::MREST)
- t/dispatch/top.t: migrate unit

0.383  2015-02-11 16:43 CET
- migrate Employee resources (WIP)

0.384  2015-02-12 07:31 CET
- support 'employee/search/nick/:key'

0.385  2015-02-12 09:22 CET
- Dispatch.pm: make 404 explanation in 'handler_get_employee_search_nick' more
  descriptive
- move ACL.pm up one level in the directory structure, since the Dispatch/
  directory will soon be gone

0.386  2015-02-12 09:44 CET
- Dispatch.pm: in 'GET employee/search/nick/:key', add '%' characters to :key
  implicitly if none are provided (and note this in resource documentation)
- Model/Shared.pm: in load_multiple, mention search keys in the result

0.387  2015-02-12 10:13 CET
- Dispatch.pm: make 404 explanation more descriptive
- t/dispatch/employee.t: get unit running cleanly

0.388  2015-02-12 11:22 CET
- move Dispatch/Shared.pm up one directory level

Changes  view on Meta::CPAN


0.544 2016-09-19 01:07 CEST
- Drop employee/current and employee/current/priv resources
- Add resource definitions for {priv,sched}/history/eid/:eid/:ts
- Add resource definitions for {priv,sched}/history/eid/:eid/now
- dispatch: distinguish single/multiple in history handler names
- Shared.pm: include timestamp in shared_get_class_prop_id() return list
- dispatch: implement GET handler for single-record history resources
- model: handle undef timestamps in history load_by_eid methods
- ResourceDefs.pm: better timestamp validation regex
- tests: add dispatch tests for {priv,schedule}/eid/:eid/{:ts,now}
- Add resource definitions for employee/{eid,nick}/{:eid,:nick}/full
- In employee/self/full resource, rename current_emp property to "emp"
- handlers: make employee/self/full return history objects
- tests: test for history objects in employee/self/full output
- dispatch: generalize pass 1 and 2 of GET employee/*/full handler
- Implement "employee/{eid,nick}/{:eid,:nick}/full" handlers
- tests: refactor "employee/self/full" dispatch tests
- tests: functional tests for employee/{eid,nick}/{:eid,:nick}/full

0.545 2016-09-23 14:45 CEST
- cleanup: reduce log verbosity of load_multile() in Model/Shared.pm
- Auth.pm: add more debug log messages, session mgmt

0.546 2016-09-25 09:44 CEST
- Revamp session management
- doc: update session management section of Guide

0.547 2016-09-26 14:00 CEST
- run-tests.sh: do not make an empty "1" file
- Auth.pm: require 'eid' property in _validate_session()
- model: stricter match for system users in ldap_sync()
- dispatch: improve error messages generated by LDAP handlers

0.548 2016-11-01 15:43 CET
- build/ops: move project back to Application:Dochazka (in OBS)
- Dispatch.pm: fix session resource
- Implement new "session/terminate" resource

0.549 2017-03-02 00:57 CET
- tests: fix top-level resource sanity test
- doc: dump session to log in Auth.pm
- scripts: cleanup dochazka-rest startup script
- build/ops: require Web::MREST 0.287
- doc: clarify schedule/scode/:scode
- make POST schedule/history accept scode as well as sid
- doc: clean up comments in Model/Shared.pm
- Make dbinit create DEFAULT schedule
- tests: add scode tests to t/sql/schedhistory.t
- tests: adapt tests to preserve DEFAULT schedule
- sql: make schedhistory SELECTs return scode as well as SID
- tests: schedhistory SELECTs are now returning scode

0.550 2017-10-16 22:05 CEST
- build/ops: require App::Dochazka::Common 0.207
- Drastically reduce verbosity of DBI error messages...
- Model/Employee.pm: regex for non-whitespace instead of true/false
- Dispatch.pm: have session/terminate return a real status code
- tests: ldap.t: display value of DOCHAZKA_LDAP_SERVER config param
- config: tweak whitespace in Component_Config.pm
- Auth.pm: debug log message with LDAP password
- ResourceDefs: allow passerby to GET activities
- doc: ResourceDefs: clarify schedule property of employee/self/full

0.551 2017-10-20 15:29 CEST
- ResourceDefs: allow passerby to GET schedule/sid/:sid

0.552 2017-10-23 11:53 CEST
- ResourceDefs: fix permissions on schedule/eid/:eid/?:ts
- Fillup: produce 100% schedule fulfillment without clobbering
- Fillup: return just scheduled intervals if clobber is true
- Model/Shared: make canonicalize_tsrange() fail on empty tsranges
- fillup: get conflicting intervals list in chronological order

0.553 2017-10-25 23:37 CEST
- WISHLIST: add "GET ldap/info"
- Dispatch: implement POST interval/scheduled
- Shared.pm: rip out dead code
- t/fillup.t: expand test coverage of Fillup
- Fix {priv,schedule}_change_during_range, {priv,sched}history_at_timestamp

0.554 2017-10-31 14:31 CET
- Fillup: return different code when dry_run is set
- tests: add 'interval/scheduled' coverage to t/dispatch/fillup.t
- Fillup: fix success and failure messages
- dbinit_Config: disallow modification of root supervisor field

0.555 2017-11-02 20:23 CET
- Model/Shared: introduce DOCHAZKA_SQL_TRACE to control SQL debugging info
- sql: add trigger preventing employees from supervising themselves
- Resource "POST interval/scheduled" no longer requires AID
- ResourceDefs: adjust POD of "interval/scheduled"

0.556 2017-11-02 23:20 CET
- Fillup: fix status code when no intervals created/identified
- Dispatch: fix regression in POST interval/fillup

0.557 2017-11-15 12:07 CET
- Add has_reports property to GET employee/.../full
- doc: ResourceDefs: mention URI encoding in employee/search/nick/:key
- ResourceDefs: let inactive and above search employee profiles
- Dispatch: refrain from returning 400 on certain harmless updates

0.558 2020-02-11 19:49 CET
- ResourceDefs: allow inactives to get full employee profiles of supervisees
- Dispatch: allow supervisor to generate scheduled intervals of supervisee
- build/ops: drop Makefile.PL, add t/critic.t and t/manifest.t

0.559 2022-06-29 17:49 CEST
- bootstrap: add bootstrap scripts
- ext/docker/testing/Makefile: convert from docker to podman
- bootstrap.sh: run tests recursively
- Guide.pm: use correct POD comment syntax
- t/: adapt tests to "invalid input syntax for type integer" error message



( run in 1.632 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )