Bug 29939: Use the REST API for ratings
[koha.git] / api / v1 / swagger / paths / biblios.yaml
1 ---
2 "/biblios/{biblio_id}":
3   get:
4     x-mojo-to: Biblios#get
5     operationId: getBiblio
6     tags:
7       - biblios
8     summary: Get biblio
9     parameters:
10       - $ref: "../swagger.yaml#/parameters/biblio_id_pp"
11     produces:
12       - application/json
13       - application/marcxml+xml
14       - application/marc-in-json
15       - application/marc
16       - text/plain
17     responses:
18       "200":
19         description: A biblio
20       "401":
21         description: Authentication required
22         schema:
23           $ref: "../swagger.yaml#/definitions/error"
24       "403":
25         description: Access forbidden
26         schema:
27           $ref: "../swagger.yaml#/definitions/error"
28       "404":
29         description: Biblio not found
30         schema:
31           $ref: "../swagger.yaml#/definitions/error"
32       "406":
33         description: Not acceptable
34         schema:
35           type: array
36           description: Accepted content-types
37           items:
38             type: string
39       "500":
40         description: |
41           Internal server error. Possible `error_code` attribute values:
42
43           * `internal_server_error`
44         schema:
45           $ref: "../swagger.yaml#/definitions/error"
46       "503":
47         description: Under maintenance
48         schema:
49           $ref: "../swagger.yaml#/definitions/error"
50     x-koha-authorization:
51       permissions:
52         catalogue: "1"
53   delete:
54     x-mojo-to: Biblios#delete
55     operationId: deleteBiblio
56     tags:
57       - biblios
58     summary: Delete biblio
59     parameters:
60       - $ref: "../swagger.yaml#/parameters/biblio_id_pp"
61     produces:
62       - application/json
63     responses:
64       "204":
65         description: Biblio deleted
66         schema:
67           type: string
68       "401":
69         description: Authentication required
70         schema:
71           $ref: "../swagger.yaml#/definitions/error"
72       "403":
73         description: Access forbidden
74         schema:
75           $ref: "../swagger.yaml#/definitions/error"
76       "404":
77         description: Biblio not found
78         schema:
79           $ref: "../swagger.yaml#/definitions/error"
80       "409":
81         description: Unable to perform action on biblio
82         schema:
83           $ref: "../swagger.yaml#/definitions/error"
84       "500":
85         description: Internal error
86         schema:
87           $ref: "../swagger.yaml#/definitions/error"
88       "503":
89         description: Under maintenance
90         schema:
91           $ref: "../swagger.yaml#/definitions/error"
92     x-koha-authorization:
93       permissions:
94         editcatalogue: edit_catalogue
95 "/biblios/{biblio_id}/checkouts":
96   get:
97     x-mojo-to: Biblios#get_checkouts
98     operationId: listBiblioCheckouts
99     tags:
100       - checkouts
101     summary: List checkouts for a biblio
102     parameters:
103       - $ref: "../swagger.yaml#/parameters/biblio_id_pp"
104       - $ref: "../swagger.yaml#/parameters/page"
105       - $ref: "../swagger.yaml#/parameters/per_page"
106       - $ref: "../swagger.yaml#/parameters/match"
107       - $ref: "../swagger.yaml#/parameters/order_by"
108       - $ref: "../swagger.yaml#/parameters/q_param"
109       - $ref: "../swagger.yaml#/parameters/q_body"
110       - $ref: "../swagger.yaml#/parameters/q_header"
111       - $ref: "../swagger.yaml#/parameters/request_id_header"
112       - name: x-koha-embed
113         in: header
114         required: false
115         description: Embed list sent as a request header
116         type: array
117         items:
118           type: string
119           enum:
120             - issuer
121             - item
122             - patron
123             - library
124         collectionFormat: csv
125       - name: checked_in
126         in: query
127         description: By default, current checkouts are returned, when this is true then
128           checked in checkouts are returned as result.
129         type: boolean
130     produces:
131       - application/json
132     responses:
133       "200":
134         description: A list of checkouts
135         schema:
136           $ref: "../swagger.yaml#/definitions/checkouts"
137       "403":
138         description: Access forbidden
139         schema:
140           $ref: "../swagger.yaml#/definitions/error"
141       "404":
142         description: Biblio not found
143         schema:
144           $ref: "../swagger.yaml#/definitions/error"
145       "500":
146         description: |
147           Internal server error. Possible `error_code` attribute values:
148
149           * `internal_server_error`
150         schema:
151           $ref: "../swagger.yaml#/definitions/error"
152       "503":
153         description: Under maintenance
154         schema:
155           $ref: "../swagger.yaml#/definitions/error"
156     x-koha-authorization:
157       permissions:
158         circulate: circulate_remaining_permissions
159 "/biblios/{biblio_id}/items":
160   get:
161     x-mojo-to: Biblios#get_items
162     operationId: getBiblioItems
163     tags:
164       - biblios
165     summary: Get items for a biblio
166     parameters:
167       - $ref: "../swagger.yaml#/parameters/biblio_id_pp"
168       - $ref: "../swagger.yaml#/parameters/match"
169       - $ref: "../swagger.yaml#/parameters/order_by"
170       - $ref: "../swagger.yaml#/parameters/page"
171       - $ref: "../swagger.yaml#/parameters/per_page"
172       - $ref: "../swagger.yaml#/parameters/q_param"
173       - $ref: "../swagger.yaml#/parameters/q_body"
174       - $ref: "../swagger.yaml#/parameters/q_header"
175       - $ref: "../swagger.yaml#/parameters/request_id_header"
176     consumes:
177       - application/json
178     produces:
179       - application/json
180     responses:
181       "200":
182         description: A list of the items attached to the record
183         schema:
184           type: array
185           items:
186             $ref: "../swagger.yaml#/definitions/item"
187       "401":
188         description: Authentication required
189         schema:
190           $ref: "../swagger.yaml#/definitions/error"
191       "403":
192         description: Access forbidden
193         schema:
194           $ref: "../swagger.yaml#/definitions/error"
195       "404":
196         description: Biblio not found
197         schema:
198           $ref: "../swagger.yaml#/definitions/error"
199       "406":
200         description: Not acceptable
201         schema:
202           type: array
203           description: Accepted content-types
204           items:
205             type: string
206       "500":
207         description: |
208           Internal server error. Possible `error_code` attribute values:
209
210           * `internal_server_error`
211         schema:
212           $ref: "../swagger.yaml#/definitions/error"
213       "503":
214         description: Under maintenance
215         schema:
216           $ref: "../swagger.yaml#/definitions/error"
217     x-koha-authorization:
218       permissions:
219         catalogue: "1"
220 "/biblios/{biblio_id}/pickup_locations":
221   get:
222     x-mojo-to: Biblios#pickup_locations
223     operationId: getBiblioPickupLocations
224     tags:
225       - biblios
226     summary: Get valid pickup locations for a biblio
227     parameters:
228       - $ref: "../swagger.yaml#/parameters/biblio_id_pp"
229       - name: patron_id
230         in: query
231         description: Internal patron identifier
232         required: true
233         type: integer
234       - $ref: "../swagger.yaml#/parameters/match"
235       - $ref: "../swagger.yaml#/parameters/order_by"
236       - $ref: "../swagger.yaml#/parameters/page"
237       - $ref: "../swagger.yaml#/parameters/per_page"
238       - $ref: "../swagger.yaml#/parameters/q_param"
239       - $ref: "../swagger.yaml#/parameters/q_body"
240       - $ref: "../swagger.yaml#/parameters/q_header"
241     consumes:
242       - application/json
243     produces:
244       - application/json
245     responses:
246       "200":
247         description: Biblio pickup locations
248         schema:
249           type: array
250           items:
251             $ref: "../swagger.yaml#/definitions/library"
252       "400":
253         description: Missing or wrong parameters
254         schema:
255           $ref: "../swagger.yaml#/definitions/error"
256       "401":
257         description: Authentication required
258         schema:
259           $ref: "../swagger.yaml#/definitions/error"
260       "403":
261         description: Access forbidden
262         schema:
263           $ref: "../swagger.yaml#/definitions/error"
264       "404":
265         description: Biblio not found
266         schema:
267           $ref: "../swagger.yaml#/definitions/error"
268       "500":
269         description: |
270           Internal server error. Possible `error_code` attribute values:
271
272           * `internal_server_error`
273         schema:
274           $ref: "../swagger.yaml#/definitions/error"
275       "503":
276         description: Under maintenance
277         schema:
278           $ref: "../swagger.yaml#/definitions/error"
279     x-koha-authorization:
280       permissions:
281         reserveforothers: place_holds
282 "/public/biblios/{biblio_id}":
283   get:
284     x-mojo-to: Biblios#get_public
285     operationId: getBiblioPublic
286     tags:
287       - biblios
288     summary: Get biblio (public)
289     parameters:
290       - $ref: "../swagger.yaml#/parameters/biblio_id_pp"
291     produces:
292       - application/marcxml+xml
293       - application/marc-in-json
294       - application/marc
295       - text/plain
296     responses:
297       "200":
298         description: A biblio
299       "401":
300         description: Authentication required
301         schema:
302           $ref: "../swagger.yaml#/definitions/error"
303       "403":
304         description: Access forbidden
305         schema:
306           $ref: "../swagger.yaml#/definitions/error"
307       "404":
308         description: Biblio not found
309         schema:
310           $ref: "../swagger.yaml#/definitions/error"
311       "406":
312         description: Not acceptable
313         schema:
314           type: array
315           description: Accepted content-types
316           items:
317             type: string
318       "500":
319         description: |
320           Internal server error. Possible `error_code` attribute values:
321
322           * `internal_server_error`
323         schema:
324           $ref: "../swagger.yaml#/definitions/error"
325       "503":
326         description: Under maintenance
327         schema:
328           $ref: "../swagger.yaml#/definitions/error"
329 "/public/biblios/{biblio_id}/items":
330   get:
331     x-mojo-to: Biblios#get_items_public
332     operationId: getBiblioItemsPublic
333     tags:
334       - biblios
335       - items
336     parameters:
337       - $ref: "../swagger.yaml#/parameters/biblio_id_pp"
338       - $ref: "../swagger.yaml#/parameters/match"
339       - $ref: "../swagger.yaml#/parameters/order_by"
340       - $ref: "../swagger.yaml#/parameters/page"
341       - $ref: "../swagger.yaml#/parameters/per_page"
342       - $ref: "../swagger.yaml#/parameters/q_param"
343       - $ref: "../swagger.yaml#/parameters/q_body"
344       - $ref: "../swagger.yaml#/parameters/q_header"
345     consumes:
346       - application/json
347     produces:
348       - application/json
349     responses:
350       "200":
351         description: A list of the items attached to the record
352         schema:
353           type: array
354           items:
355             $ref: "../swagger.yaml#/definitions/item"
356       "401":
357         description: Authentication required
358         schema:
359           $ref: "../swagger.yaml#/definitions/error"
360       "403":
361         description: Access forbidden
362         schema:
363           $ref: "../swagger.yaml#/definitions/error"
364       "404":
365         description: Biblio not found
366         schema:
367           $ref: "../swagger.yaml#/definitions/error"
368       "406":
369         description: Not acceptable
370         schema:
371           type: array
372           description: Accepted content-types
373           items:
374             type: string
375       "500":
376         description: |
377           Internal server error. Possible `error_code` attribute values:
378
379           * `internal_server_error`
380         schema:
381           $ref: "../swagger.yaml#/definitions/error"
382       "503":
383         description: Under maintenance
384         schema:
385           $ref: "../swagger.yaml#/definitions/error"
386 "/public/biblios/{biblio_id}/ratings":
387   post:
388     x-mojo-to: Biblios#set_rating
389     operationId: setBiblioRating
390     tags:
391       - biblios
392     summary: set biblio rating (public)
393     parameters:
394       - $ref: "../swagger.yaml#/parameters/biblio_id_pp"
395       - name: body
396         in: body
397         description: A JSON object containing rating information
398         schema:
399           type: object
400           properties:
401             rating:
402               description: the rating
403               type:
404                 - integer
405                 - "null"
406           required:
407               - rating
408           additionalProperties: false
409     produces:
410       - application/json
411     responses:
412       "200":
413         description: Rating set
414         schema:
415           type: object
416           properties:
417             rating:
418               description: user's rating
419               type:
420                 - number
421                 - "null"
422             average:
423               description: average rating
424               type: number
425             count:
426               description: number of ratings
427               type: integer
428           additionalProperties: false
429       "401":
430         description: Authentication required
431         schema:
432           $ref: "../swagger.yaml#/definitions/error"
433       "403":
434         description: Access forbidden
435         schema:
436           $ref: "../swagger.yaml#/definitions/error"
437       "404":
438         description: Biblio not found
439         schema:
440           $ref: "../swagger.yaml#/definitions/error"
441       "500":
442         description: |
443           Internal server error. Possible `error_code` attribute values:
444
445           * `internal_server_error`
446         schema:
447           $ref: "../swagger.yaml#/definitions/error"
448       "503":
449         description: Under maintenance
450         schema:
451           $ref: "../swagger.yaml#/definitions/error"