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 _JSONValue, defineQueryOptions, type UseMutationOptions } from '@pinia/colada'
4
5import { serializeQueryKeyValue } from '../client'
6import { client } from '../client.gen'
7import {
8 addPet,
9 createUser,
10 createUsersWithListInput,
11 deleteOrder,
12 deletePet,
13 deleteUser,
14 findPetsByStatus,
15 findPetsByTags,
16 getInventory,
17 getOrderById,
18 getPetById,
19 getUserByName,
20 loginUser,
21 logoutUser,
22 type Options,
23 placeOrder,
24 updatePet,
25 updatePetWithForm,
26 updateUser,
27 uploadFile
28} from '../sdk.gen'
29import type {
30 AddPetData,
31 AddPetResponse,
32 CreateUserData,
33 CreateUserResponse,
34 CreateUsersWithListInputData,
35 CreateUsersWithListInputResponse,
36 DeleteOrderData,
37 DeletePetData,
38 DeleteUserData,
39 FindPetsByStatusData,
40 FindPetsByTagsData,
41 GetInventoryData,
42 GetOrderByIdData,
43 GetPetByIdData,
44 GetUserByNameData,
45 LoginUserData,
46 LogoutUserData,
47 PlaceOrderData,
48 PlaceOrderResponse,
49 UpdatePetData,
50 UpdatePetResponse,
51 UpdatePetWithFormData,
52 UpdatePetWithFormResponse,
53 UpdateUserData,
54 UploadFileData,
55 UploadFileResponse
56} from '../types.gen'
57
58/**
59 * Add a new pet to the store.
60 *
61 * Add a new pet to the store.
62 */
63export const addPetMutation = (
64 options?: Partial<Options<AddPetData>>
65): UseMutationOptions<AddPetResponse, Options<AddPetData>, Error> => ({
66 mutation: async (vars) => {
67 const { data } = await addPet({
68 ...options,
69 ...vars,
70 throwOnError: true
71 })
72 return data
73 }
74})
75
76/**
77 * Update an existing pet.
78 *
79 * Update an existing pet by Id.
80 */
81export const updatePetMutation = (
82 options?: Partial<Options<UpdatePetData>>
83): UseMutationOptions<UpdatePetResponse, Options<UpdatePetData>, Error> => ({
84 mutation: async (vars) => {
85 const { data } = await updatePet({
86 ...options,
87 ...vars,
88 throwOnError: true
89 })
90 return data
91 }
92})
93
94export type QueryKey<TOptions extends Options> = [
95 Pick<TOptions, 'path'> & {
96 _id: string
97 baseUrl?: _JSONValue
98 body?: _JSONValue
99 query?: _JSONValue
100 tags?: _JSONValue
101 }
102]
103
104const createQueryKey = <TOptions extends Options>(
105 id: string,
106 options?: TOptions,
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 (tags) {
114 params.tags = tags as unknown as _JSONValue
115 }
116 if (options?.body !== undefined) {
117 const normalizedBody = serializeQueryKeyValue(options.body)
118 if (normalizedBody !== undefined) {
119 params.body = normalizedBody
120 }
121 }
122 if (options?.path) {
123 params.path = options.path
124 }
125 if (options?.query !== undefined) {
126 const normalizedQuery = serializeQueryKeyValue(options.query)
127 if (normalizedQuery !== undefined) {
128 params.query = normalizedQuery
129 }
130 }
131 return [params]
132}
133
134/**
135 * Finds Pets by status.
136 *
137 * Multiple status values can be provided with comma separated strings.
138 */
139export const findPetsByStatusQuery = defineQueryOptions(
140 (options: Options<FindPetsByStatusData>) => ({
141 key: createQueryKey('findPetsByStatus', options),
142 query: async (context) => {
143 const { data } = await findPetsByStatus({
144 ...options,
145 ...context,
146 throwOnError: true
147 })
148 return data
149 }
150 })
151)
152
153/**
154 * Finds Pets by tags.
155 *
156 * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
157 */
158export const findPetsByTagsQuery = defineQueryOptions((options: Options<FindPetsByTagsData>) => ({
159 key: createQueryKey('findPetsByTags', options),
160 query: async (context) => {
161 const { data } = await findPetsByTags({
162 ...options,
163 ...context,
164 throwOnError: true
165 })
166 return data
167 }
168}))
169
170/**
171 * Deletes a pet.
172 *
173 * Delete a pet.
174 */
175export const deletePetMutation = (
176 options?: Partial<Options<DeletePetData>>
177): UseMutationOptions<unknown, Options<DeletePetData>, Error> => ({
178 mutation: async (vars) => {
179 const { data } = await deletePet({
180 ...options,
181 ...vars,
182 throwOnError: true
183 })
184 return data
185 }
186})
187
188/**
189 * Find pet by ID.
190 *
191 * Returns a single pet.
192 */
193export const getPetByIdQuery = defineQueryOptions((options: Options<GetPetByIdData>) => ({
194 key: createQueryKey('getPetById', options),
195 query: async (context) => {
196 const { data } = await getPetById({
197 ...options,
198 ...context,
199 throwOnError: true
200 })
201 return data
202 }
203}))
204
205/**
206 * Updates a pet in the store with form data.
207 *
208 * Updates a pet resource based on the form data.
209 */
210export const updatePetWithFormMutation = (
211 options?: Partial<Options<UpdatePetWithFormData>>
212): UseMutationOptions<UpdatePetWithFormResponse, Options<UpdatePetWithFormData>, Error> => ({
213 mutation: async (vars) => {
214 const { data } = await updatePetWithForm({
215 ...options,
216 ...vars,
217 throwOnError: true
218 })
219 return data
220 }
221})
222
223/**
224 * Uploads an image.
225 *
226 * Upload image of the pet.
227 */
228export const uploadFileMutation = (
229 options?: Partial<Options<UploadFileData>>
230): UseMutationOptions<UploadFileResponse, Options<UploadFileData>, Error> => ({
231 mutation: async (vars) => {
232 const { data } = await uploadFile({
233 ...options,
234 ...vars,
235 throwOnError: true
236 })
237 return data
238 }
239})
240
241/**
242 * Returns pet inventories by status.
243 *
244 * Returns a map of status codes to quantities.
245 */
246export const getInventoryQuery = defineQueryOptions((options?: Options<GetInventoryData>) => ({
247 key: createQueryKey('getInventory', options),
248 query: async (context) => {
249 const { data } = await getInventory({
250 ...options,
251 ...context,
252 throwOnError: true
253 })
254 return data
255 }
256}))
257
258/**
259 * Place an order for a pet.
260 *
261 * Place a new order in the store.
262 */
263export const placeOrderMutation = (
264 options?: Partial<Options<PlaceOrderData>>
265): UseMutationOptions<PlaceOrderResponse, Options<PlaceOrderData>, Error> => ({
266 mutation: async (vars) => {
267 const { data } = await placeOrder({
268 ...options,
269 ...vars,
270 throwOnError: true
271 })
272 return data
273 }
274})
275
276/**
277 * Delete purchase order by identifier.
278 *
279 * For valid response try integer IDs with value < 1000. Anything above 1000 or non-integers will generate API errors.
280 */
281export const deleteOrderMutation = (
282 options?: Partial<Options<DeleteOrderData>>
283): UseMutationOptions<unknown, Options<DeleteOrderData>, Error> => ({
284 mutation: async (vars) => {
285 const { data } = await deleteOrder({
286 ...options,
287 ...vars,
288 throwOnError: true
289 })
290 return data
291 }
292})
293
294/**
295 * Find purchase order by ID.
296 *
297 * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions.
298 */
299export const getOrderByIdQuery = defineQueryOptions((options: Options<GetOrderByIdData>) => ({
300 key: createQueryKey('getOrderById', options),
301 query: async (context) => {
302 const { data } = await getOrderById({
303 ...options,
304 ...context,
305 throwOnError: true
306 })
307 return data
308 }
309}))
310
311/**
312 * Create user.
313 *
314 * This can only be done by the logged in user.
315 */
316export const createUserMutation = (
317 options?: Partial<Options<CreateUserData>>
318): UseMutationOptions<CreateUserResponse, Options<CreateUserData>, Error> => ({
319 mutation: async (vars) => {
320 const { data } = await createUser({
321 ...options,
322 ...vars,
323 throwOnError: true
324 })
325 return data
326 }
327})
328
329/**
330 * Creates list of users with given input array.
331 *
332 * Creates list of users with given input array.
333 */
334export const createUsersWithListInputMutation = (
335 options?: Partial<Options<CreateUsersWithListInputData>>
336): UseMutationOptions<
337 CreateUsersWithListInputResponse,
338 Options<CreateUsersWithListInputData>,
339 Error
340> => ({
341 mutation: async (vars) => {
342 const { data } = await createUsersWithListInput({
343 ...options,
344 ...vars,
345 throwOnError: true
346 })
347 return data
348 }
349})
350
351/**
352 * Logs user into the system.
353 *
354 * Log into the system.
355 */
356export const loginUserQuery = defineQueryOptions((options?: Options<LoginUserData>) => ({
357 key: createQueryKey('loginUser', options),
358 query: async (context) => {
359 const { data } = await loginUser({
360 ...options,
361 ...context,
362 throwOnError: true
363 })
364 return data
365 }
366}))
367
368/**
369 * Logs out current logged in user session.
370 *
371 * Log user out of the system.
372 */
373export const logoutUserQuery = defineQueryOptions((options?: Options<LogoutUserData>) => ({
374 key: createQueryKey('logoutUser', options),
375 query: async (context) => {
376 const { data } = await logoutUser({
377 ...options,
378 ...context,
379 throwOnError: true
380 })
381 return data
382 }
383}))
384
385/**
386 * Delete user resource.
387 *
388 * This can only be done by the logged in user.
389 */
390export const deleteUserMutation = (
391 options?: Partial<Options<DeleteUserData>>
392): UseMutationOptions<unknown, Options<DeleteUserData>, Error> => ({
393 mutation: async (vars) => {
394 const { data } = await deleteUser({
395 ...options,
396 ...vars,
397 throwOnError: true
398 })
399 return data
400 }
401})
402
403/**
404 * Get user by user name.
405 *
406 * Get user detail based on username.
407 */
408export const getUserByNameQuery = defineQueryOptions((options: Options<GetUserByNameData>) => ({
409 key: createQueryKey('getUserByName', options),
410 query: async (context) => {
411 const { data } = await getUserByName({
412 ...options,
413 ...context,
414 throwOnError: true
415 })
416 return data
417 }
418}))
419
420/**
421 * Update user resource.
422 *
423 * This can only be done by the logged in user.
424 */
425export const updateUserMutation = (
426 options?: Partial<Options<UpdateUserData>>
427): UseMutationOptions<unknown, Options<UpdateUserData>, Error> => ({
428 mutation: async (vars) => {
429 const { data } = await updateUser({
430 ...options,
431 ...vars,
432 throwOnError: true
433 })
434 return data
435 }
436})