@@ -, +, @@ --- api/v1/swagger/definitions.json | 3 + api/v1/swagger/paths.json | 8 +- .../paths/patrons_extended_attributes.json | 318 ++++++++++++++++++ 3 files changed, 328 insertions(+), 1 deletion(-) create mode 100644 api/v1/swagger/paths/patrons_extended_attributes.json --- a/api/v1/swagger/definitions.json +++ a/api/v1/swagger/definitions.json @@ -71,6 +71,9 @@ "patron_balance": { "$ref": "definitions/patron_balance.json" }, + "patron_extended_attribute": { + "$ref": "definitions/patron_extended_attribute.json" + }, "quote": { "$ref": "definitions/quote.json" }, --- a/api/v1/swagger/paths.json +++ a/api/v1/swagger/paths.json @@ -119,7 +119,13 @@ "/patrons/{patron_id}/account/credits": { "$ref": "paths/patrons_account.json#/~1patrons~1{patron_id}~1account~1credits" }, - "/patrons/{patron_id}/holds": { + "/patrons/{patron_id}/extended_attributes": { + "$ref": "paths/patrons_extended_attributes.json#/~1patrons~1{patron_id}~1extended_attributes" + }, + "/patrons/{patron_id}/extended_attributes/{extended_attribute_id}": { + "$ref": "paths/patrons_extended_attributes.json#/~1patrons~1{patron_id}~1extended_attributes~1{extended_attribute_id}" + }, + "/patrons/{patron_id}/holds": { "$ref": "paths/patrons_holds.json#/~1patrons~1{patron_id}~1holds" }, "/patrons/{patron_id}/password": { --- a/api/v1/swagger/paths/patrons_extended_attributes.json +++ a/api/v1/swagger/paths/patrons_extended_attributes.json @@ -0,0 +1,318 @@ +{ + "/patrons/{patron_id}/extended_attributes": { + "get": { + "x-mojo-to": "Patrons::Attributes#list_patron_attributes", + "operationId": "getPatronAttributes", + "tags": [ + "patrons", + "extended_attributes" + ], + "parameters": [ + { + "$ref": "../parameters.json#/patron_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": "The patron extended attributes", + "schema": { + "type": "array", + "items": { + "$ref": "../definitions.json#/patron_extended_attribute" + } + } + }, + "401": { + "description": "Authentication required", + "schema": { + "$ref": "../definitions.json#/error" + } + }, + "403": { + "description": "Access forbidden", + "schema": { + "$ref": "../definitions.json#/error" + } + }, + "404": { + "description": "Patron 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": { + "catalogue": "1" + } + } + }, + "post": { + "x-mojo-to": "Patrons::Attributes#add", + "operationId": "addPatronAttribute", + "tags": [ + "patrons", + "extended_attributes" + ], + "parameters": [ + { + "$ref": "../parameters.json#/patron_id_pp" + }, + { + "name": "body", + "in": "body", + "description": "A JSON representation of the patron extended attribute", + "required": true, + "schema": { + "$ref": "../definitions.json#/patron_extended_attribute" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "201": { + "description": "A successfully created patron extended attribute", + "schema": { + "$ref": "../definitions.json#/patron_extended_attribute" + } + }, + "400": { + "description": "Bad parameter", + "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": "Patron not found", + "schema": { + "$ref": "../definitions.json#/error" + } + }, + "409": { + "description": "Conflict in creating resource", + "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" + } + } + }, + "put": { + "x-mojo-to": "Patrons::Attributes#overwrite", + "operationId": "overwritePatronAttributes", + "tags": [ + "patrons", + "extended_attributes" + ], + "parameters": [ + { + "$ref": "../parameters.json#/patron_id_pp" + }, + { + "name": "body", + "in": "body", + "description": "A JSON representation of the patron extended attribute", + "required": true, + "schema": { + "type": "array", + "items": { + "$ref": "../definitions.json#/patron_extended_attribute" + } + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The successfully created patron extended attributes", + "schema": { + "type": "array", + "items": { + "$ref": "../definitions.json#/patron_extended_attribute" + } + } + }, + "400": { + "description": "Bad 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": "Patron not found", + "schema": { + "$ref": "../definitions.json#/error" + } + }, + "409": { + "description": "Conflict in creating resource", + "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" + } + } + } + }, + "/patrons/{patron_id}/extended_attributes/{extended_attribute_id}": { + "delete": { + "x-mojo-to": "Patrons::Attributes#delete", + "operationId": "deletePatronAttribute", + "tags": [ + "patrons", + "extended_attributes" + ], + "parameters": [ + { + "$ref": "../parameters.json#/patron_id_pp" + }, + { + "name": "extended_attribute_id", + "in": "path", + "description": "Internal patron extended attribute identifier", + "type": "integer", + "required": true + } + ], + "produces": [ + "application/json" + ], + "responses": { + "204": { + "description": "Extended patron attribute deleted" + }, + "401": { + "description": "Authentication required", + "schema": { + "$ref": "../definitions.json#/error" + } + }, + "403": { + "description": "Access forbidden", + "schema": { + "$ref": "../definitions.json#/error" + } + }, + "404": { + "description": "Patron 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" + } + } + } + } +} --