LP#1879983: Curbside application: open-ils.curbside
authorMike Rylander <mrylander@gmail.com>
Tue, 19 May 2020 19:11:54 +0000 (15:11 -0400)
committerGalen Charlton <gmc@equinoxinitiative.org>
Wed, 10 Jun 2020 17:28:21 +0000 (13:28 -0400)
commitdfe7a84e8dc8be599e6ba584db081b5cad71725d
tree4428545916793bc478178ba0f74ca66af6c3cfd8
parent4819c61fa2956adc83aa7414dfd5e4964bc2f3f7
LP#1879983: Curbside application: open-ils.curbside

This commit adds the Curbside OpenSRF application, open-ils.curbside,
which provides all the business logic and data retrieval APIs. The
open-ils.curbside service must be registered with the public routeri
in order for the feature to function.

The methods in this service are:

* open-ils.curbside.fetch_mine: retrieve the active appointments
  for the current login session; this is meant for OPAC use.
* open-ils.curbside.open_user_appointments_at_lib: retrieve
  appointments for the specified user at a given library.
* open-ils.curbside.patron.ready_holds_at_lib.count: count
  available holds for a patron at a specified library; this is
  needed because there is no other single method that provides
  this.

* open-ils.curbside.fetch_to_be_staged
* open-ils.curbside.fetch_staged
* open-ils.curbside.fetch_arrived
* open-ils.curbside.fetch_delivered

Retrieve appointments in various states. These methods are streaming
and also have .atomic variants.

* open-ils.curbside.fetch_to_be_staged.latest
* open-ils.curbside.fetch_staged.latest
* open-ils.curbside.fetch_arrived.latest
* open-ils.curbside.fetch_delivered.latest

Retrieve a hash of apopintments in various states; used to determine
if the UI should be updated.

* open-ils.curbside.times_for_date

Retrieve available times for curbside appointments at the specified
date.

* open-ils.curbside.update_appointment
* open-ils.curbside.create_appointment
* open-ils.curbside.delete_appointment

CUD.

* open-ils.curbside.mark_staged
* open-ils.curbside.mark_unstaged
* open-ils.curbside.mark_arrived

Update the state of appointments.

* open-ils.curbside.mark_delivered

Update the state of an appointment to mark it delivered AND check
out all of the available holds.

In addition to Mike Rylander, significant contributions to this
patch were made by Galen Charlton.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Open-ILS/examples/opensrf.xml.example
Open-ILS/examples/opensrf_core.xml.example
Open-ILS/src/perlmods/lib/OpenILS/Application/Curbside.pm [new file with mode: 0644]