/* 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 { CreateUserDto, ErrorEntity, ErrorServerEntity, ErrorUnauthorizedEntity, ErrorValidationEntity, UpdateUserDto, UserEntity, UsersControllerFindAllParams, } from '../../types' type SecondParameter any> = Parameters[1] /** * Creates a new user. * @summary Create User */ export const usersControllerCreate = ( createUserDto: BodyType, options?: SecondParameter, signal?: AbortSignal ) => { return customInstance( { url: `/api/v1/users`, method: 'POST', headers: { 'Content-Type': 'application/json' }, data: createUserDto, signal, }, options ) } export const getUsersControllerCreateMutationOptions = < TData = Awaited>, TError = ErrorType< ErrorUnauthorizedEntity | ErrorEntity | ErrorValidationEntity | ErrorServerEntity >, TContext = unknown, >(options?: { mutation?: UseMutationOptions }, TContext> request?: SecondParameter }) => { const mutationKey = ['usersControllerCreate'] 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 usersControllerCreate(data, requestOptions) } return { mutationFn, ...mutationOptions } as UseMutationOptions< TData, TError, { data: BodyType }, TContext > } export type UsersControllerCreateMutationResult = NonNullable< Awaited> > export type UsersControllerCreateMutationBody = BodyType export type UsersControllerCreateMutationError = ErrorType< ErrorUnauthorizedEntity | ErrorEntity | ErrorValidationEntity | ErrorServerEntity > /** * @summary Create User */ export const useUsersControllerCreate = < TData = Awaited>, TError = ErrorType< ErrorUnauthorizedEntity | ErrorEntity | ErrorValidationEntity | ErrorServerEntity >, TContext = unknown, >(options?: { mutation?: UseMutationOptions }, TContext> request?: SecondParameter }): UseMutationResult }, TContext> => { const mutationOptions = getUsersControllerCreateMutationOptions(options) return useMutation(mutationOptions) } /** * Retrieves a list of all users. * @summary Find All Users */ export const usersControllerFindAll = ( params: UsersControllerFindAllParams, options?: SecondParameter, signal?: AbortSignal ) => { return customInstance( { url: `/api/v1/users`, method: 'GET', params, signal }, options ) } export const getUsersControllerFindAllQueryKey = (params: UsersControllerFindAllParams) => { return [`/api/v1/users`, ...(params ? [params] : [])] as const } export const getUsersControllerFindAllQueryOptions = < TData = Awaited>, TError = ErrorType, >( params: UsersControllerFindAllParams, options?: { query?: Partial< UseQueryOptions>, TError, TData> > request?: SecondParameter } ) => { const { query: queryOptions, request: requestOptions } = options ?? {} const queryKey = queryOptions?.queryKey ?? getUsersControllerFindAllQueryKey(params) const queryFn: QueryFunction>> = ({ signal }) => usersControllerFindAll(params, requestOptions, signal) return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: DataTag } } export type UsersControllerFindAllQueryResult = NonNullable< Awaited> > export type UsersControllerFindAllQueryError = ErrorType< ErrorUnauthorizedEntity | ErrorEntity | ErrorServerEntity > export function useUsersControllerFindAll< TData = Awaited>, TError = ErrorType, >( params: UsersControllerFindAllParams, options: { query: Partial< UseQueryOptions>, TError, TData> > & Pick< DefinedInitialDataOptions< Awaited>, TError, TData >, 'initialData' > request?: SecondParameter } ): DefinedUseQueryResult & { queryKey: DataTag } export function useUsersControllerFindAll< TData = Awaited>, TError = ErrorType, >( params: UsersControllerFindAllParams, options?: { query?: Partial< UseQueryOptions>, TError, TData> > & Pick< UndefinedInitialDataOptions< Awaited>, TError, TData >, 'initialData' > request?: SecondParameter } ): UseQueryResult & { queryKey: DataTag } export function useUsersControllerFindAll< TData = Awaited>, TError = ErrorType, >( params: UsersControllerFindAllParams, options?: { query?: Partial< UseQueryOptions>, TError, TData> > request?: SecondParameter } ): UseQueryResult & { queryKey: DataTag } /** * @summary Find All Users */ export function useUsersControllerFindAll< TData = Awaited>, TError = ErrorType, >( params: UsersControllerFindAllParams, options?: { query?: Partial< UseQueryOptions>, TError, TData> > request?: SecondParameter } ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getUsersControllerFindAllQueryOptions(params, options) const query = useQuery(queryOptions) as UseQueryResult & { queryKey: DataTag } query.queryKey = queryOptions.queryKey return query } /** * Retrieves a user by its ID. * @summary Find User by ID */ export const usersControllerFindOne = ( id: string, options?: SecondParameter, signal?: AbortSignal ) => { return customInstance({ url: `/api/v1/users/${id}`, method: 'GET', signal }, options) } export const getUsersControllerFindOneQueryKey = (id: string) => { return [`/api/v1/users/${id}`] as const } export const getUsersControllerFindOneQueryOptions = < TData = Awaited>, TError = ErrorType, >( id: string, options?: { query?: Partial< UseQueryOptions>, TError, TData> > request?: SecondParameter } ) => { const { query: queryOptions, request: requestOptions } = options ?? {} const queryKey = queryOptions?.queryKey ?? getUsersControllerFindOneQueryKey(id) const queryFn: QueryFunction>> = ({ signal }) => usersControllerFindOne(id, requestOptions, signal) return { queryKey, queryFn, enabled: !!id, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: DataTag } } export type UsersControllerFindOneQueryResult = NonNullable< Awaited> > export type UsersControllerFindOneQueryError = ErrorType< ErrorUnauthorizedEntity | ErrorEntity | ErrorServerEntity > export function useUsersControllerFindOne< TData = Awaited>, TError = ErrorType, >( id: string, options: { query: Partial< UseQueryOptions>, TError, TData> > & Pick< DefinedInitialDataOptions< Awaited>, TError, TData >, 'initialData' > request?: SecondParameter } ): DefinedUseQueryResult & { queryKey: DataTag } export function useUsersControllerFindOne< TData = Awaited>, TError = ErrorType, >( id: string, options?: { query?: Partial< UseQueryOptions>, TError, TData> > & Pick< UndefinedInitialDataOptions< Awaited>, TError, TData >, 'initialData' > request?: SecondParameter } ): UseQueryResult & { queryKey: DataTag } export function useUsersControllerFindOne< TData = Awaited>, TError = ErrorType, >( id: string, options?: { query?: Partial< UseQueryOptions>, TError, TData> > request?: SecondParameter } ): UseQueryResult & { queryKey: DataTag } /** * @summary Find User by ID */ export function useUsersControllerFindOne< TData = Awaited>, TError = ErrorType, >( id: string, options?: { query?: Partial< UseQueryOptions>, TError, TData> > request?: SecondParameter } ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getUsersControllerFindOneQueryOptions(id, options) const query = useQuery(queryOptions) as UseQueryResult & { queryKey: DataTag } query.queryKey = queryOptions.queryKey return query } /** * Updates a user with the provided details. * @summary Update User */ export const usersControllerUpdate = ( id: string, updateUserDto: BodyType, options?: SecondParameter ) => { return customInstance( { url: `/api/v1/users/${id}`, method: 'PATCH', headers: { 'Content-Type': 'application/json' }, data: updateUserDto, }, options ) } export const getUsersControllerUpdateMutationOptions = < TData = Awaited>, TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< TData, TError, { id: string; data: BodyType }, TContext > request?: SecondParameter }) => { const mutationKey = ['usersControllerUpdate'] 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>, { id: string; data: BodyType } > = (props) => { const { id, data } = props ?? {} return usersControllerUpdate(id, data, requestOptions) } return { mutationFn, ...mutationOptions } as UseMutationOptions< TData, TError, { id: string; data: BodyType }, TContext > } export type UsersControllerUpdateMutationResult = NonNullable< Awaited> > export type UsersControllerUpdateMutationBody = BodyType export type UsersControllerUpdateMutationError = ErrorType< ErrorUnauthorizedEntity | ErrorEntity | ErrorServerEntity > /** * @summary Update User */ export const useUsersControllerUpdate = < TData = Awaited>, TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< TData, TError, { id: string; data: BodyType }, TContext > request?: SecondParameter }): UseMutationResult }, TContext> => { const mutationOptions = getUsersControllerUpdateMutationOptions(options) return useMutation(mutationOptions) } /** * Deletes a user by their unique identifier. * @summary Remove User */ export const usersControllerRemove = ( id: string, options?: SecondParameter ) => { return customInstance({ url: `/api/v1/users/${id}`, method: 'DELETE' }, options) } export const getUsersControllerRemoveMutationOptions = < TData = Awaited>, TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions request?: SecondParameter }) => { const mutationKey = ['usersControllerRemove'] 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>, { id: string } > = (props) => { const { id } = props ?? {} return usersControllerRemove(id, requestOptions) } return { mutationFn, ...mutationOptions } as UseMutationOptions< TData, TError, { id: string }, TContext > } export type UsersControllerRemoveMutationResult = NonNullable< Awaited> > export type UsersControllerRemoveMutationError = ErrorType< ErrorUnauthorizedEntity | ErrorEntity | ErrorServerEntity > /** * @summary Remove User */ export const useUsersControllerRemove = < TData = Awaited>, TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions request?: SecondParameter }): UseMutationResult => { const mutationOptions = getUsersControllerRemoveMutationOptions(options) return useMutation(mutationOptions) }