Comment 3 for bug 1879983

Revision history for this message
Mike Rylander (mrylander) wrote :

Hi Ken,

We're glad you're interested in trying to get this into the app! I didn't mention any specific opensrf methods in the email because, well, the API will likely continue to change as we work outward toward the UI, but we do have a public branch where we're working in the open.

https://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/collab/gmcharlt/curbside-wip

There are already methods to cover pretty much everything you'll need for the patron side, including the ability to ask for a list of available times on a given date and to create an appointment for yourself. We're building the API in a new opensrf app (open-ils.curbside) to keep things entirely separate.

Part of the process is to configure an A/T event definition that uses the hold.available hook to create an empty placeholder appointment for the patron (with no date selected) when an item hits a hold shelf of a library that has curbside enabled and for which there is not already such a placeholder. I just added the "fetch my appointments" method which returns the appointment slots for the authenticated user that have not yet been delivered. You could just call that, check for objects that do not have the "slot" timestamp field set, and offer to walk them through requesting an appointment.

The basic workflow for that would be something like:

 * for each placeholder appointment
   - ask the patron for the date they want to pick up their items (today is fine)
   - call the open-ils.curbside.times_for_date API with that date and the org from the placeholder
   - for times that have an available > 0, let the patron choose
   - call the open-ils.curbside.create_appointment with the (separate) date and time selected
   - if necessary, there is an update API and a notes field we intend for patron use, for vehicle description or other library-specific needs, that can be called after creation if that data isn't available at create time.
   - profit!

 * when the patron arrives let them push a button in my-opac (or click a link from an earlier email) that marks them as arrived on the appointment at the relevant library.

We'll be putting our patron UI into a page that knows about the holds (and thus each pickup lib) that are ready, sot that's a natural grouping mechanism. It may be separate from the main my-account holds page, but that's undecided yet (and really just a minor detail).

For the staff side, the UI is underway now. I'm not sure if the app needs that, since our intent is to make sure this is usable for staff on portable devices. But let a thousand flowers bloom!

Thanks!