Bug 28948: Add GET /public/libraries routes
This patch introduces a route to fetch a list of libraries or a single library as expected on the /public namespace. It is expected to return the 'public' representation of the Koha::Library objects. To test: 1. Apply this patches 2. Run: $ kshell k$ prove t/db_dependent/api/v1/libraries.t => SUCCESS: Test pass and they cover all the cases! 3. Try your favourite REST tool against the new route. 4. Sign off :-D Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
7647d51478
commit
c56b2db564
2 changed files with 258 additions and 3 deletions
|
@ -92,6 +92,9 @@
|
|||
"/libraries": {
|
||||
"$ref": "paths/libraries.json#/~1libraries"
|
||||
},
|
||||
"/libraries/{library_id}": {
|
||||
"$ref": "paths/libraries.json#/~1libraries~1{library_id}"
|
||||
},
|
||||
"/transfer_limits": {
|
||||
"$ref": "paths/transfer_limits.yaml#/~1transfer_limits"
|
||||
},
|
||||
|
@ -101,9 +104,6 @@
|
|||
"/transfer_limits/batch": {
|
||||
"$ref": "paths/transfer_limits.yaml#/~1transfer_limits~1batch"
|
||||
},
|
||||
"/libraries/{library_id}": {
|
||||
"$ref": "paths/libraries.json#/~1libraries~1{library_id}"
|
||||
},
|
||||
"/checkouts/{checkout_id}/allows_renewal": {
|
||||
"$ref": "paths/checkouts.json#/~1checkouts~1{checkout_id}~1allows_renewal"
|
||||
},
|
||||
|
@ -164,6 +164,12 @@
|
|||
"/public/biblios/{biblio_id}": {
|
||||
"$ref": "paths/biblios.json#/~1public~1biblios~1{biblio_id}"
|
||||
},
|
||||
"/public/libraries": {
|
||||
"$ref": "paths/libraries.json#/~1public~1libraries"
|
||||
},
|
||||
"/public/libraries/{library_id}": {
|
||||
"$ref": "paths/libraries.json#/~1public~1libraries~1{library_id}"
|
||||
},
|
||||
"/public/patrons/{patron_id}/article_requests/{article_request_id}": {
|
||||
"$ref": "paths/article_requests.yaml#/~1public~1patrons~1{patron_id}~1article_requests~1{article_request_id}"
|
||||
},
|
||||
|
|
|
@ -431,5 +431,254 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/public/libraries": {
|
||||
"get": {
|
||||
"x-mojo-to": "Libraries#list",
|
||||
"operationId": "listLibrariesPublic",
|
||||
"tags": [
|
||||
"library"
|
||||
],
|
||||
"summary": "List libraries",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "name",
|
||||
"in": "query",
|
||||
"description": "Case insensitive 'starts-with' search on name",
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "address1",
|
||||
"in": "query",
|
||||
"description": "Case insensitive 'starts-with' search on address1",
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "address2",
|
||||
"in": "query",
|
||||
"description": "Case insensitive 'starts-with' search on address2",
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "address3",
|
||||
"in": "query",
|
||||
"description": "Case insensitive 'starts-with' search on address3",
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "postal_code",
|
||||
"in": "query",
|
||||
"description": "Case insensitive 'starts-with' search on postal code",
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "city",
|
||||
"in": "query",
|
||||
"description": "Case insensitive 'starts-with' search on city",
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "state",
|
||||
"in": "query",
|
||||
"description": "Case insensitive 'starts-with' search on state",
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "country",
|
||||
"in": "query",
|
||||
"description": "Case insensitive 'starts_with' search on country",
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "phone",
|
||||
"in": "query",
|
||||
"description": "Case insensitive 'starts_with' search on phone number",
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "fax",
|
||||
"in": "query",
|
||||
"description": "Case insensitive 'starts_with' search on fax number",
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "email",
|
||||
"in": "query",
|
||||
"description": "Case insensitive 'starts_with' search on email address",
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "reply_to_email",
|
||||
"in": "query",
|
||||
"description": "Case insensitive 'starts_with' search on Reply-To email address",
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "return_path_email",
|
||||
"in": "query",
|
||||
"description": "Case insensitive 'starts_with' search on Return-Path email address",
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "url",
|
||||
"in": "query",
|
||||
"description": "Case insensitive 'starts_with' search on website URL",
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "ip",
|
||||
"in": "query",
|
||||
"description": "Case insensitive 'starts_with' search on IP address",
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "notes",
|
||||
"in": "query",
|
||||
"description": "Case insensitive 'starts_with' search on notes",
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "opac_info",
|
||||
"in": "query",
|
||||
"description": "Case insensitive 'starts-with' search on OPAC info",
|
||||
"required": false,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"$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 libraries",
|
||||
"schema": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "../definitions.json#/library"
|
||||
}
|
||||
}
|
||||
},
|
||||
"500": {
|
||||
"description": "Internal error",
|
||||
"schema": {
|
||||
"$ref": "../definitions.json#/error"
|
||||
}
|
||||
},
|
||||
"503": {
|
||||
"description": "Under maintenance",
|
||||
"schema": {
|
||||
"$ref": "../definitions.json#/error"
|
||||
}
|
||||
}
|
||||
},
|
||||
"x-koha-authorization": {
|
||||
"permissions": {
|
||||
"catalogue": "1"
|
||||
}
|
||||
},
|
||||
"x-koha-embed": [
|
||||
"smtp_server"
|
||||
]
|
||||
}
|
||||
},
|
||||
"/public/libraries/{library_id}": {
|
||||
"get": {
|
||||
"x-mojo-to": "Libraries#get",
|
||||
"operationId": "getLibraryPublic",
|
||||
"tags": [
|
||||
"libraries"
|
||||
],
|
||||
"summary": "Get library (public)",
|
||||
"parameters": [
|
||||
{
|
||||
"$ref": "../parameters.json#/library_id_pp"
|
||||
}
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "A library"
|
||||
},
|
||||
"401": {
|
||||
"description": "Authentication required",
|
||||
"schema": {
|
||||
"$ref": "../definitions.json#/error"
|
||||
}
|
||||
},
|
||||
"403": {
|
||||
"description": "Access forbidden",
|
||||
"schema": {
|
||||
"$ref": "../definitions.json#/error"
|
||||
}
|
||||
},
|
||||
"404": {
|
||||
"description": "Library 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue