Koha/api/v1/swagger/paths/biblios.json
Tomas Cohen Arazi 2db98432d8 Bug 27932: Add GET /biblios/:biblio_id/pickup_locations route
This patch adds the mentioned route. It does so by:
- Adding the new path in paths.json
- Adding the full route spec in biblios.json
- Adds a controller method that takes care of the task

To test:
1. Apply this patches
2. Run:
   $ kshell
  k$ prove t/db_dependent/api/v1/biblios.t
=> SUCCESS: Tests pass!
3. Play with your favourite REST tool. Pay special care to
   the AllowHoldPolicyOverride syspref and the expected behaviors.
=> SUCCESS: All works as expected
4. Sign off :-D

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

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

401 lines
9.4 KiB
JSON

{
"/biblios/{biblio_id}": {
"get": {
"x-mojo-to": "Biblios#get",
"operationId": "getBiblio",
"tags": [
"biblios"
],
"parameters": [
{
"$ref": "../parameters.json#/biblio_id_pp"
}
],
"produces": [
"application/json",
"application/marcxml+xml",
"application/marc-in-json",
"application/marc",
"text/plain"
],
"responses": {
"200": {
"description": "A biblio"
},
"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"
}
},
"406": {
"description": "Not acceptable",
"schema": {
"type": "array",
"description": "Accepted content-types",
"items": {
"type": "string"
}
}
},
"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"
}
}
},
"delete": {
"x-mojo-to": "Biblios#delete",
"operationId": "deleteBiblio",
"tags": [
"biblios"
],
"parameters": [
{
"$ref": "../parameters.json#/biblio_id_pp"
}
],
"produces": [
"application/json"
],
"responses": {
"204": {
"description": "Biblio deleted",
"schema": {
"type": "string"
}
},
"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": {
"editcatalogue": "edit_catalogue"
}
}
}
},
"/biblios/{biblio_id}/items": {
"get": {
"x-mojo-to": "Biblios#get_items",
"operationId": "getBiblioItems",
"tags": [
"biblios",
"items"
],
"parameters": [
{
"$ref": "../parameters.json#/biblio_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"
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "A list of the items attached to the record",
"schema": {
"type": "array",
"items": {
"$ref": "../definitions.json#/item"
}
}
},
"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"
}
},
"406": {
"description": "Not acceptable",
"schema": {
"type": "array",
"description": "Accepted content-types",
"items": {
"type": "string"
}
}
},
"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"
}
}
}
},
"/biblios/{biblio_id}/pickup_locations": {
"get": {
"x-mojo-to": "Biblios#pickup_locations",
"operationId": "getBiblioPickupLocations",
"tags": [
"biblios",
"pickup_locations"
],
"parameters": [
{
"$ref": "../parameters.json#/biblio_id_pp"
},
{
"name": "patron_id",
"in": "query",
"description": "Internal patron identifier",
"required": true,
"type": "integer"
},
{
"$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"
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "Biblio pickup locations",
"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": "Access forbidden",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"404": {
"description": "Biblio 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"
}
}
}
},
"/public/biblios/{biblio_id}": {
"get": {
"x-mojo-to": "Biblios#get_public",
"operationId": "getBiblioPublic",
"tags": [
"biblios"
],
"parameters": [
{
"$ref": "../parameters.json#/biblio_id_pp"
}
],
"produces": [
"application/marcxml+xml",
"application/marc-in-json",
"application/marc",
"text/plain"
],
"responses": {
"200": {
"description": "A biblio"
},
"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"
}
},
"406": {
"description": "Not acceptable",
"schema": {
"type": "array",
"description": "Accepted content-types",
"items": {
"type": "string"
}
}
},
"500": {
"description": "Internal server error",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"503": {
"description": "Under maintenance",
"schema": {
"$ref": "../definitions.json#/error"
}
}
}
}
}
}