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