Revision history for App-Dochazka-CLI

0.001  2014-08-08 14:09 CEST
- first public release of embryonic CLI script

0.002  2014-08-08 14:17 CEST
- break parser out into a module

0.003  2014-08-08 14:31 CEST
- debugging

0.004  2014-08-08 15:35 CEST
- CLI.pm: add DESCRIPTION section to POD

0.005  2014-08-10 14:45 CEST
- fix bug "init routine not loading App-Dochazka-CLI sharedir"
- expand GET EMPLOYEE command:
  - GET EMPLOYEE still returns current employee
  - GET EMPLOYEE $INTEGER returns employee with EID $INTEGER
  - GET EMPLOYEE $STRING returns employee with nick $STRING
  - GET EMPLOYEE $STRING-CONTAINING-% runs a 'LIKE' search for multiple employees
- add ReadLine/History support using Term::ReadLine::Perl5
- split off 'send_req' routine into new App::Dochazka::CLI::HTTP module
- fix bug "'get employee NON-EXISTENT-NICK' should produce an error message;
  instead, it says 'undef'"

0.006  2014-08-10 18:37 CEST
- Build.PL: add dependency HTTP::Cookies
- bin/dochazka-cli: use App::Dochazka::Model::Employee instead of inheriting from it
- HTTP.pm: construct LWP::UserAgent object with cookie_jar
- config/CLI_Config.pm: make a proper _Config.pm file for the application

0.007  2014-08-10 20:12 CEST
- bin/dochazka-cli: prompt for nick/password if not given in site configuration
- HTTP.pm: add 'init_ua' and 'cookie_jar' functions, use nick/password
  prompted from user if not given in site config
- Parser.pm: add GET COO[KIES]
- Build.PL: update dependencies

0.008  2014-08-10 22:51 CEST
- fix bug "bin/dochazka-cli throws 'Odd number of arguments' error at startup"

0.009  2014-08-10 22:56 CEST
- Parser.pm: add GET SES[SION]

0.010  2014-08-11 16:15 CEST
- goodbye 'Term::ReadLine::Perl5' (depends on 'rlib' which cannot be
  packaged due to licensing issues), hello 'Term::ReadLine::Gnu'

0.011  2014-10-17 23:01 CEST
- Build.PL: add Getopt::Long dependency 
- get user and password from command-line options instead of from site
  configuration

0.012  2014-10-18 10:06 CEST
- process command-line options: 'help', 'user', 'password'
- add dependencies: Getopt::Long, Pod::Usage
- log to $HOME/.dochazka-cli.log by default, user can override in /etc/dochazka-cli
- prompt for password if none specified on command line

0.013  2014-10-19 07:55 CEST
- CLI.pm: document commands and their syntax
- Parser.pm: work on top-level GET commands

0.014  2014-10-19 08:44 CEST
- move command POD to Parser.pm where it belongs
- Parser.pm: add a couple more top-level GET commands

0.015  2014-10-19 13:35 CEST
- HTTP.pm: fix send_req so it is capable of sending requests with methods other
  than GET
- Parser.pm: add PUT and PUT HELP commands

0.016  2014-10-19 13:53 CEST
- HTTP.pm, Parser.pm: cleanup

0.017  2014-10-19 22:33 CEST
- implement more resources

0.018  2014-10-20 08:32 CEST
- Parser.pm: fix brokenness in 'GET WHOAMI' and 'PUT EMPLOYEE'

0.019  2014-10-20 17:23 CEST
- Parser.pm: fix a silly bug

0.020  2014-10-20 22:09 CEST
- Parser.pm: add 'GET CURRENT PRIV' command
- bin/dochazka-cli: fix privilege brokenness; add status text to command output

0.021  2014-10-21 10:44 CEST
- Parser.pm: add 'GET EMPLOYEE COUNT' and get rid of conflicting 'GET
  EMPLOYEE [STRING]'

0.022  2014-10-21 16:26 CEST
- bin/dochazka-cli: show response body on NOTICE status as well as OK
- HTTP.pm: explicitly import GET PUT POST DELETE from HTTP::Request::Common
- Parser.pm: properly implement 'metaparam/:param' and 'not_implemented'
  resources

0.023  2014-10-21 22:24 CEST
- Parser.pm: fix $anything regex variable; support 'forbidden' resource; add
  other missing top-level resources so now all are supported

0.024  2014-10-22 16:42 CEST
- Parser.pm: add POST EMPLOYEE EID command

0.025  2014-10-23 10:55 CEST
- Parser.pm: eliminate "POST METAPARAM"; fix "DELETE METAPARAM" so it will
  actually work if/when implemented in the REST server

0.026  2014-10-23 13:54 CEST
- Parser.pm: make $anything really be anything; add "POST DOCU [RESOURCE]"
  command

0.027  2014-10-24 10:58 CEST
- complete development workflow for employee resources
- Parser.pm: add missing documentation and commands

0.028  2014-10-24 15:27 CEST
- Parser.pm: add privhistory commands

