From 4da979daed30c3f2af82f62efef234644e29c0c2 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Mon, 28 Jan 2019 07:39:27 -0300 Subject: [PATCH] Bug 22206: OpenAPI spec Signed-off-by: Martin Renvoize Signed-off-by: Josef Moravec --- api/v1/swagger/paths.json | 3 + api/v1/swagger/paths/holds.json | 132 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 135 insertions(+) diff --git a/api/v1/swagger/paths.json b/api/v1/swagger/paths.json index 48452eca80..3eab013b76 100644 --- a/api/v1/swagger/paths.json +++ b/api/v1/swagger/paths.json @@ -20,6 +20,9 @@ "/holds/{hold_id}": { "$ref": "paths/holds.json#/~1holds~1{hold_id}" }, + "/holds/{hold_id}/suspension": { + "$ref": "paths/holds.json#/~1holds~1{hold_id}~1suspension" + }, "/libraries": { "$ref": "paths/libraries.json#/~1libraries" }, diff --git a/api/v1/swagger/paths/holds.json b/api/v1/swagger/paths/holds.json index afeaac44d1..2dea98c53b 100644 --- a/api/v1/swagger/paths/holds.json +++ b/api/v1/swagger/paths/holds.json @@ -386,5 +386,137 @@ } } } + }, + "/holds/{hold_id}/suspension": { + "post": { + "x-mojo-to": "Holds#suspend", + "operationId": "suspendHold", + "tags": ["holds"], + "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": { + "expiration_date": { + "description": "Date the hold suspension expires", + "type": "string", + "format": "date" + } + } + } + } + ], + "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"], + "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" + } + } + } } } -- 2.11.0