// This file is auto-generated by @hey-api/openapi-ts import { type Options, getBoards, createBoard, deleteBoard, updateBoard, getDeals, updateDeal, getProjects, getStatuses, updateStatus } from '../sdk.gen'; import { queryOptions, type UseMutationOptions } from '@tanstack/react-query'; import type { GetBoardsData, CreateBoardData, CreateBoardError, CreateBoardResponse2, DeleteBoardData, DeleteBoardError, DeleteBoardResponse2, UpdateBoardData, UpdateBoardError, UpdateBoardResponse2, GetDealsData, UpdateDealData, UpdateDealError, UpdateDealResponse2, GetProjectsData, GetStatusesData, UpdateStatusData, UpdateStatusError, UpdateStatusResponse2 } from '../types.gen'; import type { AxiosError } from 'axios'; import { client as _heyApiClient } from '../client.gen'; export type QueryKey = [ Pick & { _id: string; _infinite?: boolean; } ]; const createQueryKey = (id: string, options?: TOptions, infinite?: boolean): [ QueryKey[0] ] => { const params: QueryKey[0] = { _id: id, baseURL: options?.baseURL || (options?.client ?? _heyApiClient).getConfig().baseURL } as QueryKey[0]; if (infinite) { params._infinite = infinite; } if (options?.body) { params.body = options.body; } if (options?.headers) { params.headers = options.headers; } if (options?.path) { params.path = options.path; } if (options?.query) { params.query = options.query; } return [ params ]; }; export const getBoardsQueryKey = (options: Options) => createQueryKey('getBoards', options); /** * Get Boards */ export const getBoardsOptions = (options: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await getBoards({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: getBoardsQueryKey(options) }); }; export const createBoardQueryKey = (options: Options) => createQueryKey('createBoard', options); /** * Create Board */ export const createBoardOptions = (options: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await createBoard({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: createBoardQueryKey(options) }); }; /** * Create Board */ export const createBoardMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (localOptions) => { const { data } = await createBoard({ ...options, ...localOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Delete Board */ export const deleteBoardMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (localOptions) => { const { data } = await deleteBoard({ ...options, ...localOptions, throwOnError: true }); return data; } }; return mutationOptions; }; /** * Update Board */ export const updateBoardMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (localOptions) => { const { data } = await updateBoard({ ...options, ...localOptions, throwOnError: true }); return data; } }; return mutationOptions; }; export const getDealsQueryKey = (options: Options) => createQueryKey('getDeals', options); /** * Get Deals */ export const getDealsOptions = (options: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await getDeals({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: getDealsQueryKey(options) }); }; /** * Update Deal */ export const updateDealMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (localOptions) => { const { data } = await updateDeal({ ...options, ...localOptions, throwOnError: true }); return data; } }; return mutationOptions; }; export const getProjectsQueryKey = (options?: Options) => createQueryKey('getProjects', options); /** * Get Projects */ export const getProjectsOptions = (options?: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await getProjects({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: getProjectsQueryKey(options) }); }; export const getStatusesQueryKey = (options: Options) => createQueryKey('getStatuses', options); /** * Get Statuses */ export const getStatusesOptions = (options: Options) => { return queryOptions({ queryFn: async ({ queryKey, signal }) => { const { data } = await getStatuses({ ...options, ...queryKey[0], signal, throwOnError: true }); return data; }, queryKey: getStatusesQueryKey(options) }); }; /** * Update Status */ export const updateStatusMutation = (options?: Partial>): UseMutationOptions, Options> => { const mutationOptions: UseMutationOptions, Options> = { mutationFn: async (localOptions) => { const { data } = await updateStatus({ ...options, ...localOptions, throwOnError: true }); return data; } }; return mutationOptions; };