From 897218148413b76d7bcdb439268dd2ba83212311 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Fri, 7 Apr 2023 14:48:43 +0200 Subject: [PATCH] Bug 30708: REST API specs Sponsored-by: BULAC - http://www.bulac.fr/ Signed-off-by: BULAC - http://www.bulac.fr/ Signed-off-by: Heather Hernandez Signed-off-by: Laurence Rault Signed-off-by: Marcel de Rooy Signed-off-by: Tomas Cohen Arazi --- .../definitions/preservation_processing.yaml | 19 + .../preservation_processing_attribute.yaml | 22 + .../definitions/preservation_train.yaml | 55 ++ .../paths/preservation_processings.yaml | 272 +++++++++ api/v1/swagger/paths/preservation_trains.yaml | 543 ++++++++++++++++++ .../paths/preservation_waiting_list.yaml | 188 ++++++ api/v1/swagger/swagger.yaml | 38 ++ 7 files changed, 1137 insertions(+) create mode 100644 api/v1/swagger/definitions/preservation_processing.yaml create mode 100644 api/v1/swagger/definitions/preservation_processing_attribute.yaml create mode 100644 api/v1/swagger/definitions/preservation_train.yaml create mode 100644 api/v1/swagger/paths/preservation_processings.yaml create mode 100644 api/v1/swagger/paths/preservation_trains.yaml create mode 100644 api/v1/swagger/paths/preservation_waiting_list.yaml diff --git a/api/v1/swagger/definitions/preservation_processing.yaml b/api/v1/swagger/definitions/preservation_processing.yaml new file mode 100644 index 0000000000..62ef2d8a9a --- /dev/null +++ b/api/v1/swagger/definitions/preservation_processing.yaml @@ -0,0 +1,19 @@ +--- +type: object +properties: + processing_id: + type: integer + description: internally assigned agreement identifier + readOnly: true + name: + description: name of the processing + type: string + attributes: + description: attributes of the processing + items: + $ref: preservation_processing_attribute.yaml + +additionalProperties: false +required: + - processing_id + - name diff --git a/api/v1/swagger/definitions/preservation_processing_attribute.yaml b/api/v1/swagger/definitions/preservation_processing_attribute.yaml new file mode 100644 index 0000000000..dc3e8a316e --- /dev/null +++ b/api/v1/swagger/definitions/preservation_processing_attribute.yaml @@ -0,0 +1,22 @@ +--- +type: object +properties: + processing_attribute_id: + type: integer + description: Internal processing attribute identifier + processing_id: + type: integer + description: Internal processing identifier + name: + type: string + type: + type: + - string + option_source: + type: + - string + - "null" +additionalProperties: false +required: + - name + - type diff --git a/api/v1/swagger/definitions/preservation_train.yaml b/api/v1/swagger/definitions/preservation_train.yaml new file mode 100644 index 0000000000..9502a710a3 --- /dev/null +++ b/api/v1/swagger/definitions/preservation_train.yaml @@ -0,0 +1,55 @@ +--- +type: object +properties: + train_id: + type: integer + description: internally assigned agreement identifier + readOnly: true + name: + description: name of the train + type: string + description: + description: description of the train + type: + - string + - "null" + default_processing_id: + description: foreign key to preservation_processings + type: + - integer + - "null" + not_for_loan: + description: NOT_LOAN authorised value to apply to item added to this train + type: + - string + - "null" + created_on: + description: creation date + type: + - string + - "null" + closed_on: + description: closing date + type: + - string + - "null" + sent_on: + description: sending date + type: + - string + - "null" + received_on: + description: receiving date + type: + - string + - "null" + default_processing: + description: the default processing + type: + - object + - "null" + +additionalProperties: false +required: + - train_id + - name diff --git a/api/v1/swagger/paths/preservation_processings.yaml b/api/v1/swagger/paths/preservation_processings.yaml new file mode 100644 index 0000000000..119b3983e8 --- /dev/null +++ b/api/v1/swagger/paths/preservation_processings.yaml @@ -0,0 +1,272 @@ +--- +/preservation/processings: + get: + x-mojo-to: Preservation::Processings#list + operationId: listPreservationProcessings + tags: + - preservation_processing + summary: List processings + produces: + - application/json + parameters: + - description: Case insensitive search on processing id + in: query + name: processing_id + required: false + type: integer + - description: Case insensitive search on processing name + in: query + name: name + required: false + type: string + - $ref: "../swagger.yaml#/parameters/match" + - $ref: "../swagger.yaml#/parameters/order_by" + - $ref: "../swagger.yaml#/parameters/page" + - $ref: "../swagger.yaml#/parameters/per_page" + - $ref: "../swagger.yaml#/parameters/q_param" + - $ref: "../swagger.yaml#/parameters/q_body" + - $ref: "../swagger.yaml#/parameters/q_header" + responses: + 200: + description: A list of processings + schema: + items: + $ref: "../swagger.yaml#/definitions/preservation_processing" + type: array + 400: + description: Bad request + schema: + $ref: "../swagger.yaml#/definitions/error" + 403: + description: Access forbidden + schema: + $ref: "../swagger.yaml#/definitions/error" + 500: + description: |- + Internal server error. Possible `error_code` attribute values: + * `internal_server_error` + schema: + $ref: "../swagger.yaml#/definitions/error" + 503: + description: Under maintenance + schema: + $ref: "../swagger.yaml#/definitions/error" + x-koha-authorization: + permissions: + preservation: 1 + post: + x-mojo-to: Preservation::Processings#add + operationId: addPreservationProcessings + tags: + - preservation_processing + summary: Add processing + consumes: + - application/json + produces: + - application/json + parameters: + - description: A JSON object containing information about the new processing + in: body + name: body + required: true + schema: + $ref: "../swagger.yaml#/definitions/preservation_processing" + responses: + 201: + description: A successfully created processing + schema: + items: + $ref: "../swagger.yaml#/definitions/preservation_processing" + 400: + description: Bad parameter + schema: + $ref: "../swagger.yaml#/definitions/error" + 401: + description: Authentication required + schema: + $ref: "../swagger.yaml#/definitions/error" + 403: + description: Access forbidden + schema: + $ref: "../swagger.yaml#/definitions/error" + 404: + description: Ressource not found + schema: + $ref: "../swagger.yaml#/definitions/error" + 409: + description: Conflict in creating resource + schema: + $ref: "../swagger.yaml#/definitions/error" + 413: + description: Payload too large + schema: + $ref: "../swagger.yaml#/definitions/error" + 500: + description: |- + Internal server error. Possible `error_code` attribute values: + * `internal_server_error` + schema: + $ref: "../swagger.yaml#/definitions/error" + 503: + description: Under maintenance + schema: + $ref: "../swagger.yaml#/definitions/error" + x-koha-authorization: + permissions: + preservation: 1 +"/preservation/processings/{processing_id}": + get: + x-mojo-to: Preservation::Processings#get + operationId: getPreservationProcessings + tags: + - preservation_processing + summary: Get processing + produces: + - application/json + parameters: + - $ref: "../swagger.yaml#/parameters/preservation_processing_id_pp" + - name: x-koha-embed + in: header + required: false + description: Embed list sent as a request header + type: array + items: + type: string + enum: + - attributes + collectionFormat: csv + responses: + 200: + description: A processing + schema: + items: + $ref: "../swagger.yaml#/definitions/preservation_processing" + 401: + description: Authentication required + schema: + $ref: "../swagger.yaml#/definitions/error" + 403: + description: Access forbidden + schema: + $ref: "../swagger.yaml#/definitions/error" + 404: + description: Ressource not found + schema: + $ref: "../swagger.yaml#/definitions/error" + 500: + description: |- + Internal server error. Possible `error_code` attribute values: + * `internal_server_error` + schema: + $ref: "../swagger.yaml#/definitions/error" + 503: + description: Under maintenance + schema: + $ref: "../swagger.yaml#/definitions/error" + x-koha-authorization: + permissions: + preservation: 1 + put: + x-mojo-to: Preservation::Processings#update + operationId: updatePreservationProcessings + tags: + - preservation_processing + summary: Update processing + consumes: + - application/json + produces: + - application/json + parameters: + - $ref: "../swagger.yaml#/parameters/preservation_processing_id_pp" + - name: body + in: body + description: A JSON object containing new information about existing processing + required: true + schema: + $ref: "../swagger.yaml#/definitions/preservation_processing" + + responses: + 200: + description: A successfully updated processing + schema: + items: + $ref: "../swagger.yaml#/definitions/preservation_processing" + 400: + description: Bad parameter + schema: + $ref: "../swagger.yaml#/definitions/error" + 403: + description: Access forbidden + schema: + $ref: "../swagger.yaml#/definitions/error" + 404: + description: Ressource not found + schema: + $ref: "../swagger.yaml#/definitions/error" + 409: + description: Conflict in updating resource + schema: + $ref: "../swagger.yaml#/definitions/error" + 413: + description: Payload too large + schema: + $ref: "../swagger.yaml#/definitions/error" + 500: + description: |- + Internal server error. Possible `error_code` attribute values: + * `internal_server_error` + schema: + $ref: "../swagger.yaml#/definitions/error" + 503: + description: Under maintenance + schema: + $ref: "../swagger.yaml#/definitions/error" + x-koha-authorization: + permissions: + preservation: 1 + delete: + x-mojo-to: Preservation::Processings#delete + operationId: deletePreservationProcessings + tags: + - preservation_processing + summary: Delete processing + produces: + - application/json + parameters: + - $ref: "../swagger.yaml#/parameters/preservation_processing_id_pp" + responses: + 204: + description: processing deleted + 400: + description: processing deletion failed + schema: + $ref: "../swagger.yaml#/definitions/error" + 401: + description: Authentication required + schema: + $ref: "../swagger.yaml#/definitions/error" + 403: + description: Access forbidden + schema: + $ref: "../swagger.yaml#/definitions/error" + 404: + description: Ressource not found + schema: + $ref: "../swagger.yaml#/definitions/error" + 409: + description: Conflict in deleting resource + schema: + $ref: "../swagger.yaml#/definitions/error" + 500: + description: |- + Internal server error. Possible `error_code` attribute values: + * `internal_server_error` + schema: + $ref: "../swagger.yaml#/definitions/error" + 503: + description: Under maintenance + schema: + $ref: "../swagger.yaml#/definitions/error" + x-koha-authorization: + permissions: + preservation: 1 diff --git a/api/v1/swagger/paths/preservation_trains.yaml b/api/v1/swagger/paths/preservation_trains.yaml new file mode 100644 index 0000000000..6890adf8d3 --- /dev/null +++ b/api/v1/swagger/paths/preservation_trains.yaml @@ -0,0 +1,543 @@ +--- +/preservation/trains: + get: + x-mojo-to: Preservation::Trains#list + operationId: listPreservationTrains + tags: + - preservation_train + summary: List trains + produces: + - application/json + parameters: + - description: Case insensitive search on train id + in: query + name: train_id + required: false + type: integer + - description: Case insensitive search on train name + in: query + name: name + required: false + type: string + - description: Case insensitive search on train description + in: query + name: description + required: false + type: string + - description: Case insensitive search on not for loan value + in: query + name: not_for_loan + required: false + type: string + - description: Case insensitive search on train creation date + in: query + name: created_on + required: false + type: string + - description: Case insensitive search on train closing date + in: query + name: closed_on + required: false + type: string + - description: Case insensitive search on train sent date + in: query + name: sent_on + required: false + type: string + - description: Case insensitive search on train receiving date + in: query + name: received_on + required: false + type: string + - $ref: "../swagger.yaml#/parameters/match" + - $ref: "../swagger.yaml#/parameters/order_by" + - $ref: "../swagger.yaml#/parameters/page" + - $ref: "../swagger.yaml#/parameters/per_page" + - $ref: "../swagger.yaml#/parameters/q_param" + - $ref: "../swagger.yaml#/parameters/q_body" + - $ref: "../swagger.yaml#/parameters/q_header" + responses: + 200: + description: A list of trains + schema: + items: + $ref: "../swagger.yaml#/definitions/preservation_train" + type: array + 400: + description: Bad request + schema: + $ref: "../swagger.yaml#/definitions/error" + 403: + description: Access forbidden + schema: + $ref: "../swagger.yaml#/definitions/error" + 500: + description: |- + Internal server error. Possible `error_code` attribute values: + * `internal_server_error` + schema: + $ref: "../swagger.yaml#/definitions/error" + 503: + description: Under maintenance + schema: + $ref: "../swagger.yaml#/definitions/error" + x-koha-authorization: + permissions: + preservation: 1 + post: + x-mojo-to: Preservation::Trains#add + operationId: addPreservationTrains + tags: + - preservation_train + summary: Add train + consumes: + - application/json + produces: + - application/json + parameters: + - description: A JSON object containing information about the new train + in: body + name: body + required: true + schema: + $ref: "../swagger.yaml#/definitions/preservation_train" + responses: + 201: + description: A successfully created train + schema: + items: + $ref: "../swagger.yaml#/definitions/preservation_train" + 400: + description: Bad parameter + schema: + $ref: "../swagger.yaml#/definitions/error" + 401: + description: Authentication required + schema: + $ref: "../swagger.yaml#/definitions/error" + 403: + description: Access forbidden + schema: + $ref: "../swagger.yaml#/definitions/error" + 404: + description: Ressource not found + schema: + $ref: "../swagger.yaml#/definitions/error" + 409: + description: Conflict in creating resource + schema: + $ref: "../swagger.yaml#/definitions/error" + 413: + description: Payload too large + schema: + $ref: "../swagger.yaml#/definitions/error" + 500: + description: |- + Internal server error. Possible `error_code` attribute values: + * `internal_server_error` + schema: + $ref: "../swagger.yaml#/definitions/error" + 503: + description: Under maintenance + schema: + $ref: "../swagger.yaml#/definitions/error" + x-koha-authorization: + permissions: + preservation: 1 +"/preservation/trains/{train_id}": + get: + x-mojo-to: Preservation::Trains#get + operationId: getPreservationTrains + tags: + - preservation_train + summary: Get train + produces: + - application/json + parameters: + - $ref: "../swagger.yaml#/parameters/preservation_train_id_pp" + - name: x-koha-embed + in: header + required: false + description: Embed list sent as a request header + type: array + items: + type: string + enum: + - items + - items.attributes + - items.attributes.processing_attribute + - default_processing + - default_processing.attributes + collectionFormat: csv + responses: + 200: + description: A train + schema: + items: + $ref: "../swagger.yaml#/definitions/preservation_train" + 401: + description: Authentication required + schema: + $ref: "../swagger.yaml#/definitions/error" + 403: + description: Access forbidden + schema: + $ref: "../swagger.yaml#/definitions/error" + 404: + description: Ressource not found + schema: + $ref: "../swagger.yaml#/definitions/error" + 500: + description: |- + Internal server error. Possible `error_code` attribute values: + * `internal_server_error` + schema: + $ref: "../swagger.yaml#/definitions/error" + 503: + description: Under maintenance + schema: + $ref: "../swagger.yaml#/definitions/error" + x-koha-authorization: + permissions: + preservation: 1 + put: + x-mojo-to: Preservation::Trains#update + operationId: updatePreservationTrains + tags: + - preservation_train + summary: Update train + consumes: + - application/json + produces: + - application/json + parameters: + - $ref: "../swagger.yaml#/parameters/preservation_train_id_pp" + - name: body + in: body + description: A JSON object containing new information about existing train + required: true + schema: + $ref: "../swagger.yaml#/definitions/preservation_train" + responses: + 200: + description: A successfully updated train + schema: + items: + $ref: "../swagger.yaml#/definitions/preservation_train" + 400: + description: Bad parameter + schema: + $ref: "../swagger.yaml#/definitions/error" + 403: + description: Access forbidden + schema: + $ref: "../swagger.yaml#/definitions/error" + 404: + description: Ressource not found + schema: + $ref: "../swagger.yaml#/definitions/error" + 409: + description: Conflict in updating resource + schema: + $ref: "../swagger.yaml#/definitions/error" + 413: + description: Payload too large + schema: + $ref: "../swagger.yaml#/definitions/error" + 500: + description: |- + Internal server error. Possible `error_code` attribute values: + * `internal_server_error` + schema: + $ref: "../swagger.yaml#/definitions/error" + 503: + description: Under maintenance + schema: + $ref: "../swagger.yaml#/definitions/error" + x-koha-authorization: + permissions: + preservation: 1 + delete: + x-mojo-to: Preservation::Trains#delete + operationId: deletePreservationTrains + tags: + - preservation_train + summary: Delete train + produces: + - application/json + parameters: + - $ref: "../swagger.yaml#/parameters/preservation_train_id_pp" + responses: + 204: + description: Train deleted + 400: + description: Train deletion failed + schema: + $ref: "../swagger.yaml#/definitions/error" + 401: + description: Authentication required + schema: + $ref: "../swagger.yaml#/definitions/error" + 403: + description: Access forbidden + schema: + $ref: "../swagger.yaml#/definitions/error" + 404: + description: Ressource not found + schema: + $ref: "../swagger.yaml#/definitions/error" + 409: + description: Conflict in deleting resource + schema: + $ref: "../swagger.yaml#/definitions/error" + 500: + description: |- + Internal server error. Possible `error_code` attribute values: + * `internal_server_error` + schema: + $ref: "../swagger.yaml#/definitions/error" + 503: + description: Under maintenance + schema: + $ref: "../swagger.yaml#/definitions/error" + x-koha-authorization: + permissions: + preservation: 1 +"/preservation/trains/{train_id}/items": + post: + x-mojo-to: Preservation::Trains#add_item + operationId: addItemToTrain + tags: + - preservation_train + summary: Add item to train + consumes: + - application/json + produces: + - application/json + parameters: + - $ref: "../swagger.yaml#/parameters/preservation_train_id_pp" + - description: An item + in: body + name: body + required: true + schema: + type: object + responses: + 201: + description: A successfully added item + schema: + type: object + 400: + description: Bad parameter + schema: + $ref: "../swagger.yaml#/definitions/error" + 401: + description: Authentication required + schema: + $ref: "../swagger.yaml#/definitions/error" + 403: + description: Access forbidden + schema: + $ref: "../swagger.yaml#/definitions/error" + 404: + description: Ressource not found + schema: + $ref: "../swagger.yaml#/definitions/error" + 409: + description: Conflict in creating resource + schema: + $ref: "../swagger.yaml#/definitions/error" + 413: + description: Payload too large + schema: + $ref: "../swagger.yaml#/definitions/error" + 500: + description: |- + Internal server error. Possible `error_code` attribute values: + * `internal_server_error` + schema: + $ref: "../swagger.yaml#/definitions/error" + 503: + description: Under maintenance + schema: + $ref: "../swagger.yaml#/definitions/error" + x-koha-authorization: + permissions: + preservation: 1 + description: |- + Internal server error. Possible `error_code` attribute values: + * `internal_server_error` + schema: + $ref: "../swagger.yaml#/definitions/error" + 503: + description: Under maintenance + schema: + $ref: "../swagger.yaml#/definitions/error" + x-koha-authorization: + permissions: + preservation: 1 +"/preservation/trains/{train_id}/items/{train_item_id}": + put: + x-mojo-to: Preservation::Trains#update_item + operationId: updateItemFromTrain + tags: + - preservation_train + summary: Update item from train + consumes: + - application/json + produces: + - application/json + parameters: + - $ref: "../swagger.yaml#/parameters/preservation_train_id_pp" + - $ref: "../swagger.yaml#/parameters/preservation_train_item_id_pp" + - description: An item + in: body + name: body + required: true + schema: + type: object + - name: x-koha-embed + in: header + required: false + description: Embed list sent as a request header + type: array + items: + type: string + enum: + - attributes + collectionFormat: csv + responses: + 200: + description: A successfully updated item + schema: + type: object + 400: + description: Bad parameter + schema: + $ref: "../swagger.yaml#/definitions/error" + 403: + description: Access forbidden + schema: + $ref: "../swagger.yaml#/definitions/error" + 404: + description: Ressource not found + schema: + $ref: "../swagger.yaml#/definitions/error" + 409: + description: Conflict in updating resource + schema: + $ref: "../swagger.yaml#/definitions/error" + 413: + description: Payload too large + schema: + $ref: "../swagger.yaml#/definitions/error" + 500: + description: |- + Internal server error. Possible `error_code` attribute values: + * `internal_server_error` + schema: + $ref: "../swagger.yaml#/definitions/error" + 503: + description: Under maintenance + schema: + $ref: "../swagger.yaml#/definitions/error" + x-koha-authorization: + permissions: + preservation: 1 + delete: + x-mojo-to: Preservation::Trains#remove_item + operationId: removeItemFromTrain + tags: + - preservation_train + summary: Remove item from train + parameters: + - $ref: "../swagger.yaml#/parameters/preservation_train_id_pp" + - $ref: "../swagger.yaml#/parameters/preservation_train_item_id_pp" + produces: + - application/json + responses: + "204": + description: Item removed + "400": + description: Item removal failed + schema: + $ref: "../swagger.yaml#/definitions/error" + "401": + description: Authentication required + schema: + $ref: "../swagger.yaml#/definitions/error" + "403": + description: Access forbidden + schema: + $ref: "../swagger.yaml#/definitions/error" + "404": + description: Item not found + schema: + $ref: "../swagger.yaml#/definitions/error" + "500": + description: | + Internal server error. Possible `error_code` attribute values: + + * `internal_server_error` + schema: + $ref: "../swagger.yaml#/definitions/error" + "503": + description: Under maintenance + schema: + $ref: "../swagger.yaml#/definitions/error" + x-koha-authorization: + permissions: + preservation: 1 + get: + x-mojo-to: Preservation::Trains#get_item + operationId: getItemFromPreservationTrains + tags: + - preservation_train + summary: Get item from train + produces: + - application/json + parameters: + - $ref: "../swagger.yaml#/parameters/preservation_train_id_pp" + - $ref: "../swagger.yaml#/parameters/preservation_train_item_id_pp" + - name: x-koha-embed + in: header + required: false + description: Embed list sent as a request header + type: array + items: + type: string + enum: + - attributes + - catalogue_item + - catalogue_item.biblio + collectionFormat: csv + responses: + 200: + description: An item in train + schema: + type: object + 401: + description: Authentication required + schema: + $ref: "../swagger.yaml#/definitions/error" + 403: + description: Access forbidden + schema: + $ref: "../swagger.yaml#/definitions/error" + 404: + description: Ressource not found + schema: + $ref: "../swagger.yaml#/definitions/error" + 500: + description: |- + Internal server error. Possible `error_code` attribute values: + * `internal_server_error` + schema: + $ref: "../swagger.yaml#/definitions/error" + 503: + description: Under maintenance + schema: + $ref: "../swagger.yaml#/definitions/error" + x-koha-authorization: + permissions: + preservation: 1 diff --git a/api/v1/swagger/paths/preservation_waiting_list.yaml b/api/v1/swagger/paths/preservation_waiting_list.yaml new file mode 100644 index 0000000000..22913cfa53 --- /dev/null +++ b/api/v1/swagger/paths/preservation_waiting_list.yaml @@ -0,0 +1,188 @@ +--- +/preservation/waiting-list/items: + get: + x-mojo-to: Preservation::WaitingList#list + operationId: listItemsFromWaitingList + tags: + - waiting_list + summary: List items from waiting list + parameters: + - name: external_id + in: query + description: Search on the item's barcode + required: false + type: string + - name: x-koha-embed + in: header + required: false + description: Embed list sent as a request header + type: array + items: + type: string + enum: + - biblio + collectionFormat: csv + - $ref: "../swagger.yaml#/parameters/match" + - $ref: "../swagger.yaml#/parameters/order_by" + - $ref: "../swagger.yaml#/parameters/page" + - $ref: "../swagger.yaml#/parameters/per_page" + - $ref: "../swagger.yaml#/parameters/q_param" + - $ref: "../swagger.yaml#/parameters/q_body" + - $ref: "../swagger.yaml#/parameters/q_header" + - $ref: "../swagger.yaml#/parameters/request_id_header" + consumes: + - application/json + produces: + - application/json + responses: + "200": + description: A list of item + schema: + type: array + items: + $ref: "../swagger.yaml#/definitions/item" + "400": + description: Bad parameter + schema: + $ref: "../swagger.yaml#/definitions/error" + "401": + description: Authentication required + schema: + $ref: "../swagger.yaml#/definitions/error" + "403": + description: Access forbidden + schema: + $ref: "../swagger.yaml#/definitions/error" + "500": + description: | + Internal server error. Possible `error_code` attribute values: + + * `internal_server_error` + schema: + $ref: "../swagger.yaml#/definitions/error" + "503": + description: Under maintenance + schema: + $ref: "../swagger.yaml#/definitions/error" + x-koha-authorization: + permissions: + preservation: 1 + post: + x-mojo-to: Preservation::WaitingList#add_items + operationId: addItemsToWaitingList + tags: + - waiting_list + summary: Add items to waiting list + consumes: + - application/json + produces: + - application/json + parameters: + - description: A list of itemnumbers or barcodes + in: body + name: body + required: true + schema: + type: array + items: + type: object + responses: + 201: + description: A successfully added list of items + schema: + type: array + items: + type: object + 400: + description: Bad parameter + schema: + $ref: "../swagger.yaml#/definitions/error" + 401: + description: Authentication required + schema: + $ref: "../swagger.yaml#/definitions/error" + 403: + description: Access forbidden + schema: + $ref: "../swagger.yaml#/definitions/error" + 404: + description: Ressource not found + schema: + $ref: "../swagger.yaml#/definitions/error" + 409: + description: Conflict in creating resource + schema: + $ref: "../swagger.yaml#/definitions/error" + 413: + description: Payload too large + schema: + $ref: "../swagger.yaml#/definitions/error" + 500: + description: |- + Internal server error. Possible `error_code` attribute values: + * `internal_server_error` + schema: + $ref: "../swagger.yaml#/definitions/error" + 503: + description: Under maintenance + schema: + $ref: "../swagger.yaml#/definitions/error" + x-koha-authorization: + permissions: + preservation: 1 + description: |- + Internal server error. Possible `error_code` attribute values: + * `internal_server_error` + schema: + $ref: "../swagger.yaml#/definitions/error" + 503: + description: Under maintenance + schema: + $ref: "../swagger.yaml#/definitions/error" + x-koha-authorization: + permissions: + preservation: 1 +/preservation/waiting-list/items/{item_id}: + delete: + x-mojo-to: Preservation::WaitingList#remove_item + operationId: removeItemFromWaitingList + tags: + - waiting_list + summary: Remove item from waiting list + parameters: + - $ref: "../swagger.yaml#/parameters/item_id_pp" + produces: + - application/json + responses: + "204": + description: Item removed + "400": + description: Item removal failed + schema: + $ref: "../swagger.yaml#/definitions/error" + "401": + description: Authentication required + schema: + $ref: "../swagger.yaml#/definitions/error" + "403": + description: Access forbidden + schema: + $ref: "../swagger.yaml#/definitions/error" + "404": + description: Item not found + schema: + $ref: "../swagger.yaml#/definitions/error" + "500": + description: | + Internal server error. Possible `error_code` attribute values: + + * `internal_server_error` + schema: + $ref: "../swagger.yaml#/definitions/error" + "503": + description: Under maintenance + schema: + $ref: "../swagger.yaml#/definitions/error" + x-koha-authorization: + permissions: + preservation: 1 diff --git a/api/v1/swagger/swagger.yaml b/api/v1/swagger/swagger.yaml index 985e20d9d8..580938a814 100644 --- a/api/v1/swagger/swagger.yaml +++ b/api/v1/swagger/swagger.yaml @@ -98,6 +98,10 @@ definitions: $ref: ./definitions/patron_balance.yaml patron_extended_attribute: $ref: ./definitions/patron_extended_attribute.yaml + preservation_train: + $ref: ./definitions/preservation_train.yaml + preservation_processing: + $ref: ./definitions/preservation_processing.yaml quote: $ref: ./definitions/quote.yaml renewal: @@ -333,6 +337,22 @@ paths: $ref: "./paths/patrons_password.yaml#/~1patrons~1{patron_id}~1password" "/patrons/{patron_id}/password/expiration_date": $ref: "./paths/patrons_password.yaml#/~1patrons~1{patron_id}~1password~1expiration_date" + /preservation/trains: + $ref: ./paths/preservation_trains.yaml#/~1preservation~1trains + "/preservation/trains/{train_id}": + $ref: "./paths/preservation_trains.yaml#/~1preservation~1trains~1{train_id}" + "/preservation/trains/{train_id}/items": + $ref: "./paths/preservation_trains.yaml#/~1preservation~1trains~1{train_id}~1items" + "/preservation/trains/{train_id}/items/{train_item_id}": + $ref: "./paths/preservation_trains.yaml#/~1preservation~1trains~1{train_id}~1items~1{train_item_id}" + /preservation/processings: + $ref: ./paths/preservation_processings.yaml#/~1preservation~1processings + "/preservation/processings/{processing_id}": + $ref: "./paths/preservation_processings.yaml#/~1preservation~1processings~1{processing_id}" + /preservation/waiting-list/items: + $ref: ./paths/preservation_waiting_list.yaml#/~1preservation~1waiting-list~1items + "/preservation/waiting-list/items/{item_id}": + $ref: "./paths/preservation_waiting_list.yaml#/~1preservation~1waiting-list~1items~1{item_id}" "/public/biblios/{biblio_id}": $ref: "./paths/biblios.yaml#/~1public~1biblios~1{biblio_id}" "/public/checkouts/availability": @@ -639,6 +659,24 @@ parameters: name: _per_page required: false type: integer + preservation_processing_id_pp: + description: processing internal identifier + in: path + name: processing_id + required: true + type: integer + preservation_train_id_pp: + description: train internal identifier + in: path + name: train_id + required: true + type: integer + preservation_train_item_id_pp: + description: train item internal identifier + in: path + name: train_item_id + required: true + type: integer q_body: description: Query filter sent through request"s body in: body -- 2.39.5