foliolib.folio.api.circulationStorage.RequestStorage
- class foliolib.folio.api.circulationStorage.RequestStorage(tenant: str, okapi: Optional[foliolib.okapi.okapiClient.OkapiClient] = None)
Bases:
foliolib.folio.FolioApiRequest Storage API
Storage for requests
- Parameters
tenant (str) – Tenant id
okapi (OkapiClient, optional) – Instance of OkapiClient. Defaults to None.
Methods
delete_request(requestId)Delete request item with given {requestId}
DELETE /request-storage/requestsget_request(requestId)Retrieve request item with given {requestId}
get_requests(**kwargs)Retrieve a list of request items.
modify_request(requestId, request)Update request item with given {requestId}
set_request(request)Create a new request item.
- delete_request(requestId: str)
Delete request item with given {requestId}
DELETE /request-storage/requests/{requestId}- Parameters
requestId (str) –
- Raises
OkapiRequestNotFound – Not Found
OkapiRequestError – Bad Request
OkapiFatalError – Server Error
OkapiFatalError – Server Error
- delete_requests()
DELETE /request-storage/requests
- get_request(requestId: str)
Retrieve request item with given {requestId}
GET /request-storage/requests/{requestId}- Parameters
requestId (str) –
- Returns
See Schema below
- Return type
dict
- Raises
OkapiRequestNotFound – Not Found
OkapiFatalError – Server Error
OkapiFatalError – Server Error
Schema
{ "$schema": "http://json-schema.org/draft-04/schema#", "description": "A request by a patron for a specific item", "type": "object", "properties": { "id": { "description": "UUID of the request", "type": "string", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" }, "requestLevel": { "description": "Level of the request - Item or Title", "type": "string", "enum": [ "Item", "Title" ] }, "requestType": { "description": "Whether the item should be held upon return, recalled or paged for", "type": "string", "enum": [ "Hold", "Recall", "Page" ] }, "requestDate": { "description": "Date the request was made", "type": "string", "format": "date-time" }, "patronComments": { "description": "Comments made by the patron", "type": "string" }, "requesterId": { "description": "ID of the requesting patron (user)", "type": "string", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" }, "proxyUserId": { "description": "ID of the user representing a proxy for the patron", "type": "string", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" }, "instanceId": { "description": "ID of the instance being requested", "type": "string", "$ref": "raml-util/schemas/uuid.schema" }, "holdingsRecordId": { "description": "ID of the holdings record being requested", "type": "string", "$ref": "raml-util/schemas/uuid.schema" }, "itemId": { "description": "ID of the item being requested", "type": "string", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" }, "status": { "description": "Status of the request", "type": "string", "enum": [ "Open - Not yet filled", "Open - Awaiting pickup", "Open - In transit", "Open - Awaiting delivery", "Closed - Filled", "Closed - Cancelled", "Closed - Unfilled", "Closed - Pickup expired" ] }, "cancellationReasonId": { "description": "The id of the relevant request reason", "type": "string" }, "cancelledByUserId": { "description": "The id of the user that cancelled the request", "type": "string" }, "cancellationAdditionalInformation": { "description": "Potential relevant information regarding a cancellation", "type": "string" }, "cancelledDate": { "description": "Date the request was cancelled", "type": "string", "format": "date-time" }, "position": { "description": "Position of the request in the unified request queue", "type": "integer" }, "instance": { "description": "Copy of some instance metadata (used for searching and sorting)", "type": "object", "properties": { "title": { "description": "title of the item", "type": "string" }, "identifiers": { "type": "array", "description": "An extensible set of name-value pairs of identifiers associated with the resource", "minItems": 0, "items": { "type": "object", "properties": { "value": { "type": "string", "description": "Resource identifier value" }, "identifierTypeId": { "type": "string", "description": "UUID of resource identifier type (e.g. ISBN, ISSN, LCCN, CODEN, Locally defined identifiers)", "$ref": "raml-util/schemas/uuid.schema" } }, "additionalProperties": false, "required": [ "value", "identifierTypeId" ] } } } }, "item": { "description": "Copy of some item metadata (used for searching and sorting)", "type": "object", "properties": { "barcode": { "description": "barcode of the item", "type": "string" } }, "additionalProperties": false }, "requester": { "description": "Copy of some requesting patron metadata (used for searching and sorting)", "type": "object", "properties": { "firstName": { "description": "first name of the requesting patron", "type": "string" }, "lastName": { "description": "last name of the requesting patron", "type": "string" }, "middleName": { "description": "middle name of the requesting patron", "type": "string" }, "barcode": { "description": "barcode of the requesting patron", "type": "string" }, "patronGroup": { "description": "DEPRECATED, to be removed in subsequent major version", "type": "string" } }, "additionalProperties": false }, "proxy": { "description": "Copy of some proxy patron metadata (used for searching and sorting)", "type": "object", "properties": { "firstName": { "description": "first name of the proxy patron", "type": "string" }, "lastName": { "description": "last name of the proxy patron", "type": "string" }, "middleName": { "description": "middle name of the proxy patron", "type": "string" }, "barcode": { "description": "barcode of the proxy patron", "type": "string" }, "patronGroup": { "description": "DEPRECATED, to be removed in subsequent major version", "type": "string" } }, "additionalProperties": false }, "fulfillmentPreference": { "description": "How should the request be fulfilled (whether the item should be kept on the hold shelf for collection or delivered to the requester)", "type": "string", "enum": [ "Hold Shelf", "Delivery" ] }, "deliveryAddressTypeId": { "description": "Deliver to the address of this type, for the requesting patron", "type": "string", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" }, "requestExpirationDate": { "description": "Date when the request expires", "type": "string", "format": "date-time" }, "holdShelfExpirationDate": { "description": "Date when an item returned to the hold shelf expires", "type": "string", "format": "date-time" }, "pickupServicePointId": { "description": "The ID of the Service Point where this request can be picked up", "type": "string", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" }, "metadata": { "description": "Metadata about creation and changes to requests, provided by the server (client should not provide)", "type": "object", "$ref": "raml-util/schemas/metadata.schema" }, "tags": { "type": "object", "description": "Tags", "$ref": "raml-util/schemas/tags.schema" }, "awaitingPickupRequestClosedDate": { "description": "A date when the request with awaiting pickup status was closed", "type": "string", "format": "date-time", "readonly": true }, "searchIndex": { "description": "Request fields used for search", "type": "object", "$ref": "request-search-index.json" } }, "additionalProperties": false, "required": [ "instanceId", "requesterId", "requestType", "requestLevel", "requestDate", "fulfillmentPreference", "status" ] }
- get_requests(**kwargs)
Retrieve a list of request items.
GET /request-storage/requests- Parameters
**kwargs (properties) – Keyword Arguments
- Keyword Arguments
offset (int) –
(default=0) Skip over a number of elements by specifying an offset value for the query
Example
0
limit (int) –
(default=10) Limit the number of elements returned in the response
Example
10
query (str) –
A query expressed as a CQL string (see [dev.folio.org/reference/glossary#cql](https://dev.folio.org/reference/glossary#cql)) using valid searchable fields. The first example below shows the general form of a full CQL query, but those fields might not be relevant in this context.
by using CQL
Example
(username==”ab*” or personal.firstName==”ab*” or personal.lastName==”ab*”) and active==”true” sortby personal.lastName personal.firstName barcode
requesterId=”cf23adf0-61ba-4887-bf82-956c4aae2260”
- Returns
See Schema below
- Return type
dict
- Raises
OkapiRequestError – Bad Request
OkapiRequestUnauthorized – Authentication is required
OkapiFatalError – Server Error
OkapiFatalError – Server Error
Schema
{ "$schema": "http://json-schema.org/draft-04/schema#", "description": "Collection of requests", "type": "object", "properties": { "requests": { "description": "List of request items", "id": "requests", "type": "array", "items": { "type": "object", "$ref": "request.json" } }, "totalRecords": { "type": "integer" } }, "required": [ "requests", "totalRecords" ] }
- modify_request(requestId: str, request: dict)
Update request item with given {requestId}
PUT /request-storage/requests/{requestId}- Parameters
requestId (str) –
request (dict) – See Schema below
- Raises
OkapiRequestNotFound – Not Found
OkapiRequestError – Bad Request
OkapiRequestConflict – Conflict
OkapiFatalError – Server Error
OkapiFatalError – Server Error
OkapiRequestUnprocessableEntity – Unprocessable Entity
Schema
{ "$schema": "http://json-schema.org/draft-04/schema#", "description": "A request by a patron for a specific item", "type": "object", "properties": { "id": { "description": "UUID of the request", "type": "string", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" }, "requestLevel": { "description": "Level of the request - Item or Title", "type": "string", "enum": [ "Item", "Title" ] }, "requestType": { "description": "Whether the item should be held upon return, recalled or paged for", "type": "string", "enum": [ "Hold", "Recall", "Page" ] }, "requestDate": { "description": "Date the request was made", "type": "string", "format": "date-time" }, "patronComments": { "description": "Comments made by the patron", "type": "string" }, "requesterId": { "description": "ID of the requesting patron (user)", "type": "string", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" }, "proxyUserId": { "description": "ID of the user representing a proxy for the patron", "type": "string", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" }, "instanceId": { "description": "ID of the instance being requested", "type": "string", "$ref": "raml-util/schemas/uuid.schema" }, "holdingsRecordId": { "description": "ID of the holdings record being requested", "type": "string", "$ref": "raml-util/schemas/uuid.schema" }, "itemId": { "description": "ID of the item being requested", "type": "string", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" }, "status": { "description": "Status of the request", "type": "string", "enum": [ "Open - Not yet filled", "Open - Awaiting pickup", "Open - In transit", "Open - Awaiting delivery", "Closed - Filled", "Closed - Cancelled", "Closed - Unfilled", "Closed - Pickup expired" ] }, "cancellationReasonId": { "description": "The id of the relevant request reason", "type": "string" }, "cancelledByUserId": { "description": "The id of the user that cancelled the request", "type": "string" }, "cancellationAdditionalInformation": { "description": "Potential relevant information regarding a cancellation", "type": "string" }, "cancelledDate": { "description": "Date the request was cancelled", "type": "string", "format": "date-time" }, "position": { "description": "Position of the request in the unified request queue", "type": "integer" }, "instance": { "description": "Copy of some instance metadata (used for searching and sorting)", "type": "object", "properties": { "title": { "description": "title of the item", "type": "string" }, "identifiers": { "type": "array", "description": "An extensible set of name-value pairs of identifiers associated with the resource", "minItems": 0, "items": { "type": "object", "properties": { "value": { "type": "string", "description": "Resource identifier value" }, "identifierTypeId": { "type": "string", "description": "UUID of resource identifier type (e.g. ISBN, ISSN, LCCN, CODEN, Locally defined identifiers)", "$ref": "raml-util/schemas/uuid.schema" } }, "additionalProperties": false, "required": [ "value", "identifierTypeId" ] } } } }, "item": { "description": "Copy of some item metadata (used for searching and sorting)", "type": "object", "properties": { "barcode": { "description": "barcode of the item", "type": "string" } }, "additionalProperties": false }, "requester": { "description": "Copy of some requesting patron metadata (used for searching and sorting)", "type": "object", "properties": { "firstName": { "description": "first name of the requesting patron", "type": "string" }, "lastName": { "description": "last name of the requesting patron", "type": "string" }, "middleName": { "description": "middle name of the requesting patron", "type": "string" }, "barcode": { "description": "barcode of the requesting patron", "type": "string" }, "patronGroup": { "description": "DEPRECATED, to be removed in subsequent major version", "type": "string" } }, "additionalProperties": false }, "proxy": { "description": "Copy of some proxy patron metadata (used for searching and sorting)", "type": "object", "properties": { "firstName": { "description": "first name of the proxy patron", "type": "string" }, "lastName": { "description": "last name of the proxy patron", "type": "string" }, "middleName": { "description": "middle name of the proxy patron", "type": "string" }, "barcode": { "description": "barcode of the proxy patron", "type": "string" }, "patronGroup": { "description": "DEPRECATED, to be removed in subsequent major version", "type": "string" } }, "additionalProperties": false }, "fulfillmentPreference": { "description": "How should the request be fulfilled (whether the item should be kept on the hold shelf for collection or delivered to the requester)", "type": "string", "enum": [ "Hold Shelf", "Delivery" ] }, "deliveryAddressTypeId": { "description": "Deliver to the address of this type, for the requesting patron", "type": "string", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" }, "requestExpirationDate": { "description": "Date when the request expires", "type": "string", "format": "date-time" }, "holdShelfExpirationDate": { "description": "Date when an item returned to the hold shelf expires", "type": "string", "format": "date-time" }, "pickupServicePointId": { "description": "The ID of the Service Point where this request can be picked up", "type": "string", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" }, "metadata": { "description": "Metadata about creation and changes to requests, provided by the server (client should not provide)", "type": "object", "$ref": "raml-util/schemas/metadata.schema" }, "tags": { "type": "object", "description": "Tags", "$ref": "raml-util/schemas/tags.schema" }, "awaitingPickupRequestClosedDate": { "description": "A date when the request with awaiting pickup status was closed", "type": "string", "format": "date-time", "readonly": true }, "searchIndex": { "description": "Request fields used for search", "type": "object", "$ref": "request-search-index.json" } }, "additionalProperties": false, "required": [ "instanceId", "requesterId", "requestType", "requestLevel", "requestDate", "fulfillmentPreference", "status" ] }
- set_request(request: dict)
Create a new request item.
POST /request-storage/requests- Parameters
request (dict) – See Schema below
- Raises
OkapiRequestError – Bad Request
OkapiRequestUnauthorized – Authentication is required
OkapiFatalError – Server Error
OkapiFatalError – Server Error
OkapiRequestUnprocessableEntity – Unprocessable Entity
Headers
Location - URI to the created request item
Schema
{ "$schema": "http://json-schema.org/draft-04/schema#", "description": "A request by a patron for a specific item", "type": "object", "properties": { "id": { "description": "UUID of the request", "type": "string", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" }, "requestLevel": { "description": "Level of the request - Item or Title", "type": "string", "enum": [ "Item", "Title" ] }, "requestType": { "description": "Whether the item should be held upon return, recalled or paged for", "type": "string", "enum": [ "Hold", "Recall", "Page" ] }, "requestDate": { "description": "Date the request was made", "type": "string", "format": "date-time" }, "patronComments": { "description": "Comments made by the patron", "type": "string" }, "requesterId": { "description": "ID of the requesting patron (user)", "type": "string", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" }, "proxyUserId": { "description": "ID of the user representing a proxy for the patron", "type": "string", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" }, "instanceId": { "description": "ID of the instance being requested", "type": "string", "$ref": "raml-util/schemas/uuid.schema" }, "holdingsRecordId": { "description": "ID of the holdings record being requested", "type": "string", "$ref": "raml-util/schemas/uuid.schema" }, "itemId": { "description": "ID of the item being requested", "type": "string", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" }, "status": { "description": "Status of the request", "type": "string", "enum": [ "Open - Not yet filled", "Open - Awaiting pickup", "Open - In transit", "Open - Awaiting delivery", "Closed - Filled", "Closed - Cancelled", "Closed - Unfilled", "Closed - Pickup expired" ] }, "cancellationReasonId": { "description": "The id of the relevant request reason", "type": "string" }, "cancelledByUserId": { "description": "The id of the user that cancelled the request", "type": "string" }, "cancellationAdditionalInformation": { "description": "Potential relevant information regarding a cancellation", "type": "string" }, "cancelledDate": { "description": "Date the request was cancelled", "type": "string", "format": "date-time" }, "position": { "description": "Position of the request in the unified request queue", "type": "integer" }, "instance": { "description": "Copy of some instance metadata (used for searching and sorting)", "type": "object", "properties": { "title": { "description": "title of the item", "type": "string" }, "identifiers": { "type": "array", "description": "An extensible set of name-value pairs of identifiers associated with the resource", "minItems": 0, "items": { "type": "object", "properties": { "value": { "type": "string", "description": "Resource identifier value" }, "identifierTypeId": { "type": "string", "description": "UUID of resource identifier type (e.g. ISBN, ISSN, LCCN, CODEN, Locally defined identifiers)", "$ref": "raml-util/schemas/uuid.schema" } }, "additionalProperties": false, "required": [ "value", "identifierTypeId" ] } } } }, "item": { "description": "Copy of some item metadata (used for searching and sorting)", "type": "object", "properties": { "barcode": { "description": "barcode of the item", "type": "string" } }, "additionalProperties": false }, "requester": { "description": "Copy of some requesting patron metadata (used for searching and sorting)", "type": "object", "properties": { "firstName": { "description": "first name of the requesting patron", "type": "string" }, "lastName": { "description": "last name of the requesting patron", "type": "string" }, "middleName": { "description": "middle name of the requesting patron", "type": "string" }, "barcode": { "description": "barcode of the requesting patron", "type": "string" }, "patronGroup": { "description": "DEPRECATED, to be removed in subsequent major version", "type": "string" } }, "additionalProperties": false }, "proxy": { "description": "Copy of some proxy patron metadata (used for searching and sorting)", "type": "object", "properties": { "firstName": { "description": "first name of the proxy patron", "type": "string" }, "lastName": { "description": "last name of the proxy patron", "type": "string" }, "middleName": { "description": "middle name of the proxy patron", "type": "string" }, "barcode": { "description": "barcode of the proxy patron", "type": "string" }, "patronGroup": { "description": "DEPRECATED, to be removed in subsequent major version", "type": "string" } }, "additionalProperties": false }, "fulfillmentPreference": { "description": "How should the request be fulfilled (whether the item should be kept on the hold shelf for collection or delivered to the requester)", "type": "string", "enum": [ "Hold Shelf", "Delivery" ] }, "deliveryAddressTypeId": { "description": "Deliver to the address of this type, for the requesting patron", "type": "string", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" }, "requestExpirationDate": { "description": "Date when the request expires", "type": "string", "format": "date-time" }, "holdShelfExpirationDate": { "description": "Date when an item returned to the hold shelf expires", "type": "string", "format": "date-time" }, "pickupServicePointId": { "description": "The ID of the Service Point where this request can be picked up", "type": "string", "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" }, "metadata": { "description": "Metadata about creation and changes to requests, provided by the server (client should not provide)", "type": "object", "$ref": "raml-util/schemas/metadata.schema" }, "tags": { "type": "object", "description": "Tags", "$ref": "raml-util/schemas/tags.schema" }, "awaitingPickupRequestClosedDate": { "description": "A date when the request with awaiting pickup status was closed", "type": "string", "format": "date-time", "readonly": true }, "searchIndex": { "description": "Request fields used for search", "type": "object", "$ref": "request-search-index.json" } }, "additionalProperties": false, "required": [ "instanceId", "requesterId", "requestType", "requestLevel", "requestDate", "fulfillmentPreference", "status" ] }