-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Retrieving a list of valid reservation pickup locations #280
Comments
No, indeed, @andrewdaye. This is definitely a level of complexity that LCF doesn't currently support. In LCF v1.2.0 support was added for defining a location to be a "pickup location", or "collection point" as it is described in code list LOP (location purpose). I am presuming that a manifestation or item could be associated with certain collection points and not others, and a patron would be able to use certain collection points and not others. The simplest solution would be to add a single code value to the code list LAT (location association type), the code having the meaning "possible collection point". When used in a manifestation or item record, the associated location would be a collection point that can be used by any patron for collecting that specific manifestation or item. When used in a patron record, the associated location would be a collection point that can be used by that patron for collecting any manifestation or item. Only locations whose purpose is specified to be "collection point" would be valid locations with this association type. For a patron to be able to collect a specific manifestation or item from a collection point, both the manifestation or item and the patron would have to have an association with that particular collection point. I note that LCF does not currently support the association of a location with a manifestation, only a location with an item. Since a manifestation is any copy, would we wish to be able to associate any copy of a manifestation with a collection point, or would it be sufficient to be able to associate individual items (copies) with a collection point? If we want to add support for associating any copy with a collection point, we would need to add the associated location structure (see E02C06) to E01 Manifestation. |
Agreed at technical panel on the 3/11/2021, to add associated location to manifestation and ensure code list for reservation pick up is usable with manifestation. |
I propose the following change in the LCF Data Framework to E01 Manifestation (adding E01CXX): E01 MANIFESTATION... Properties
|
I propose a corresponding change in the XML binding to E01 Manifestation: E01 MANIFESTATION
|
See pull request #290. |
At the Technical Panel meeting on 11 October 2022, Andrew Daye pointed out that this change would not satisfy the original use case, so the issue has been re-opened. |
Scenario: As a client application that supports creating reservations, I want to show the user a list of pickup locations so that they may choose their preferred pickup location from a list of all valid pickup locations. To display a list of valid pickup locations, it requires a number of LCF calls, that scales with the overall number of locations in the system. Request 1: /lcf/1.0/locations?os:count=2000 (or a suitably high enough number to get all locations). This will return all of the locations in the system, potentially including a large number of non-pickup locations. As an example, we have a customer where this is a list of around 1200 location-refs. Request 2-1201: (each entity id from the previous request) This will return the details of each location, allow us to determine if that location is a valid pickup location. Without making this call for every returned enetity ID in the first call, we dont know if the location is a valid pickup location, so this needs to be called for every location. In the customer example, only around 300 of those locations are valid pickup locations. Two options:
There are other options - e.g. batch the calls to make 50 requests at a time, followed by the next 50, etc. but this will still be subject to latency. A more optimal solution would either be to: (a) return the entity bodies in the initial call (potentially a large amount of data in a single request, but no more than the 1200 individual calls), or |
Looking for advice on the best way to implement retrieving pickup locations when placing a reservation.
Currently, the locations are available via the GET /lcf/1.0/locations call, and there were some additions in #132 to define pickup locations.
There is however a level of complexity that this does not cover - in some cases (especially larger consortia) the list of pickup locations will differ by patron and manifestation that is reserving and being reserved. I can't see how the current structure can encompass this?
Thanks,
Andrew.
The text was updated successfully, but these errors were encountered: