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