Koha/api/v1/swagger/paths/holds.json
Tomas Cohen Arazi 748b2e91a3 Bug 28463: Add summary to all routes
This patch adds a 'summary' entry to all routes and verbs. This way,
ReDoc will display a human-friendly description of the route, instead of
the operationId.

To test, repeat the testing steps in the previous patch, and notice that
we now have good descriptions.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-05-27 17:17:19 +02:00

924 lines
24 KiB
JSON

{
"/holds": {
"get": {
"x-mojo-to": "Holds#list",
"operationId": "listHolds",
"tags": ["holds"],
"summary": "List holds",
"parameters": [
{
"name": "hold_id",
"in": "query",
"description": "Internal hold identifier",
"type": "integer"
},
{
"name": "patron_id",
"in": "query",
"description": "Internal patron identifier",
"type": "integer"
},
{
"name": "hold_date",
"in": "query",
"description": "Hold",
"type": "string",
"format": "date"
},
{
"name": "biblio_id",
"in": "query",
"description": "Internal biblio identifier",
"type": "integer"
},
{
"name": "pickup_library_id",
"in": "query",
"description": "Internal library identifier for the pickup library",
"type": "string"
},
{
"name": "cancellation_date",
"in": "query",
"description": "The date the hold was cancelled",
"type": "string",
"format": "date"
},
{
"name": "notes",
"in": "query",
"description": "Notes related to this hold",
"type": "string"
},
{
"name": "priority",
"in": "query",
"description": "Where in the queue the patron sits",
"type": "integer"
},
{
"name": "status",
"in": "query",
"description": "Found status",
"type": "string"
},
{
"name": "timestamp",
"in": "query",
"description": "Time of latest update",
"type": "string"
},
{
"name": "item_id",
"in": "query",
"description": "Internal item identifier",
"type": "integer"
},
{
"name": "waiting_date",
"in": "query",
"description": "Date the item was marked as waiting for the patron",
"type": "string"
},
{
"name": "expiration_date",
"in": "query",
"description": "Date the hold expires",
"type": "string"
},
{
"name": "lowest_priority",
"in": "query",
"description": "Lowest priority",
"type": "boolean"
},
{
"name": "suspended",
"in": "query",
"description": "Suspended",
"type": "boolean"
},
{
"name": "suspended_until",
"in": "query",
"description": "Suspended until",
"type": "string"
},
{
"name": "non_priority",
"in": "query",
"description": "Non priority hold",
"type": "boolean"
},
{
"$ref": "../parameters.json#/match"
},
{
"$ref": "../parameters.json#/order_by"
},
{
"$ref": "../parameters.json#/page"
},
{
"$ref": "../parameters.json#/per_page"
},
{
"$ref": "../parameters.json#/q_param"
},
{
"$ref": "../parameters.json#/q_body"
},
{
"$ref": "../parameters.json#/q_header"
}
],
"produces": ["application/json"],
"responses": {
"200": {
"description": "A list of holds",
"schema": {
"$ref": "../definitions.json#/holds"
}
},
"401": {
"description": "Authentication required",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"403": {
"description": "Hold not allowed",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"404": {
"description": "Borrower not found",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"500": {
"description": "Internal server error",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"503": {
"description": "Under maintenance",
"schema": {
"$ref": "../definitions.json#/error"
}
}
},
"x-koha-authorization": {
"permissions": {
"borrowers": "edit_borrowers"
}
}
},
"post": {
"x-mojo-to": "Holds#add",
"operationId": "addHold",
"tags": ["holds"],
"summary": "Place hold",
"parameters": [
{
"name": "body",
"in": "body",
"description": "A JSON object containing informations about the new hold",
"required": true,
"schema": {
"type": "object",
"properties": {
"patron_id": {
"description": "Internal patron identifier",
"type": "integer"
},
"biblio_id": {
"description": "Internal biblio identifier",
"type": [ "integer", "null" ]
},
"hold_date": {
"description": "The date the hold was placed",
"type": [ "string", "null" ],
"format": "date"
},
"item_id": {
"description": "Internal item identifier",
"type": [ "integer", "null" ]
},
"pickup_library_id": {
"description": "Internal library identifier for the pickup library",
"type": "string"
},
"expiration_date": {
"description": "Hold end date",
"type": ["string", "null"],
"format": "date"
},
"notes": {
"description": "Notes related to this hold",
"type": [ "string", "null" ]
},
"item_type": {
"description": "Limit hold on one itemtype (ignored for item-level holds)",
"type": [ "string", "null" ]
},
"non_priority": {
"description": "Set this hold as non priority",
"type": [ "boolean", "null" ]
}
},
"required": [ "patron_id", "pickup_library_id" ],
"additionalProperties": false
}
},
{
"name": "x-koha-override",
"description": "Comma-separated list of overrides (valid values: any)",
"in": "header",
"type": "string",
"required": false
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"responses": {
"201": {
"description": "Created hold",
"schema": {
"$ref": "../definitions.json#/hold"
}
},
"400": {
"description": "Missing or wrong parameters",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"401": {
"description": "Authentication required",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"403": {
"description": "Hold not allowed",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"404": {
"description": "Borrower not found",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"500": {
"description": "Internal server error",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"503": {
"description": "Under maintenance",
"schema": {
"$ref": "../definitions.json#/error"
}
}
},
"x-koha-authorization": {
"permissions": {
"reserveforothers": "1"
}
}
}
},
"/holds/{hold_id}": {
"patch": {
"x-mojo-to": "Holds#edit",
"operationId": "editHold",
"tags": ["holds"],
"summary": "Update hold",
"parameters": [{
"$ref": "../parameters.json#/hold_id_pp"
}, {
"name": "body",
"in": "body",
"description": "A JSON object containing fields to modify",
"required": true,
"schema": {
"type": "object",
"properties": {
"priority": {
"description": "Position in waiting queue",
"type": "integer",
"minimum": 1
},
"pickup_library_id": {
"description": "Internal library identifier for the pickup library",
"type": "string"
},
"suspended_until": {
"description": "Date until which the hold has been suspended",
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
}
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"responses": {
"200": {
"description": "Updated hold",
"schema": {
"$ref": "../definitions.json#/hold"
}
},
"400": {
"description": "Missing or wrong parameters",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"401": {
"description": "Authentication required",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"403": {
"description": "Hold not allowed",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"404": {
"description": "Hold not found",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"500": {
"description": "Internal server error",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"503": {
"description": "Under maintenance",
"schema": {
"$ref": "../definitions.json#/error"
}
}
},
"x-koha-authorization": {
"permissions": {
"reserveforothers": "1"
}
}
},
"put": {
"x-mojo-to": "Holds#edit",
"operationId": "overwriteHold",
"tags": ["holds"],
"summary": "Update hold",
"description": "This route is being deprecated and will be removed in future releases. Please migrate your project to use PATCH /holds/{hold_id} instead.",
"parameters": [{
"$ref": "../parameters.json#/hold_id_pp"
}, {
"name": "body",
"in": "body",
"description": "A JSON object containing fields to modify",
"required": true,
"schema": {
"type": "object",
"properties": {
"priority": {
"description": "Position in waiting queue",
"type": "integer",
"minimum": 1
},
"pickup_library_id": {
"description": "Internal library identifier for the pickup library",
"type": "string"
},
"suspended_until": {
"description": "Date until which the hold has been suspended",
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
}
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"responses": {
"200": {
"description": "Updated hold",
"schema": {
"$ref": "../definitions.json#/hold"
}
},
"400": {
"description": "Missing or wrong parameters",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"401": {
"description": "Authentication required",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"403": {
"description": "Hold not allowed",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"404": {
"description": "Hold not found",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"500": {
"description": "Internal server error",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"503": {
"description": "Under maintenance",
"schema": {
"$ref": "../definitions.json#/error"
}
}
},
"x-koha-authorization": {
"permissions": {
"reserveforothers": "1"
}
}
},
"delete": {
"x-mojo-to": "Holds#delete",
"operationId": "deleteHold",
"tags": ["holds"],
"summary": "Cancel hold",
"parameters": [{
"$ref": "../parameters.json#/hold_id_pp"
}
],
"produces": ["application/json"],
"responses": {
"204": {
"description": "Hold deleted"
},
"401": {
"description": "Authentication required",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"403": {
"description": "Hold not allowed",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"404": {
"description": "Hold not found",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"500": {
"description": "Internal server error",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"503": {
"description": "Under maintenance",
"schema": {
"$ref": "../definitions.json#/error"
}
}
},
"x-koha-authorization": {
"permissions": {
"reserveforothers": "1"
}
}
}
},
"/holds/{hold_id}/priority": {
"put": {
"x-mojo-to": "Holds#update_priority",
"operationId": "updateHoldPriority",
"tags": [
"holds"
],
"summary": "Update priority for the hold",
"parameters": [
{
"$ref": "../parameters.json#/hold_id_pp"
},
{
"name": "body",
"in": "body",
"description": "An integer representing the new priority to be set for the hold",
"required": true,
"schema": {
"type": "integer"
}
}
],
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "The new priority value for the hold",
"schema": {
"type": "integer"
}
},
"401": {
"description": "Authentication required",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"403": {
"description": "Access forbidden",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"404": {
"description": "Biblio not found",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"409": {
"description": "Unable to perform action on biblio",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"503": {
"description": "Under maintenance",
"schema": {
"$ref": "../definitions.json#/error"
}
}
},
"x-koha-authorization": {
"permissions": {
"reserveforothers": "modify_holds_priority"
}
}
}
},
"/holds/{hold_id}/suspension": {
"post": {
"x-mojo-to": "Holds#suspend",
"operationId": "suspendHold",
"tags": ["holds"],
"summary": "Suspend the hold",
"parameters": [{
"$ref": "../parameters.json#/hold_id_pp"
}, {
"name": "body",
"in": "body",
"description": "A JSON object containing fields to modify",
"required": false,
"schema": {
"type": "object",
"properties": {
"end_date": {
"description": "Date the hold suspension expires",
"type": "string",
"format": "date"
}
},
"additionalProperties": false
}
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"responses": {
"201": {
"description": "Hold suspended"
},
"400": {
"description": "Missing or wrong parameters",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"401": {
"description": "Authentication required",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"403": {
"description": "Hold not allowed",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"404": {
"description": "Hold not found",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"500": {
"description": "Internal server error",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"503": {
"description": "Under maintenance",
"schema": {
"$ref": "../definitions.json#/error"
}
}
},
"x-koha-authorization": {
"permissions": {
"reserveforothers": "1"
}
}
},
"delete": {
"x-mojo-to": "Holds#resume",
"operationId": "resumeHold",
"tags": ["holds"],
"summary": "Resume hold",
"parameters": [
{
"$ref": "../parameters.json#/hold_id_pp"
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"responses": {
"204": {
"description": "Hold resumed"
},
"400": {
"description": "Missing or wrong parameters",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"401": {
"description": "Authentication required",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"403": {
"description": "Hold not allowed",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"404": {
"description": "Hold not found",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"500": {
"description": "Internal server error",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"503": {
"description": "Under maintenance",
"schema": {
"$ref": "../definitions.json#/error"
}
}
},
"x-koha-authorization": {
"permissions": {
"reserveforothers": "1"
}
}
}
},
"/holds/{hold_id}/pickup_locations": {
"get": {
"x-mojo-to": "Holds#pickup_locations",
"operationId": "getHoldPickupLocations",
"tags": ["holds"],
"summary": "Get valid pickup locations for hold",
"parameters": [
{
"name": "x-koha-override",
"description": "Comma-separated list of overrides (valid values: any)",
"in": "header",
"type": "string",
"required": false
},
{
"$ref": "../parameters.json#/hold_id_pp"
},
{
"$ref": "../parameters.json#/match"
},
{
"$ref": "../parameters.json#/order_by"
},
{
"$ref": "../parameters.json#/page"
},
{
"$ref": "../parameters.json#/per_page"
},
{
"$ref": "../parameters.json#/q_param"
},
{
"$ref": "../parameters.json#/q_body"
},
{
"$ref": "../parameters.json#/q_header"
}
],
"produces": ["application/json"],
"responses": {
"200": {
"description": "Hold pickup location",
"schema": {
"type": "array",
"items": {
"$ref": "../definitions.json#/library"
}
}
},
"400": {
"description": "Missing or wrong parameters",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"401": {
"description": "Authentication required",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"403": {
"description": "Hold pickup location list not allowed",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"404": {
"description": "Hold not found",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"500": {
"description": "Internal server error",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"503": {
"description": "Under maintenance",
"schema": {
"$ref": "../definitions.json#/error"
}
}
},
"x-koha-authorization": {
"permissions": {
"reserveforothers": "place_holds"
}
}
}
},
"/holds/{hold_id}/pickup_location": {
"put": {
"x-mojo-to": "Holds#update_pickup_location",
"operationId": "updateHoldPickupLocation",
"tags": ["holds"],
"summary": "Update pickup location for the hold",
"description": "Set a new pickup location for the hold",
"parameters": [
{
"$ref": "../parameters.json#/hold_id_pp"
},
{
"name": "body",
"in": "body",
"description": "Pickup location",
"required": true,
"schema": {
"type": "object",
"properties": {
"pickup_library_id": {
"type": "string",
"description": "Internal identifier for the pickup library"
}
},
"additionalProperties": false
}
}
],
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "The new pickup location value for the hold",
"schema": {
"type": "object",
"properties": {
"pickup_library_id": {
"type": "string",
"description": "Internal identifier for the pickup library"
}
},
"additionalProperties": false
}
},
"400": {
"description": "Missing or wrong parameters",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"401": {
"description": "Authentication required",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"403": {
"description": "Access forbidden",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"404": {
"description": "Hold not found",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"409": {
"description": "Unable to perform action on hold",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"500": {
"description": "Internal error",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"503": {
"description": "Under maintenance",
"schema": {
"$ref": "../definitions.json#/error"
}
}
},
"x-koha-authorization": {
"permissions": {
"reserveforothers": "place_holds"
}
}
}
}
}