Tomas Cohen Arazi
bbe424dcfb
This patch adds the mentioned route. It does so by: - Adding the new path in paths.json - Adding the full route spec in items.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/items.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>
231 lines
5.3 KiB
JSON
231 lines
5.3 KiB
JSON
{
|
|
"/items": {
|
|
"get": {
|
|
"x-mojo-to": "Items#list",
|
|
"operationId": "listItems",
|
|
"tags": [
|
|
"items"
|
|
],
|
|
"summary": "List items",
|
|
"parameters": [
|
|
{
|
|
"name": "external_id",
|
|
"in": "query",
|
|
"description": "Search on the item's barcode",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"$ref": "../parameters.json#/match"
|
|
},
|
|
{
|
|
"$ref": "../parameters.json#/order_by"
|
|
},
|
|
{
|
|
"$ref": "../parameters.json#/page"
|
|
},
|
|
{
|
|
"$ref": "../parameters.json#/per_page"
|
|
}
|
|
],
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "A list of item",
|
|
"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"
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/items/{item_id}": {
|
|
"get": {
|
|
"x-mojo-to": "Items#get",
|
|
"operationId": "getItem",
|
|
"tags": ["items"],
|
|
"summary": "Get item",
|
|
"parameters": [{
|
|
"$ref": "../parameters.json#/item_id_pp"
|
|
}
|
|
],
|
|
"consumes": ["application/json"],
|
|
"produces": ["application/json"],
|
|
"responses": {
|
|
"200": {
|
|
"description": "An item",
|
|
"schema": {
|
|
"$ref": "../definitions.json#/item"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Missing or wrong parameters",
|
|
"schema": {
|
|
"$ref": "../definitions.json#/error"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Item 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"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/items/{item_id}/pickup_locations": {
|
|
"get": {
|
|
"x-mojo-to": "Items#pickup_locations",
|
|
"operationId": "getItemPickupLocations",
|
|
"tags": [
|
|
"items",
|
|
"pickup_locations"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"$ref": "../parameters.json#/item_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": "Item 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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|