/** * Generated by orval v6.9.6 🍺 * Do not edit manually. * pantry API * OpenAPI spec version: 1.0.0-SNAPSHOT */ import { useQuery, useMutation } from "@tanstack/react-query"; import type { UseQueryOptions, UseMutationOptions, QueryFunction, MutationFunction, UseQueryResult, QueryKey, } from "@tanstack/react-query"; import type { PantryItem } from "../model"; import { useMutator } from "../conf/mutator"; import type { ErrorType } from "../conf/mutator"; export const useGetItemsHook = () => { const getItems = useMutator(); return (signal?: AbortSignal) => { return getItems({ url: `/items`, method: "get", signal }); }; }; export const getGetItemsQueryKey = () => [`/items`]; export type GetItemsQueryResult = NonNullable< Awaited>> >; export type GetItemsQueryError = ErrorType; export const useGetItems = < TData = Awaited>>, TError = ErrorType >(options?: { query?: UseQueryOptions< Awaited>>, TError, TData >; }): UseQueryResult & { queryKey: QueryKey } => { const { query: queryOptions } = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetItemsQueryKey(); const getItems = useGetItemsHook(); const queryFn: QueryFunction< Awaited>> > = ({ signal }) => getItems(signal); const query = useQuery< Awaited>>, TError, TData >(queryKey, queryFn, queryOptions) as UseQueryResult & { queryKey: QueryKey; }; query.queryKey = queryKey; return query; }; export const usePostItemsHook = () => { const postItems = useMutator(); return (pantryItem: PantryItem) => { return postItems({ url: `/items`, method: "post", headers: { "Content-Type": "application/json" }, data: pantryItem, }); }; }; export type PostItemsMutationResult = NonNullable< Awaited>> >; export type PostItemsMutationBody = PantryItem; export type PostItemsMutationError = ErrorType; export const usePostItems = < TError = ErrorType, TContext = unknown >(options?: { mutation?: UseMutationOptions< Awaited>>, TError, { data: PantryItem }, TContext >; }) => { const { mutation: mutationOptions } = options ?? {}; const postItems = usePostItemsHook(); const mutationFn: MutationFunction< Awaited>>, { data: PantryItem } > = (props) => { const { data } = props ?? {}; return postItems(data); }; return useMutation< Awaited>, TError, { data: PantryItem }, TContext >(mutationFn, mutationOptions); }; export const usePutItemsIdHook = () => { const putItemsId = useMutator(); return (id: number, pantryItem: PantryItem) => { return putItemsId({ url: `/items/${id}`, method: "put", headers: { "Content-Type": "application/json" }, data: pantryItem, }); }; }; export type PutItemsIdMutationResult = NonNullable< Awaited>> >; export type PutItemsIdMutationBody = PantryItem; export type PutItemsIdMutationError = ErrorType; export const usePutItemsId = < TError = ErrorType, TContext = unknown >(options?: { mutation?: UseMutationOptions< Awaited>>, TError, { id: number; data: PantryItem }, TContext >; }) => { const { mutation: mutationOptions } = options ?? {}; const putItemsId = usePutItemsIdHook(); const mutationFn: MutationFunction< Awaited>>, { id: number; data: PantryItem } > = (props) => { const { id, data } = props ?? {}; return putItemsId(id, data); }; return useMutation< Awaited>, TError, { id: number; data: PantryItem }, TContext >(mutationFn, mutationOptions); }; export const useDeleteItemsIdHook = () => { const deleteItemsId = useMutator(); return (id: number) => { return deleteItemsId({ url: `/items/${id}`, method: "delete" }); }; }; export type DeleteItemsIdMutationResult = NonNullable< Awaited>> >; export type DeleteItemsIdMutationError = ErrorType; export const useDeleteItemsId = < TError = ErrorType, TContext = unknown >(options?: { mutation?: UseMutationOptions< Awaited>>, TError, { id: number }, TContext >; }) => { const { mutation: mutationOptions } = options ?? {}; const deleteItemsId = useDeleteItemsIdHook(); const mutationFn: MutationFunction< Awaited>>, { id: number } > = (props) => { const { id } = props ?? {}; return deleteItemsId(id); }; return useMutation< Awaited>, TError, { id: number }, TContext >(mutationFn, mutationOptions); };