0.029  2014-10-24 22:34 CEST
- bin/dochazka-cli: fix bug "hitting ENTER at CLI prompt causes over a
  screenful of error messages to be displayed"
- Parser.pm: document and implement commands: 
  - PUT PRIVHISTORY EID 
  - PUT PRIVHISTORY NICK
  - DELETE PRIVHISTORY EID 
  - DELETE PRIVHISTORY NICK

0.030  2014-10-25 12:05 CEST
- bin/dochazka-cli: write a proper SYNOPSIS; add an optional 'sitedir'
  command-line option; fix bug "dochazka-cli refuses to start unless
  /etc/dochazka-cli directory exists and contains an empty file named
  CLI_SiteConfig.pm"

0.031  2014-10-25 23:20 CEST
- Parser.pm: decide to move CLI documentation into REST resources; start
  eliminating POD and streamlining the code; change 'privhistory' to 'priv'

0.032  2014-10-26 22:31 CET
- Parser.pm: embark on significant redesign of parse_tokens routine (WIP)

0.033  2014-10-27 09:35 CET
- Parser.pm: continue with wholesale refactor to make the parser more efficient
  and maintainable

0.034  2014-10-27 12:45 CET
- Parser.pm: initial refactor complete; start (manual) testing

0.035  2014-10-27 13:09 CET
- Parser.pm: fix broken 'docu' command

0.036  2014-10-27 14:26 CET
- Parser.pm: tweak comments; fix "priv/current", "priv/eid/:eid/?:ts", and
  "/priv/nick/:nick/?:ts" resource handlers

0.037  2014-10-27 17:49 CET
- Parser.pm: fix 'priv' handlers

0.038  2014-10-28 09:29 CET
- Parser.pm: handle activity resources; add '$method activity all' commands

0.039  2014-10-29 09:31 CET
- Parser.pm: support 'activity/all/disabled' resource

0.040  2014-10-29 10:31 CET
- Parser.pm: support 'activity/aid/:aid'

0.041  2014-10-29 13:50 CET
- Parser.pm: support PUT and DELETE requests for 'activity/aid/:aid'

0.042  2014-10-29 16:40 CET
- Parser.pm: support "/activity/code/:code"

0.043  2014-10-29 22:53 CET
- Parser.pm: support POST on 'activity/aid/:aid' and 'activity/code/:code',
  even if just to verify 405 result

0.044  2014-10-30 18:20 CET
- Parser.pm: support 'activity/aid' and 'activity/code' resources

0.045  2014-10-31 21:20 CET
- Parser.pm: support 'docu/html' resource; fix 'post activity aid' command

0.046  2014-11-03 12:19 CET
- Parser.pm: change '/priv/current/...' and '/priv/history/current/...' to 
  '/priv/self/...' and '/priv/history/self/...', respectively

0.047  2014-11-03 13:06 CET
- Parser.pm: cleanup and add 'activity/help'

0.048  2014-11-03 15:54 CET
- Parser.pm: support "/schedule/eid/:eid/?:ts", "/schedule/help",
  "/schedule/nick/:nick/?:ts", and "/schedule/self/?:ts" resources

0.049  2014-11-04 09:54 CET
- Parser.pm: activate '$method schedule history ...' commands; put some stanzas
  into alphabetical order by resource name

0.050  2014-11-04 11:30 CET
- Parser.pm: support 'schedule/intervals' and 'schedule/intervals/:shid'
  resources

0.051  2014-11-04 17:46 CET
- Parser.pm: 'schedule/intervals' JSON body might start with either { or [

0.052  2014-11-05 10:28 CET
- Parser.pm: support 'schedule/all' and 'schedule/all/disabled' resources

0.053  2014-11-06 16:35 CET
- Parser.pm: support '/schedule/sid/:sid' resource

0.054  2014-11-13 22:22 CET
- Parser.pm: make 'employee/self' and 'employee/self/priv' be synonyms for
  'employee/current' and 'employee/current/priv', respectively

0.055  2014-11-14 10:06 CET
- Parser.pm: handle POST requests on 'employee/{current,self}'

0.056  2014-11-19 09:43 CET
- Parser.pm: let parser recognize '$method interval help' and '$method interval new'

0.057  2014-11-19 11:06 CET
- Parser.pm: handle more interval resources

0.058  2014-11-19 11:27 CET
- Build.PL: admit two important dependencies

0.059  2014-11-19 15:13 CET
- Parser.pm: handle 'interval/self/:tsrange' resource

0.060  2014-11-19 22:55 CET
- Parser.pm: Resources.pm no longer accepts non-hash JSON - adapt 'post docu'
  and 'post docu html' to wrap argument in { "resource" : ... }

0.061  2014-11-20 13:59 CET
- Parser.pm: handle both 'metaparam' and 'metaparam/:param' after split

0.062  2014-11-20 18:14 CET
- Parser.pm: handle lock resources

0.063  2014-12-03 22:24 CET
- Parser.pm: support the new 'dbstatus' top-level resource

0.064  2014-12-10 09:07 CET
- Parser.pm: '/schedule/new' was missing - add it

