LP#1879983: Curbside application: open-ils.curbside
authorMike Rylander <mrylander@gmail.com>
Tue, 19 May 2020 19:11:54 +0000 (15:11 -0400)
committerMike Rylander <mrylander@gmail.com>
Mon, 22 Jun 2020 19:57:03 +0000 (15:57 -0400)
commitf31219036a047df7ca46e492874c0f1757a0b384
tree8a362ac671347dbf6fd99f71145d2f5181a55f20
parentf51630c4699f356e44010646db013ee585efc803
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.circ.curbside.claim_staging
* open-ils.circ.curbside.unclaim_staging

Allow a staff member to claim responsibility for staging items
for an appointment or to release a claim.

* 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.

Sponsored-by: PaILS
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]