]> git.koha-community.org Git - koha.git/blob - api/v1/swagger/paths/patrons.json
Bug 28463: Add summary to all routes
[koha.git] / api / v1 / swagger / paths / patrons.json
1 {
2   "/patrons": {
3     "get": {
4       "x-mojo-to": "Patrons#list",
5       "operationId": "listPatrons",
6       "tags": ["patrons"],
7       "summary": "List patrons",
8       "produces": [
9           "application/json"
10       ],
11       "parameters": [{
12         "name": "patron_id",
13         "in": "query",
14         "description": "Search on patron_id",
15         "required": false,
16         "type": "string"
17       }, {
18         "name": "cardnumber",
19         "in": "query",
20         "description": "Case insensitive search on cardnumber",
21         "required": false,
22         "type": "string"
23       }, {
24         "name": "surname",
25         "in": "query",
26         "description": "Case insensitive search on surname",
27         "required": false,
28         "type": "string"
29       }, {
30         "name": "firstname",
31         "in": "query",
32         "description": "Case insensitive search on firstname",
33         "required": false,
34         "type": "string"
35       }, {
36         "name": "title",
37         "in": "query",
38         "description": "Case insensitive search on title",
39         "required": false,
40         "type": "string"
41       }, {
42         "name": "other_name",
43         "in": "query",
44         "description": "Case insensitive search on othernames",
45         "required": false,
46         "type": "string"
47       }, {
48         "name": "initials",
49         "in": "query",
50         "description": "Case insensitive search on initials",
51         "required": false,
52         "type": "string"
53       }, {
54         "name": "street_number",
55         "in": "query",
56         "description": "Case insensitive search on streetnumber",
57         "required": false,
58         "type": "string"
59       }, {
60         "name": "street_type",
61         "in": "query",
62         "description": "Case insensitive search on streettype",
63         "required": false,
64         "type": "string"
65       }, {
66         "name": "address",
67         "in": "query",
68         "description": "Case insensitive search on address",
69         "required": false,
70         "type": "string"
71       }, {
72         "name": "address2",
73         "in": "query",
74         "description": "Case insensitive search on address2",
75         "required": false,
76         "type": "string"
77       }, {
78         "name": "city",
79         "in": "query",
80         "description": "Case insensitive search on city",
81         "required": false,
82         "type": "string"
83       }, {
84         "name": "state",
85         "in": "query",
86         "description": "Case insensitive search on state",
87         "required": false,
88         "type": "string"
89       }, {
90         "name": "postal_code",
91         "in": "query",
92         "description": "Case insensitive search on zipcode",
93         "required": false,
94         "type": "string"
95       }, {
96         "name": "country",
97         "in": "query",
98         "description": "Case insensitive search on country",
99         "required": false,
100         "type": "string"
101       }, {
102         "name": "email",
103         "in": "query",
104         "description": "Case insensitive search on email",
105         "required": false,
106         "type": "string"
107       }, {
108         "name": "phone",
109         "in": "query",
110         "description": "Case insensitive search on phone",
111         "required": false,
112         "type": "string"
113       }, {
114         "name": "mobile",
115         "in": "query",
116         "description": "Case insensitive search on mobile",
117         "required": false,
118         "type": "string"
119       }, {
120         "name": "fax",
121         "in": "query",
122         "description": "Case insensitive search on fax",
123         "required": false,
124         "type": "string"
125       }, {
126         "name": "secondary_email",
127         "in": "query",
128         "description": "Case insensitive search on secondary_email",
129         "required": false,
130         "type": "string"
131       }, {
132         "name": "secondary_phone",
133         "in": "query",
134         "description": "Case insensitive search on secondary_phone",
135         "required": false,
136         "type": "string"
137       }, {
138         "name": "altaddress_street_number",
139         "in": "query",
140         "description": "Case insensitive search on altaddress_street_number",
141         "required": false,
142         "type": "string"
143       }, {
144         "name": "altaddress_street_type",
145         "in": "query",
146         "description": "Case insensitive search on altaddress_street_type",
147         "required": false,
148         "type": "string"
149       }, {
150         "name": "altaddress_address",
151         "in": "query",
152         "description": "Case insensitive search on altaddress_address",
153         "required": false,
154         "type": "string"
155       }, {
156         "name": "altaddress_address2",
157         "in": "query",
158         "description": "Case insensitive search on altaddress_address2",
159         "required": false,
160         "type": "string"
161       }, {
162         "name": "altaddress_city",
163         "in": "query",
164         "description": "Case insensitive search on altaddress_city",
165         "required": false,
166         "type": "string"
167       }, {
168         "name": "altaddress_state",
169         "in": "query",
170         "description": "Case insensitive search on altaddress_state",
171         "required": false,
172         "type": "string"
173       }, {
174         "name": "altaddress_postal_code",
175         "in": "query",
176         "description": "Case insensitive search on altaddress_postal_code",
177         "required": false,
178         "type": "string"
179       }, {
180         "name": "altaddress_country",
181         "in": "query",
182         "description": "Case insensitive search on altaddress_country",
183         "required": false,
184         "type": "string"
185       }, {
186         "name": "altaddress_email",
187         "in": "query",
188         "description": "Case insensitive search on altaddress_email",
189         "required": false,
190         "type": "string"
191       }, {
192         "name": "altaddress_phone",
193         "in": "query",
194         "description": "Case insensitive search on altaddress_phone",
195         "required": false,
196         "type": "string"
197       }, {
198         "name": "date_of_birth",
199         "in": "query",
200         "description": "Case insensitive search on date_of_birth",
201         "required": false,
202         "type": "string"
203       }, {
204         "name": "library_id",
205         "in": "query",
206         "description": "Case insensitive search on library_id",
207         "required": false,
208         "type": "string"
209       }, {
210         "name": "category_id",
211         "in": "query",
212         "description": "Case insensitive search on category_id",
213         "required": false,
214         "type": "string"
215       }, {
216         "name": "date_enrolled",
217         "in": "query",
218         "description": "Case insensitive search on date_enrolled",
219         "required": false,
220         "type": "string"
221       }, {
222         "name": "expiry_date",
223         "in": "query",
224         "description": "Case insensitive search on expiry_date",
225         "required": false,
226         "type": "string"
227       }, {
228         "name": "incorrect_address",
229         "in": "query",
230         "description": "Search on incorrect_address",
231         "required": false,
232         "type": "boolean"
233       }, {
234         "name": "patron_card_lost",
235         "in": "query",
236         "description": "Search on patron_card_lost",
237         "required": false,
238         "type": "boolean"
239       }, {
240         "name": "restricted",
241         "in": "query",
242         "description": "Filter search by restricted",
243         "required": false,
244         "type": "boolean"
245       }, {
246         "name": "guarantor_id",
247         "in": "query",
248         "description": "Search on guarantor_id",
249         "required": false,
250         "type": "string"
251       }, {
252         "name": "staff_notes",
253         "in": "query",
254         "description": "Case insensitive search on staff_notes",
255         "required": false,
256         "type": "string"
257       }, {
258         "name": "relationship_type",
259         "in": "query",
260         "description": "Case insensitive search on relationship_type",
261         "required": false,
262         "type": "string"
263       }, {
264         "name": "gender",
265         "in": "query",
266         "description": "Case insensitive search on gender",
267         "required": false,
268         "type": "string"
269       }, {
270         "name": "userid",
271         "in": "query",
272         "description": "Case insensitive search on userid",
273         "required": false,
274         "type": "string"
275       }, {
276         "name": "opac_notes",
277         "in": "query",
278         "description": "Case insensitive search on opac_notes",
279         "required": false,
280         "type": "string"
281       }, {
282         "name": "altaddress_notes",
283         "in": "query",
284         "description": "Case insensitive search on altaddress_notes",
285         "required": false,
286         "type": "string"
287       }, {
288         "name": "statistics_1",
289         "in": "query",
290         "description": "Case insensitive search on statistics_1",
291         "required": false,
292         "type": "string"
293       }, {
294         "name": "statistics_2",
295         "in": "query",
296         "description": "Case insensitive search on statistics_2",
297         "required": false,
298         "type": "string"
299       }, {
300         "name": "autorenew_checkouts",
301         "in": "query",
302         "description": "Search on autorenew_checkouts",
303         "required": false,
304         "type": "boolean"
305       }, {
306         "name": "altcontact_firstname",
307         "in": "query",
308         "description": "Case insensitive search on altcontact_firstname",
309         "required": false,
310         "type": "string"
311       }, {
312         "name": "altcontact_surname",
313         "in": "query",
314         "description": "Case insensitive search on altcontact_surname",
315         "required": false,
316         "type": "string"
317       }, {
318         "name": "altcontact_address",
319         "in": "query",
320         "description": "Case insensitive search on altcontact_address",
321         "required": false,
322         "type": "string"
323       }, {
324         "name": "altcontact_address2",
325         "in": "query",
326         "description": "Case insensitive search on altcontact_address2",
327         "required": false,
328         "type": "string"
329       }, {
330         "name": "altcontact_city",
331         "in": "query",
332         "description": "Case insensitive search on altcontact_city",
333         "required": false,
334         "type": "string"
335       }, {
336         "name": "altcontact_state",
337         "in": "query",
338         "description": "Case insensitive search on altcontact_state",
339         "required": false,
340         "type": "string"
341       }, {
342         "name": "altcontact_postal_code",
343         "in": "query",
344         "description": "Case insensitive search on altcontact_postal_code",
345         "required": false,
346         "type": "string"
347       }, {
348         "name": "altcontact_country",
349         "in": "query",
350         "description": "Case insensitive search on altcontact_country",
351         "required": false,
352         "type": "string"
353       }, {
354         "name": "altcontact_phone",
355         "in": "query",
356         "description": "Case insensitive search on altcontact_phone",
357         "required": false,
358         "type": "string"
359       }, {
360         "name": "sms_number",
361         "in": "query",
362         "description": "Case insensitive search on sms_number",
363         "required": false,
364         "type": "string"
365       }, {
366         "name": "sms_provider_id",
367         "in": "query",
368         "description": "Case insensitive search on sms_provider_id",
369         "required": false,
370         "type": "string"
371       }, {
372         "name": "privacy",
373         "in": "query",
374         "description": "Search on privacy",
375         "required": false,
376         "type": "string"
377       }, {
378         "name": "privacy_guarantor_checkouts",
379         "in": "query",
380         "description": "Search on privacy_guarantor_checkouts",
381         "required": false,
382         "type": "string"
383       }, {
384         "name": "check_previous_checkout",
385         "in": "query",
386         "description": "Case insensitive search on check_previous_checkout",
387         "required": false,
388         "type": "string"
389       }, {
390         "name": "updated_on",
391         "in": "query",
392         "description": "Search on updated_on",
393         "required": false,
394         "type": "string"
395       }, {
396         "name": "last_seen",
397         "in": "query",
398         "description": "Case insensitive search on last_seen",
399         "required": false,
400         "type": "string"
401       }, {
402         "name": "lang",
403         "in": "query",
404         "description": "Case insensitive search on lang",
405         "required": false,
406         "type": "string"
407       }, {
408         "name": "login_attempts",
409         "in": "query",
410         "description": "Search on login_attempts",
411         "required": false,
412         "type": "string"
413       }, {
414         "$ref": "../parameters.json#/match"
415       }, {
416         "$ref": "../parameters.json#/order_by"
417       }, {
418         "$ref": "../parameters.json#/page"
419       }, {
420         "$ref": "../parameters.json#/per_page"
421       }],
422       "responses": {
423         "200": {
424           "description": "A list of patrons",
425           "schema": {
426             "type": "array",
427             "items": {
428               "$ref": "../definitions.json#/patron"
429             }
430           }
431         },
432         "401": {
433           "description": "Authentication required",
434           "schema": {
435             "$ref": "../definitions.json#/error"
436           }
437         },
438         "403": {
439           "description": "Access forbidden",
440           "schema": {
441             "$ref": "../definitions.json#/error"
442           }
443         },
444         "500": {
445           "description": "Internal server error",
446           "schema": {
447             "$ref": "../definitions.json#/error"
448           }
449         }
450       },
451       "x-koha-authorization": {
452         "permissions": {
453           "borrowers": "1"
454         }
455       },
456       "x-koha-embed": [
457         "extended_attributes"
458       ]
459     },
460     "post": {
461       "x-mojo-to": "Patrons#add",
462       "operationId": "addPatron",
463       "tags": ["patrons"],
464       "summary": "Add patron",
465       "parameters": [{
466         "name": "body",
467         "in": "body",
468         "description": "A JSON object containing information about the new patron",
469         "required": true,
470         "schema": {
471           "$ref": "../definitions.json#/patron"
472         }
473       }],
474       "consumes": ["application/json"],
475       "produces": ["application/json"],
476       "responses": {
477         "201": {
478           "description": "A successfully created patron",
479           "schema": {
480             "items": {
481               "$ref": "../definitions.json#/patron"
482             }
483           }
484         },
485         "400": {
486           "description": "Bad parameter",
487           "schema": {
488             "$ref": "../definitions.json#/error"
489           }
490         },
491         "401": {
492           "description": "Authentication required",
493           "schema": {
494             "$ref": "../definitions.json#/error"
495           }
496         },
497         "403": {
498           "description": "Access forbidden",
499           "schema": {
500             "$ref": "../definitions.json#/error"
501           }
502         },
503         "404": {
504           "description": "Resource not found",
505           "schema": {
506             "$ref": "../definitions.json#/error"
507           }
508         },
509         "409": {
510           "description": "Conflict in creating resource",
511           "schema": {
512             "$ref": "../definitions.json#/error"
513           }
514         },
515         "500": {
516           "description": "Internal server error",
517           "schema": {
518             "$ref": "../definitions.json#/error"
519           }
520         },
521         "503": {
522           "description": "Under maintenance",
523           "schema": {
524             "$ref": "../definitions.json#/error"
525           }
526         }
527       },
528       "x-koha-authorization": {
529         "permissions": {
530           "borrowers": "edit_borrowers"
531         }
532       }
533     }
534   },
535   "/patrons/{patron_id}": {
536     "get": {
537       "x-mojo-to": "Patrons#get",
538       "operationId": "getPatron",
539       "tags": ["patrons"],
540       "summary": "Get patron",
541       "parameters": [{
542           "$ref": "../parameters.json#/patron_id_pp"
543       }],
544       "produces": [
545         "application/json"
546       ],
547       "responses": {
548         "200": {
549           "description": "A patron",
550           "schema": {
551             "$ref": "../definitions.json#/patron"
552           }
553         },
554         "401": {
555           "description": "Authentication required",
556           "schema": {
557             "$ref": "../definitions.json#/error"
558           }
559         },
560         "403": {
561           "description": "Access forbidden",
562           "schema": {
563             "$ref": "../definitions.json#/error"
564           }
565         },
566         "404": {
567           "description": "Patron not found",
568           "schema": {
569             "$ref": "../definitions.json#/error"
570           }
571         },
572         "500": {
573           "description": "Internal server error",
574           "schema": {
575             "$ref": "../definitions.json#/error"
576           }
577         },
578         "503": {
579           "description": "Under maintenance",
580           "schema": {
581             "$ref": "../definitions.json#/error"
582           }
583         }
584       },
585       "x-koha-authorization": {
586         "permissions": {
587           "borrowers": "edit_borrowers"
588         }
589       },
590       "x-koha-embed": [
591         "extended_attributes"
592       ]
593     },
594     "put": {
595       "x-mojo-to": "Patrons#update",
596       "operationId": "updatePatron",
597       "tags": ["patrons"],
598       "summary": "Update patron",
599       "parameters": [
600         {
601           "$ref": "../parameters.json#/patron_id_pp"
602         },
603         {
604           "name": "body",
605           "in": "body",
606           "description": "A JSON object containing new information about existing patron",
607           "required": true,
608           "schema": {
609             "$ref": "../definitions.json#/patron"
610           }
611         }
612       ],
613       "consumes": ["application/json"],
614       "produces": ["application/json"],
615       "responses": {
616         "200": {
617           "description": "A successfully updated patron",
618           "schema": {
619             "items": {
620               "$ref": "../definitions.json#/patron"
621             }
622           }
623         },
624         "400": {
625           "description": "Bad parameter",
626           "schema": {
627             "$ref": "../definitions.json#/error"
628           }
629         },
630         "403": {
631           "description": "Access forbidden",
632           "schema": {
633             "$ref": "../definitions.json#/error"
634           }
635         },
636         "404": {
637           "description": "Resource not found",
638           "schema": {
639             "$ref": "../definitions.json#/error"
640           }
641         },
642         "409": {
643           "description": "Conflict in updating resource",
644           "schema": {
645             "$ref": "../definitions.json#/error"
646           }
647         },
648         "500": {
649           "description": "Internal server error",
650           "schema": {
651             "$ref": "../definitions.json#/error"
652           }
653         }
654       },
655       "x-koha-authorization": {
656         "permissions": {
657           "borrowers": "1"
658         }
659       }
660     },
661     "delete": {
662       "x-mojo-to": "Patrons#delete",
663       "operationId": "deletePatron",
664       "tags": ["patrons"],
665       "summary": "Delete patron",
666       "parameters": [{
667         "$ref": "../parameters.json#/patron_id_pp"
668       }],
669       "produces": ["application/json"],
670       "responses": {
671         "204": {
672           "description": "Patron deleted"
673         },
674         "400": {
675           "description": "Patron deletion failed",
676           "schema": {
677             "$ref": "../definitions.json#/error"
678           }
679         },
680         "401": {
681           "description": "Authentication required",
682           "schema": {
683             "$ref": "../definitions.json#/error"
684           }
685         },
686         "403": {
687           "description": "Access forbidden",
688           "schema": {
689             "$ref": "../definitions.json#/error"
690           }
691         },
692         "404": {
693           "description": "Patron not found",
694           "schema": {
695             "$ref": "../definitions.json#/error"
696           }
697         }
698       },
699       "x-koha-authorization": {
700         "permissions": {
701           "borrowers": "1"
702         }
703       }
704     }
705   }
706 }