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};