Bug 30394: Add x-koha-request-id support on API routes
[koha.git] / api / v1 / swagger / paths / acquisitions_orders.yaml
1 ---
2 /acquisitions/orders:
3   get:
4     x-mojo-to: Acquisitions::Orders#list
5     operationId: listOrders
6     tags:
7       - orders
8     summary: List orders
9     produces:
10       - application/json
11     parameters:
12       - name: biblio_id
13         in: query
14         description: Identifier for a linked bibliographic record
15         required: false
16         type: integer
17       - name: basket_id
18         in: query
19         description: Identifier for a linked acquisition basket
20         required: false
21         type: integer
22       - name: fund_id
23         in: query
24         description: Identifier for the fund the order goes against
25         required: false
26         type: integer
27       - name: status
28         in: query
29         description: Current status for the order. Can be 'new', 'ordered', 'partial',
30           'complete' or 'cancelled'
31         required: false
32         type: string
33       - name: only_active
34         in: query
35         description: If only active orders should be listed
36         required: false
37         type: boolean
38       - $ref: "../swagger.yaml#/parameters/match"
39       - $ref: "../swagger.yaml#/parameters/order_by"
40       - $ref: "../swagger.yaml#/parameters/page"
41       - $ref: "../swagger.yaml#/parameters/per_page"
42       - $ref: "../swagger.yaml#/parameters/q_param"
43       - $ref: "../swagger.yaml#/parameters/q_body"
44       - $ref: "../swagger.yaml#/parameters/q_header"
45       - $ref: "../swagger.yaml#/parameters/request_id_header"
46     responses:
47       "200":
48         description: A list of orders
49         schema:
50           type: array
51           items:
52             $ref: "../swagger.yaml#/definitions/order"
53       "401":
54         description: Authentication required
55         schema:
56           $ref: "../swagger.yaml#/definitions/error"
57       "403":
58         description: Access forbidden
59         schema:
60           $ref: "../swagger.yaml#/definitions/error"
61       "404":
62         description: Order not found
63         schema:
64           $ref: "../swagger.yaml#/definitions/error"
65       "500":
66         description: |
67           Internal server error. Possible `error_code` attribute values:
68
69           * `internal_server_error`
70         schema:
71           $ref: "../swagger.yaml#/definitions/error"
72       "503":
73         description: Under maintenance
74         schema:
75           $ref: "../swagger.yaml#/definitions/error"
76     x-koha-authorization:
77       permissions:
78         acquisition:
79           - order_manage
80           - order_manage_all
81     x-koha-embed:
82       - basket
83       - basket.basket_group
84       - basket.creator
85       - biblio
86       - biblio.active_orders+count
87       - biblio.holds+count
88       - biblio.items+count
89       - biblio.suggestions.suggester
90       - fund
91       - current_item_level_holds+count
92       - invoice
93       - items
94       - subscription
95   post:
96     x-mojo-to: Acquisitions::Orders#add
97     operationId: addOrder
98     tags:
99       - orders
100     summary: Add order
101     parameters:
102       - name: body
103         in: body
104         description: A JSON object representing an order
105         required: true
106         schema:
107           $ref: "../swagger.yaml#/definitions/order"
108     produces:
109       - application/json
110     responses:
111       "201":
112         description: Order added
113         schema:
114           $ref: "../swagger.yaml#/definitions/order"
115       "400":
116         description: Bad request
117         schema:
118           $ref: "../swagger.yaml#/definitions/error"
119       "401":
120         description: Authentication required
121         schema:
122           $ref: "../swagger.yaml#/definitions/error"
123       "403":
124         description: Access forbidden
125         schema:
126           $ref: "../swagger.yaml#/definitions/error"
127       "409":
128         description: Conflict in creating the resource
129         schema:
130           $ref: "../swagger.yaml#/definitions/error"
131       "500":
132         description: |
133           Internal server error. Possible `error_code` attribute values:
134
135           * `internal_server_error`
136         schema:
137           $ref: "../swagger.yaml#/definitions/error"
138       "503":
139         description: Under maintenance
140         schema:
141           $ref: "../swagger.yaml#/definitions/error"
142     x-koha-authorization:
143       permissions:
144         acquisition: order_manage
145 "/acquisitions/orders/{order_id}":
146   get:
147     x-mojo-to: Acquisitions::Orders#get
148     operationId: getOrder
149     tags:
150       - orders
151     summary: Get order
152     parameters:
153       - $ref: "../swagger.yaml#/parameters/order_id_pp"
154     produces:
155       - application/json
156     responses:
157       "200":
158         description: An order
159         schema:
160           $ref: "../swagger.yaml#/definitions/order"
161       "401":
162         description: Authentication required
163         schema:
164           $ref: "../swagger.yaml#/definitions/error"
165       "403":
166         description: Access forbidden
167         schema:
168           $ref: "../swagger.yaml#/definitions/error"
169       "404":
170         description: Order not found
171         schema:
172           $ref: "../swagger.yaml#/definitions/error"
173       "500":
174         description: |
175           Internal server error. Possible `error_code` attribute values:
176
177           * `internal_server_error`
178         schema:
179           $ref: "../swagger.yaml#/definitions/error"
180       "503":
181         description: Under maintenance
182         schema:
183           $ref: "../swagger.yaml#/definitions/error"
184     x-koha-authorization:
185       permissions:
186         acquisition: order_manage
187     x-koha-embed:
188       - basket
189       - basket.basket_group
190       - basket.creator
191       - biblio
192       - biblio.active_orders+count
193       - biblio.holds+count
194       - biblio.items+count
195       - biblio.suggestions.suggester
196       - fund
197       - current_item_level_holds+count
198       - invoice
199       - items
200       - subscription
201   put:
202     x-mojo-to: Acquisitions::Orders#update
203     operationId: updateOrder
204     tags:
205       - orders
206     summary: Update order
207     parameters:
208       - $ref: "../swagger.yaml#/parameters/order_id_pp"
209       - name: body
210         in: body
211         description: A JSON object representing an order
212         required: true
213         schema:
214           $ref: "../swagger.yaml#/definitions/order"
215     produces:
216       - application/json
217     responses:
218       "200":
219         description: An order
220         schema:
221           $ref: "../swagger.yaml#/definitions/order"
222       "401":
223         description: Authentication required
224         schema:
225           $ref: "../swagger.yaml#/definitions/error"
226       "403":
227         description: Access forbidden
228         schema:
229           $ref: "../swagger.yaml#/definitions/error"
230       "404":
231         description: Order not found
232         schema:
233           $ref: "../swagger.yaml#/definitions/error"
234       "500":
235         description: |
236           Internal server error. Possible `error_code` attribute values:
237
238           * `internal_server_error`
239         schema:
240           $ref: "../swagger.yaml#/definitions/error"
241       "503":
242         description: Under maintenance
243         schema:
244           $ref: "../swagger.yaml#/definitions/error"
245     x-koha-authorization:
246       permissions:
247         acquisition: order_manage
248   delete:
249     x-mojo-to: Acquisitions::Orders#delete
250     operationId: deleteOrder
251     tags:
252       - orders
253     summary: Delete order
254     parameters:
255       - $ref: "../swagger.yaml#/parameters/order_id_pp"
256     produces:
257       - application/json
258     responses:
259       "204":
260         description: Order deleted
261       "401":
262         description: Authentication required
263         schema:
264           $ref: "../swagger.yaml#/definitions/error"
265       "403":
266         description: Access forbidden
267         schema:
268           $ref: "../swagger.yaml#/definitions/error"
269       "404":
270         description: Order not found
271         schema:
272           $ref: "../swagger.yaml#/definitions/error"
273       "500":
274         description: |
275           Internal server error. Possible `error_code` attribute values:
276
277           * `internal_server_error`
278         schema:
279           $ref: "../swagger.yaml#/definitions/error"
280       "503":
281         description: Under maintenance
282         schema:
283           $ref: "../swagger.yaml#/definitions/error"
284     x-koha-authorization:
285       permissions:
286         acquisition: order_manage