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