How users request items

Users can use the website to request items to view in the library; we provide a series of APIs to help them do that.

See also How does item requesting work?

This is what the flow looks like:

```mermaid
sequenceDiagram
     participant user
     participant front end
     participant works API
     participant items API
     participant requests API
     participant Sierra
     participant content api

     user->>front end: views a works page<br/> with items

     front end->>works API: get information about<br/>items on a work
     works API-->>front end: OK

     front end->>items API: get up-to-date status of items<br/>using catalogue ID
     items API->>works API: get matching Sierra IDs<br/>for catalogue IDs
     works API-->>items API: OK
     items API->>Sierra: get latest Sierra item data
     Sierra-->>items API: OK

     items API ->> content api: get nextOpeningDates for venue(s) that matches the item's<br/>Sierra location code

     items API->>front end: returns items with up-to-date status<br/> and available dates for pick up (1)
     front end->>front end: render items with<br/>updated information

     user->>front end: clicks "Request item"
     front end->>requests API: request an item using catalogue ID
     requests API->>works API: get matching Sierra IDs<br/>for catalogue IDs
     works API-->>requests API: OK
     requests API->>Sierra: place request in<br/>Sierra
     Sierra-->>requests API: OK
     requests API->>front end: return result of request to user
```

(1) Available dates for pickup

The items API returns a list of dates (AvailableDates) when the item can be viewed.

Once we have the latest Sierra item data:

  • If the item has the Sierra item location code "harop"

This means the item is held at Deepstore (off-site storage).

We request both Deepstore and Wellcome library open days from the content-api (https://api-stage.wellcomecollection.org/content/v0/venues?title=library%2Cdeepstore)

We find the 11th Deepstore working day (lead time is 10 days). The list of AvailableDates is comprised of all Wellcome library opening days after that.

  • If the item has any other Sierra item location code

We request Wellcome library open days from the content-api (https://api-stage.wellcomecollection.org/content/v0/venues?title=library)

If the request is made on a closed day or before 10am on an open day, the list of AvailableDatesstarts from the 2nd on the list returned by the content-api.

If the request is made after 10am on an open day, the list of AvailableDates starts from the 3rd on the list returned by the content-api.

NOTE on the content-api /venues endpoint

The response includes a nextOpeningDates list for each venue requested, which is used by the itemsAPI to generate the list of AvailableDates.

The nextOpeningDates list is created from the venue's regular open days and exceptional closed days stored in the venues index. We start from a list of 50 days starting today, and filter out all regular open days and exceptional closed days.

The list starts today, unless today is a closed/non-working day.

Last updated