/* eslint-disable @typescript-eslint/no-explicit-any */ /** * Generated by orval 🍺 * Do not edit manually. * API * API documentation for the starter-kit project in NestJS by BinarApps. The API allows management of users, sessions and offers various functions for logged in users. Contains examples of authentication, authorization, and CRUD for selected resources. * OpenAPI spec version: 1.0 */ import { useMutation, useQuery } from '@tanstack/react-query' import type { DataTag, DefinedInitialDataOptions, DefinedUseQueryResult, MutationFunction, QueryFunction, QueryKey, UndefinedInitialDataOptions, UseMutationOptions, UseMutationResult, UseQueryOptions, UseQueryResult, } from '@tanstack/react-query' import { customInstance } from '../../axios/custom-instance' import type { ErrorType, BodyType } from '../../axios/custom-instance' import type { FileEntity, FilesControllerUploadFileBody } from '../../types' type SecondParameter any> = Parameters[1] /** * Uploads a file with a specified category. * @summary Upload File */ export const filesControllerUploadFile = ( filesControllerUploadFileBody: BodyType, options?: SecondParameter, signal?: AbortSignal ) => { const formData = new FormData() if (filesControllerUploadFileBody.file !== undefined) { formData.append('file', filesControllerUploadFileBody.file) } if (filesControllerUploadFileBody.category !== undefined) { formData.append('category', filesControllerUploadFileBody.category) } return customInstance( { url: `/api/v1/files/upload`, method: 'POST', headers: { 'Content-Type': 'multipart/form-data' }, data: formData, signal, }, options ) } export const getFilesControllerUploadFileMutationOptions = < TData = Awaited>, TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< TData, TError, { data: BodyType }, TContext > request?: SecondParameter }) => { const mutationKey = ['filesControllerUploadFile'] const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined } const mutationFn: MutationFunction< Awaited>, { data: BodyType } > = (props) => { const { data } = props ?? {} return filesControllerUploadFile(data, requestOptions) } return { mutationFn, ...mutationOptions } as UseMutationOptions< TData, TError, { data: BodyType }, TContext > } export type FilesControllerUploadFileMutationResult = NonNullable< Awaited> > export type FilesControllerUploadFileMutationBody = BodyType export type FilesControllerUploadFileMutationError = ErrorType /** * @summary Upload File */ export const useFilesControllerUploadFile = < TData = Awaited>, TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< TData, TError, { data: BodyType }, TContext > request?: SecondParameter }): UseMutationResult< TData, TError, { data: BodyType }, TContext > => { const mutationOptions = getFilesControllerUploadFileMutationOptions(options) return useMutation(mutationOptions) } /** * Downloads the specified file. * @summary Download File */ export const filesControllerDownload = ( fileName: string, options?: SecondParameter, signal?: AbortSignal ) => { return customInstance( { url: `/api/v1/files/${fileName}`, method: 'GET', signal }, options ) } export const getFilesControllerDownloadQueryKey = (fileName: string) => { return [`/api/v1/files/${fileName}`] as const } export const getFilesControllerDownloadQueryOptions = < TData = Awaited>, TError = ErrorType, >( fileName: string, options?: { query?: Partial< UseQueryOptions>, TError, TData> > request?: SecondParameter } ) => { const { query: queryOptions, request: requestOptions } = options ?? {} const queryKey = queryOptions?.queryKey ?? getFilesControllerDownloadQueryKey(fileName) const queryFn: QueryFunction>> = ({ signal, }) => filesControllerDownload(fileName, requestOptions, signal) return { queryKey, queryFn, enabled: !!fileName, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: DataTag } } export type FilesControllerDownloadQueryResult = NonNullable< Awaited> > export type FilesControllerDownloadQueryError = ErrorType export function useFilesControllerDownload< TData = Awaited>, TError = ErrorType, >( fileName: string, options: { query: Partial< UseQueryOptions>, TError, TData> > & Pick< DefinedInitialDataOptions< Awaited>, TError, TData >, 'initialData' > request?: SecondParameter } ): DefinedUseQueryResult & { queryKey: DataTag } export function useFilesControllerDownload< TData = Awaited>, TError = ErrorType, >( fileName: string, options?: { query?: Partial< UseQueryOptions>, TError, TData> > & Pick< UndefinedInitialDataOptions< Awaited>, TError, TData >, 'initialData' > request?: SecondParameter } ): UseQueryResult & { queryKey: DataTag } export function useFilesControllerDownload< TData = Awaited>, TError = ErrorType, >( fileName: string, options?: { query?: Partial< UseQueryOptions>, TError, TData> > request?: SecondParameter } ): UseQueryResult & { queryKey: DataTag } /** * @summary Download File */ export function useFilesControllerDownload< TData = Awaited>, TError = ErrorType, >( fileName: string, options?: { query?: Partial< UseQueryOptions>, TError, TData> > request?: SecondParameter } ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getFilesControllerDownloadQueryOptions(fileName, options) const query = useQuery(queryOptions) as UseQueryResult & { queryKey: DataTag } query.queryKey = queryOptions.queryKey return query } /** * Deletes the specified file. * @summary Delete File */ export const filesControllerDeleteFile = ( fileName: string, options?: SecondParameter ) => { return customInstance({ url: `/api/v1/files/${fileName}`, method: 'DELETE' }, options) } export const getFilesControllerDeleteFileMutationOptions = < TData = Awaited>, TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions request?: SecondParameter }) => { const mutationKey = ['filesControllerDeleteFile'] const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined } const mutationFn: MutationFunction< Awaited>, { fileName: string } > = (props) => { const { fileName } = props ?? {} return filesControllerDeleteFile(fileName, requestOptions) } return { mutationFn, ...mutationOptions } as UseMutationOptions< TData, TError, { fileName: string }, TContext > } export type FilesControllerDeleteFileMutationResult = NonNullable< Awaited> > export type FilesControllerDeleteFileMutationError = ErrorType /** * @summary Delete File */ export const useFilesControllerDeleteFile = < TData = Awaited>, TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions request?: SecondParameter }): UseMutationResult => { const mutationOptions = getFilesControllerDeleteFileMutationOptions(options) return useMutation(mutationOptions) }