Koha/api/v1/swagger/paths/patrons.json
Tomas Cohen Arazi 0efdb1bb7a Bug 28480: Add q parameters for GET /patrons
This patch adds the q query parameters to the route.

To test:
1. Try the route with the following query parameter:
   q={"patron_id":2}
   i.e. GET /api/v1/patrons?q={"patron_id":2}
=> FAIL: You get a bad request respose
2. Apply this patch
3. Restart all
4. Repeat 1
=> SUCCESS: You get the patron
5. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-06-23 15:09:55 +02:00

712 lines
20 KiB
JSON

{
"/patrons": {
"get": {
"x-mojo-to": "Patrons#list",
"operationId": "listPatrons",
"tags": ["patrons"],
"summary": "List patrons",
"produces": [
"application/json"
],
"parameters": [{
"name": "patron_id",
"in": "query",
"description": "Search on patron_id",
"required": false,
"type": "string"
}, {
"name": "cardnumber",
"in": "query",
"description": "Case insensitive search on cardnumber",
"required": false,
"type": "string"
}, {
"name": "surname",
"in": "query",
"description": "Case insensitive search on surname",
"required": false,
"type": "string"
}, {
"name": "firstname",
"in": "query",
"description": "Case insensitive search on firstname",
"required": false,
"type": "string"
}, {
"name": "title",
"in": "query",
"description": "Case insensitive search on title",
"required": false,
"type": "string"
}, {
"name": "other_name",
"in": "query",
"description": "Case insensitive search on othernames",
"required": false,
"type": "string"
}, {
"name": "initials",
"in": "query",
"description": "Case insensitive search on initials",
"required": false,
"type": "string"
}, {
"name": "street_number",
"in": "query",
"description": "Case insensitive search on streetnumber",
"required": false,
"type": "string"
}, {
"name": "street_type",
"in": "query",
"description": "Case insensitive search on streettype",
"required": false,
"type": "string"
}, {
"name": "address",
"in": "query",
"description": "Case insensitive search on address",
"required": false,
"type": "string"
}, {
"name": "address2",
"in": "query",
"description": "Case insensitive search on address2",
"required": false,
"type": "string"
}, {
"name": "city",
"in": "query",
"description": "Case insensitive search on city",
"required": false,
"type": "string"
}, {
"name": "state",
"in": "query",
"description": "Case insensitive search on state",
"required": false,
"type": "string"
}, {
"name": "postal_code",
"in": "query",
"description": "Case insensitive search on zipcode",
"required": false,
"type": "string"
}, {
"name": "country",
"in": "query",
"description": "Case insensitive search on country",
"required": false,
"type": "string"
}, {
"name": "email",
"in": "query",
"description": "Case insensitive search on email",
"required": false,
"type": "string"
}, {
"name": "phone",
"in": "query",
"description": "Case insensitive search on phone",
"required": false,
"type": "string"
}, {
"name": "mobile",
"in": "query",
"description": "Case insensitive search on mobile",
"required": false,
"type": "string"
}, {
"name": "fax",
"in": "query",
"description": "Case insensitive search on fax",
"required": false,
"type": "string"
}, {
"name": "secondary_email",
"in": "query",
"description": "Case insensitive search on secondary_email",
"required": false,
"type": "string"
}, {
"name": "secondary_phone",
"in": "query",
"description": "Case insensitive search on secondary_phone",
"required": false,
"type": "string"
}, {
"name": "altaddress_street_number",
"in": "query",
"description": "Case insensitive search on altaddress_street_number",
"required": false,
"type": "string"
}, {
"name": "altaddress_street_type",
"in": "query",
"description": "Case insensitive search on altaddress_street_type",
"required": false,
"type": "string"
}, {
"name": "altaddress_address",
"in": "query",
"description": "Case insensitive search on altaddress_address",
"required": false,
"type": "string"
}, {
"name": "altaddress_address2",
"in": "query",
"description": "Case insensitive search on altaddress_address2",
"required": false,
"type": "string"
}, {
"name": "altaddress_city",
"in": "query",
"description": "Case insensitive search on altaddress_city",
"required": false,
"type": "string"
}, {
"name": "altaddress_state",
"in": "query",
"description": "Case insensitive search on altaddress_state",
"required": false,
"type": "string"
}, {
"name": "altaddress_postal_code",
"in": "query",
"description": "Case insensitive search on altaddress_postal_code",
"required": false,
"type": "string"
}, {
"name": "altaddress_country",
"in": "query",
"description": "Case insensitive search on altaddress_country",
"required": false,
"type": "string"
}, {
"name": "altaddress_email",
"in": "query",
"description": "Case insensitive search on altaddress_email",
"required": false,
"type": "string"
}, {
"name": "altaddress_phone",
"in": "query",
"description": "Case insensitive search on altaddress_phone",
"required": false,
"type": "string"
}, {
"name": "date_of_birth",
"in": "query",
"description": "Case insensitive search on date_of_birth",
"required": false,
"type": "string"
}, {
"name": "library_id",
"in": "query",
"description": "Case insensitive search on library_id",
"required": false,
"type": "string"
}, {
"name": "category_id",
"in": "query",
"description": "Case insensitive search on category_id",
"required": false,
"type": "string"
}, {
"name": "date_enrolled",
"in": "query",
"description": "Case insensitive search on date_enrolled",
"required": false,
"type": "string"
}, {
"name": "expiry_date",
"in": "query",
"description": "Case insensitive search on expiry_date",
"required": false,
"type": "string"
}, {
"name": "incorrect_address",
"in": "query",
"description": "Search on incorrect_address",
"required": false,
"type": "boolean"
}, {
"name": "patron_card_lost",
"in": "query",
"description": "Search on patron_card_lost",
"required": false,
"type": "boolean"
}, {
"name": "restricted",
"in": "query",
"description": "Filter search by restricted",
"required": false,
"type": "boolean"
}, {
"name": "guarantor_id",
"in": "query",
"description": "Search on guarantor_id",
"required": false,
"type": "string"
}, {
"name": "staff_notes",
"in": "query",
"description": "Case insensitive search on staff_notes",
"required": false,
"type": "string"
}, {
"name": "relationship_type",
"in": "query",
"description": "Case insensitive search on relationship_type",
"required": false,
"type": "string"
}, {
"name": "gender",
"in": "query",
"description": "Case insensitive search on gender",
"required": false,
"type": "string"
}, {
"name": "userid",
"in": "query",
"description": "Case insensitive search on userid",
"required": false,
"type": "string"
}, {
"name": "opac_notes",
"in": "query",
"description": "Case insensitive search on opac_notes",
"required": false,
"type": "string"
}, {
"name": "altaddress_notes",
"in": "query",
"description": "Case insensitive search on altaddress_notes",
"required": false,
"type": "string"
}, {
"name": "statistics_1",
"in": "query",
"description": "Case insensitive search on statistics_1",
"required": false,
"type": "string"
}, {
"name": "statistics_2",
"in": "query",
"description": "Case insensitive search on statistics_2",
"required": false,
"type": "string"
}, {
"name": "autorenew_checkouts",
"in": "query",
"description": "Search on autorenew_checkouts",
"required": false,
"type": "boolean"
}, {
"name": "altcontact_firstname",
"in": "query",
"description": "Case insensitive search on altcontact_firstname",
"required": false,
"type": "string"
}, {
"name": "altcontact_surname",
"in": "query",
"description": "Case insensitive search on altcontact_surname",
"required": false,
"type": "string"
}, {
"name": "altcontact_address",
"in": "query",
"description": "Case insensitive search on altcontact_address",
"required": false,
"type": "string"
}, {
"name": "altcontact_address2",
"in": "query",
"description": "Case insensitive search on altcontact_address2",
"required": false,
"type": "string"
}, {
"name": "altcontact_city",
"in": "query",
"description": "Case insensitive search on altcontact_city",
"required": false,
"type": "string"
}, {
"name": "altcontact_state",
"in": "query",
"description": "Case insensitive search on altcontact_state",
"required": false,
"type": "string"
}, {
"name": "altcontact_postal_code",
"in": "query",
"description": "Case insensitive search on altcontact_postal_code",
"required": false,
"type": "string"
}, {
"name": "altcontact_country",
"in": "query",
"description": "Case insensitive search on altcontact_country",
"required": false,
"type": "string"
}, {
"name": "altcontact_phone",
"in": "query",
"description": "Case insensitive search on altcontact_phone",
"required": false,
"type": "string"
}, {
"name": "sms_number",
"in": "query",
"description": "Case insensitive search on sms_number",
"required": false,
"type": "string"
}, {
"name": "sms_provider_id",
"in": "query",
"description": "Case insensitive search on sms_provider_id",
"required": false,
"type": "string"
}, {
"name": "privacy",
"in": "query",
"description": "Search on privacy",
"required": false,
"type": "string"
}, {
"name": "privacy_guarantor_checkouts",
"in": "query",
"description": "Search on privacy_guarantor_checkouts",
"required": false,
"type": "string"
}, {
"name": "check_previous_checkout",
"in": "query",
"description": "Case insensitive search on check_previous_checkout",
"required": false,
"type": "string"
}, {
"name": "updated_on",
"in": "query",
"description": "Search on updated_on",
"required": false,
"type": "string"
}, {
"name": "last_seen",
"in": "query",
"description": "Case insensitive search on last_seen",
"required": false,
"type": "string"
}, {
"name": "lang",
"in": "query",
"description": "Case insensitive search on lang",
"required": false,
"type": "string"
}, {
"name": "login_attempts",
"in": "query",
"description": "Search on login_attempts",
"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"
}],
"responses": {
"200": {
"description": "A list of patrons",
"schema": {
"type": "array",
"items": {
"$ref": "../definitions.json#/patron"
}
}
},
"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"
}
}
},
"x-koha-authorization": {
"permissions": {
"borrowers": "1"
}
},
"x-koha-embed": [
"extended_attributes"
]
},
"post": {
"x-mojo-to": "Patrons#add",
"operationId": "addPatron",
"tags": ["patrons"],
"summary": "Add patron",
"parameters": [{
"name": "body",
"in": "body",
"description": "A JSON object containing information about the new patron",
"required": true,
"schema": {
"$ref": "../definitions.json#/patron"
}
}],
"consumes": ["application/json"],
"produces": ["application/json"],
"responses": {
"201": {
"description": "A successfully created patron",
"schema": {
"items": {
"$ref": "../definitions.json#/patron"
}
}
},
"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": "Resource 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}": {
"get": {
"x-mojo-to": "Patrons#get",
"operationId": "getPatron",
"tags": ["patrons"],
"summary": "Get patron",
"parameters": [{
"$ref": "../parameters.json#/patron_id_pp"
}],
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "A patron",
"schema": {
"$ref": "../definitions.json#/patron"
}
},
"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"
}
},
"x-koha-embed": [
"extended_attributes"
]
},
"put": {
"x-mojo-to": "Patrons#update",
"operationId": "updatePatron",
"tags": ["patrons"],
"summary": "Update patron",
"parameters": [
{
"$ref": "../parameters.json#/patron_id_pp"
},
{
"name": "body",
"in": "body",
"description": "A JSON object containing new information about existing patron",
"required": true,
"schema": {
"$ref": "../definitions.json#/patron"
}
}
],
"consumes": ["application/json"],
"produces": ["application/json"],
"responses": {
"200": {
"description": "A successfully updated patron",
"schema": {
"items": {
"$ref": "../definitions.json#/patron"
}
}
},
"400": {
"description": "Bad parameter",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"403": {
"description": "Access forbidden",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"404": {
"description": "Resource not found",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"409": {
"description": "Conflict in updating resource",
"schema": {
"$ref": "../definitions.json#/error"
}
},
"500": {
"description": "Internal server error",
"schema": {
"$ref": "../definitions.json#/error"
}
}
},
"x-koha-authorization": {
"permissions": {
"borrowers": "1"
}
}
},
"delete": {
"x-mojo-to": "Patrons#delete",
"operationId": "deletePatron",
"tags": ["patrons"],
"summary": "Delete patron",
"parameters": [{
"$ref": "../parameters.json#/patron_id_pp"
}],
"produces": ["application/json"],
"responses": {
"204": {
"description": "Patron deleted"
},
"400": {
"description": "Patron deletion failed",
"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"
}
}
},
"x-koha-authorization": {
"permissions": {
"borrowers": "delete_borrowers"
}
}
}
}
}