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