fork of hey-api/openapi-ts because I need some additional things
1// This file is auto-generated by @hey-api/openapi-ts
2
3import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/vue-query'
4
5import { client } from '../client.gen'
6import {
7 addPet,
8 createUser,
9 createUsersWithListInput,
10 deleteOrder,
11 deletePet,
12 deleteUser,
13 findPetsByStatus,
14 findPetsByTags,
15 getInventory,
16 getOrderById,
17 getPetById,
18 getUserByName,
19 loginUser,
20 logoutUser,
21 type Options,
22 placeOrder,
23 updatePet,
24 updatePetWithForm,
25 updateUser,
26 uploadFile
27} from '../sdk.gen'
28import type {
29 AddPetData,
30 AddPetResponse,
31 CreateUserData,
32 CreateUserResponse,
33 CreateUsersWithListInputData,
34 CreateUsersWithListInputResponse,
35 DeleteOrderData,
36 DeletePetData,
37 DeleteUserData,
38 FindPetsByStatusData,
39 FindPetsByStatusResponse,
40 FindPetsByTagsData,
41 FindPetsByTagsResponse,
42 GetInventoryData,
43 GetInventoryResponse,
44 GetOrderByIdData,
45 GetOrderByIdResponse,
46 GetPetByIdData,
47 GetPetByIdResponse,
48 GetUserByNameData,
49 GetUserByNameResponse,
50 LoginUserData,
51 LoginUserResponse,
52 LogoutUserData,
53 PlaceOrderData,
54 PlaceOrderResponse,
55 UpdatePetData,
56 UpdatePetResponse,
57 UpdatePetWithFormData,
58 UpdatePetWithFormResponse,
59 UpdateUserData,
60 UploadFileData,
61 UploadFileResponse
62} from '../types.gen'
63
64/**
65 * Add a new pet to the store.
66 *
67 * Add a new pet to the store.
68 */
69export const addPetMutation = (
70 options?: Partial<Options<AddPetData>>
71): UseMutationOptions<AddPetResponse, DefaultError, Options<AddPetData>> => {
72 const mutationOptions: UseMutationOptions<AddPetResponse, DefaultError, Options<AddPetData>> = {
73 mutationFn: async (fnOptions) => {
74 const { data } = await addPet({
75 ...options,
76 ...fnOptions,
77 throwOnError: true
78 })
79 return data
80 }
81 }
82 return mutationOptions
83}
84
85/**
86 * Update an existing pet.
87 *
88 * Update an existing pet by Id.
89 */
90export const updatePetMutation = (
91 options?: Partial<Options<UpdatePetData>>
92): UseMutationOptions<UpdatePetResponse, DefaultError, Options<UpdatePetData>> => {
93 const mutationOptions: UseMutationOptions<
94 UpdatePetResponse,
95 DefaultError,
96 Options<UpdatePetData>
97 > = {
98 mutationFn: async (fnOptions) => {
99 const { data } = await updatePet({
100 ...options,
101 ...fnOptions,
102 throwOnError: true
103 })
104 return data
105 }
106 }
107 return mutationOptions
108}
109
110export type QueryKey<TOptions extends Options> = [
111 Pick<TOptions, 'baseUrl' | 'body' | 'headers' | 'path' | 'query'> & {
112 _id: string
113 _infinite?: boolean
114 tags?: ReadonlyArray<string>
115 }
116]
117
118const createQueryKey = <TOptions extends Options>(
119 id: string,
120 options?: TOptions,
121 infinite?: boolean,
122 tags?: ReadonlyArray<string>
123): [QueryKey<TOptions>[0]] => {
124 const params: QueryKey<TOptions>[0] = {
125 _id: id,
126 baseUrl: options?.baseUrl || (options?.client ?? client).getConfig().baseUrl
127 } as QueryKey<TOptions>[0]
128 if (infinite) {
129 params._infinite = infinite
130 }
131 if (tags) {
132 params.tags = tags
133 }
134 if (options?.body) {
135 params.body = options.body
136 }
137 if (options?.headers) {
138 params.headers = options.headers
139 }
140 if (options?.path) {
141 params.path = options.path
142 }
143 if (options?.query) {
144 params.query = options.query
145 }
146 return [params]
147}
148
149export const findPetsByStatusQueryKey = (options: Options<FindPetsByStatusData>) =>
150 createQueryKey('findPetsByStatus', options)
151
152/**
153 * Finds Pets by status.
154 *
155 * Multiple status values can be provided with comma separated strings.
156 */
157export const findPetsByStatusOptions = (options: Options<FindPetsByStatusData>) =>
158 queryOptions<
159 FindPetsByStatusResponse,
160 DefaultError,
161 FindPetsByStatusResponse,
162 ReturnType<typeof findPetsByStatusQueryKey>
163 >({
164 queryFn: async ({ queryKey, signal }) => {
165 const { data } = await findPetsByStatus({
166 ...options,
167 ...queryKey[0],
168 signal,
169 throwOnError: true
170 })
171 return data
172 },
173 queryKey: findPetsByStatusQueryKey(options)
174 })
175
176export const findPetsByTagsQueryKey = (options: Options<FindPetsByTagsData>) =>
177 createQueryKey('findPetsByTags', options)
178
179/**
180 * Finds Pets by tags.
181 *
182 * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
183 */
184export const findPetsByTagsOptions = (options: Options<FindPetsByTagsData>) =>
185 queryOptions<
186 FindPetsByTagsResponse,
187 DefaultError,
188 FindPetsByTagsResponse,
189 ReturnType<typeof findPetsByTagsQueryKey>
190 >({
191 queryFn: async ({ queryKey, signal }) => {
192 const { data } = await findPetsByTags({
193 ...options,
194 ...queryKey[0],
195 signal,
196 throwOnError: true
197 })
198 return data
199 },
200 queryKey: findPetsByTagsQueryKey(options)
201 })
202
203/**
204 * Deletes a pet.
205 *
206 * Delete a pet.
207 */
208export const deletePetMutation = (
209 options?: Partial<Options<DeletePetData>>
210): UseMutationOptions<unknown, DefaultError, Options<DeletePetData>> => {
211 const mutationOptions: UseMutationOptions<unknown, DefaultError, Options<DeletePetData>> = {
212 mutationFn: async (fnOptions) => {
213 const { data } = await deletePet({
214 ...options,
215 ...fnOptions,
216 throwOnError: true
217 })
218 return data
219 }
220 }
221 return mutationOptions
222}
223
224export const getPetByIdQueryKey = (options: Options<GetPetByIdData>) =>
225 createQueryKey('getPetById', options)
226
227/**
228 * Find pet by ID.
229 *
230 * Returns a single pet.
231 */
232export const getPetByIdOptions = (options: Options<GetPetByIdData>) =>
233 queryOptions<
234 GetPetByIdResponse,
235 DefaultError,
236 GetPetByIdResponse,
237 ReturnType<typeof getPetByIdQueryKey>
238 >({
239 queryFn: async ({ queryKey, signal }) => {
240 const { data } = await getPetById({
241 ...options,
242 ...queryKey[0],
243 signal,
244 throwOnError: true
245 })
246 return data
247 },
248 queryKey: getPetByIdQueryKey(options)
249 })
250
251/**
252 * Updates a pet in the store with form data.
253 *
254 * Updates a pet resource based on the form data.
255 */
256export const updatePetWithFormMutation = (
257 options?: Partial<Options<UpdatePetWithFormData>>
258): UseMutationOptions<UpdatePetWithFormResponse, DefaultError, Options<UpdatePetWithFormData>> => {
259 const mutationOptions: UseMutationOptions<
260 UpdatePetWithFormResponse,
261 DefaultError,
262 Options<UpdatePetWithFormData>
263 > = {
264 mutationFn: async (fnOptions) => {
265 const { data } = await updatePetWithForm({
266 ...options,
267 ...fnOptions,
268 throwOnError: true
269 })
270 return data
271 }
272 }
273 return mutationOptions
274}
275
276/**
277 * Uploads an image.
278 *
279 * Upload image of the pet.
280 */
281export const uploadFileMutation = (
282 options?: Partial<Options<UploadFileData>>
283): UseMutationOptions<UploadFileResponse, DefaultError, Options<UploadFileData>> => {
284 const mutationOptions: UseMutationOptions<
285 UploadFileResponse,
286 DefaultError,
287 Options<UploadFileData>
288 > = {
289 mutationFn: async (fnOptions) => {
290 const { data } = await uploadFile({
291 ...options,
292 ...fnOptions,
293 throwOnError: true
294 })
295 return data
296 }
297 }
298 return mutationOptions
299}
300
301export const getInventoryQueryKey = (options?: Options<GetInventoryData>) =>
302 createQueryKey('getInventory', options)
303
304/**
305 * Returns pet inventories by status.
306 *
307 * Returns a map of status codes to quantities.
308 */
309export const getInventoryOptions = (options?: Options<GetInventoryData>) =>
310 queryOptions<
311 GetInventoryResponse,
312 DefaultError,
313 GetInventoryResponse,
314 ReturnType<typeof getInventoryQueryKey>
315 >({
316 queryFn: async ({ queryKey, signal }) => {
317 const { data } = await getInventory({
318 ...options,
319 ...queryKey[0],
320 signal,
321 throwOnError: true
322 })
323 return data
324 },
325 queryKey: getInventoryQueryKey(options)
326 })
327
328/**
329 * Place an order for a pet.
330 *
331 * Place a new order in the store.
332 */
333export const placeOrderMutation = (
334 options?: Partial<Options<PlaceOrderData>>
335): UseMutationOptions<PlaceOrderResponse, DefaultError, Options<PlaceOrderData>> => {
336 const mutationOptions: UseMutationOptions<
337 PlaceOrderResponse,
338 DefaultError,
339 Options<PlaceOrderData>
340 > = {
341 mutationFn: async (fnOptions) => {
342 const { data } = await placeOrder({
343 ...options,
344 ...fnOptions,
345 throwOnError: true
346 })
347 return data
348 }
349 }
350 return mutationOptions
351}
352
353/**
354 * Delete purchase order by identifier.
355 *
356 * For valid response try integer IDs with value < 1000. Anything above 1000 or non-integers will generate API errors.
357 */
358export const deleteOrderMutation = (
359 options?: Partial<Options<DeleteOrderData>>
360): UseMutationOptions<unknown, DefaultError, Options<DeleteOrderData>> => {
361 const mutationOptions: UseMutationOptions<unknown, DefaultError, Options<DeleteOrderData>> = {
362 mutationFn: async (fnOptions) => {
363 const { data } = await deleteOrder({
364 ...options,
365 ...fnOptions,
366 throwOnError: true
367 })
368 return data
369 }
370 }
371 return mutationOptions
372}
373
374export const getOrderByIdQueryKey = (options: Options<GetOrderByIdData>) =>
375 createQueryKey('getOrderById', options)
376
377/**
378 * Find purchase order by ID.
379 *
380 * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions.
381 */
382export const getOrderByIdOptions = (options: Options<GetOrderByIdData>) =>
383 queryOptions<
384 GetOrderByIdResponse,
385 DefaultError,
386 GetOrderByIdResponse,
387 ReturnType<typeof getOrderByIdQueryKey>
388 >({
389 queryFn: async ({ queryKey, signal }) => {
390 const { data } = await getOrderById({
391 ...options,
392 ...queryKey[0],
393 signal,
394 throwOnError: true
395 })
396 return data
397 },
398 queryKey: getOrderByIdQueryKey(options)
399 })
400
401/**
402 * Create user.
403 *
404 * This can only be done by the logged in user.
405 */
406export const createUserMutation = (
407 options?: Partial<Options<CreateUserData>>
408): UseMutationOptions<CreateUserResponse, DefaultError, Options<CreateUserData>> => {
409 const mutationOptions: UseMutationOptions<
410 CreateUserResponse,
411 DefaultError,
412 Options<CreateUserData>
413 > = {
414 mutationFn: async (fnOptions) => {
415 const { data } = await createUser({
416 ...options,
417 ...fnOptions,
418 throwOnError: true
419 })
420 return data
421 }
422 }
423 return mutationOptions
424}
425
426/**
427 * Creates list of users with given input array.
428 *
429 * Creates list of users with given input array.
430 */
431export const createUsersWithListInputMutation = (
432 options?: Partial<Options<CreateUsersWithListInputData>>
433): UseMutationOptions<
434 CreateUsersWithListInputResponse,
435 DefaultError,
436 Options<CreateUsersWithListInputData>
437> => {
438 const mutationOptions: UseMutationOptions<
439 CreateUsersWithListInputResponse,
440 DefaultError,
441 Options<CreateUsersWithListInputData>
442 > = {
443 mutationFn: async (fnOptions) => {
444 const { data } = await createUsersWithListInput({
445 ...options,
446 ...fnOptions,
447 throwOnError: true
448 })
449 return data
450 }
451 }
452 return mutationOptions
453}
454
455export const loginUserQueryKey = (options?: Options<LoginUserData>) =>
456 createQueryKey('loginUser', options)
457
458/**
459 * Logs user into the system.
460 *
461 * Log into the system.
462 */
463export const loginUserOptions = (options?: Options<LoginUserData>) =>
464 queryOptions<
465 LoginUserResponse,
466 DefaultError,
467 LoginUserResponse,
468 ReturnType<typeof loginUserQueryKey>
469 >({
470 queryFn: async ({ queryKey, signal }) => {
471 const { data } = await loginUser({
472 ...options,
473 ...queryKey[0],
474 signal,
475 throwOnError: true
476 })
477 return data
478 },
479 queryKey: loginUserQueryKey(options)
480 })
481
482export const logoutUserQueryKey = (options?: Options<LogoutUserData>) =>
483 createQueryKey('logoutUser', options)
484
485/**
486 * Logs out current logged in user session.
487 *
488 * Log user out of the system.
489 */
490export const logoutUserOptions = (options?: Options<LogoutUserData>) =>
491 queryOptions<unknown, DefaultError, unknown, ReturnType<typeof logoutUserQueryKey>>({
492 queryFn: async ({ queryKey, signal }) => {
493 const { data } = await logoutUser({
494 ...options,
495 ...queryKey[0],
496 signal,
497 throwOnError: true
498 })
499 return data
500 },
501 queryKey: logoutUserQueryKey(options)
502 })
503
504/**
505 * Delete user resource.
506 *
507 * This can only be done by the logged in user.
508 */
509export const deleteUserMutation = (
510 options?: Partial<Options<DeleteUserData>>
511): UseMutationOptions<unknown, DefaultError, Options<DeleteUserData>> => {
512 const mutationOptions: UseMutationOptions<unknown, DefaultError, Options<DeleteUserData>> = {
513 mutationFn: async (fnOptions) => {
514 const { data } = await deleteUser({
515 ...options,
516 ...fnOptions,
517 throwOnError: true
518 })
519 return data
520 }
521 }
522 return mutationOptions
523}
524
525export const getUserByNameQueryKey = (options: Options<GetUserByNameData>) =>
526 createQueryKey('getUserByName', options)
527
528/**
529 * Get user by user name.
530 *
531 * Get user detail based on username.
532 */
533export const getUserByNameOptions = (options: Options<GetUserByNameData>) =>
534 queryOptions<
535 GetUserByNameResponse,
536 DefaultError,
537 GetUserByNameResponse,
538 ReturnType<typeof getUserByNameQueryKey>
539 >({
540 queryFn: async ({ queryKey, signal }) => {
541 const { data } = await getUserByName({
542 ...options,
543 ...queryKey[0],
544 signal,
545 throwOnError: true
546 })
547 return data
548 },
549 queryKey: getUserByNameQueryKey(options)
550 })
551
552/**
553 * Update user resource.
554 *
555 * This can only be done by the logged in user.
556 */
557export const updateUserMutation = (
558 options?: Partial<Options<UpdateUserData>>
559): UseMutationOptions<unknown, DefaultError, Options<UpdateUserData>> => {
560 const mutationOptions: UseMutationOptions<unknown, DefaultError, Options<UpdateUserData>> = {
561 mutationFn: async (fnOptions) => {
562 const { data } = await updateUser({
563 ...options,
564 ...fnOptions,
565 throwOnError: true
566 })
567 return data
568 }
569 }
570 return mutationOptions
571}