/* 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 { ArticleEntity, ArticlesControllerFindAllParams, ArticlesControllerFindDraftsParams, CreateArticleDto, ErrorServerEntity, ErrorValidationEntity, UpdateArticleDto, } from '../../types' type SecondParameter any> = Parameters[1] /** * Creates a new article with the provided details. * @summary Create Article */ export const articlesControllerCreate = ( createArticleDto: BodyType, options?: SecondParameter, signal?: AbortSignal ) => { return customInstance( { url: `/api/v1/articles`, method: 'POST', headers: { 'Content-Type': 'application/json' }, data: createArticleDto, signal, }, options ) } export const getArticlesControllerCreateMutationOptions = < TData = Awaited>, TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions }, TContext> request?: SecondParameter }) => { const mutationKey = ['articlesControllerCreate'] 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 articlesControllerCreate(data, requestOptions) } return { mutationFn, ...mutationOptions } as UseMutationOptions< TData, TError, { data: BodyType }, TContext > } export type ArticlesControllerCreateMutationResult = NonNullable< Awaited> > export type ArticlesControllerCreateMutationBody = BodyType export type ArticlesControllerCreateMutationError = ErrorType< ErrorValidationEntity | ErrorServerEntity > /** * @summary Create Article */ export const useArticlesControllerCreate = < TData = Awaited>, TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions }, TContext> request?: SecondParameter }): UseMutationResult }, TContext> => { const mutationOptions = getArticlesControllerCreateMutationOptions(options) return useMutation(mutationOptions) } /** * Retrieves a list of all articles with pagination support. * @summary Find All Articles */ export const articlesControllerFindAll = ( params: ArticlesControllerFindAllParams, options?: SecondParameter, signal?: AbortSignal ) => { return customInstance( { url: `/api/v1/articles`, method: 'GET', params, signal }, options ) } export const getArticlesControllerFindAllQueryKey = (params: ArticlesControllerFindAllParams) => { return [`/api/v1/articles`, ...(params ? [params] : [])] as const } export const getArticlesControllerFindAllQueryOptions = < TData = Awaited>, TError = ErrorType, >( params: ArticlesControllerFindAllParams, options?: { query?: Partial< UseQueryOptions>, TError, TData> > request?: SecondParameter } ) => { const { query: queryOptions, request: requestOptions } = options ?? {} const queryKey = queryOptions?.queryKey ?? getArticlesControllerFindAllQueryKey(params) const queryFn: QueryFunction>> = ({ signal, }) => articlesControllerFindAll(params, requestOptions, signal) return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: DataTag } } export type ArticlesControllerFindAllQueryResult = NonNullable< Awaited> > export type ArticlesControllerFindAllQueryError = ErrorType export function useArticlesControllerFindAll< TData = Awaited>, TError = ErrorType, >( params: ArticlesControllerFindAllParams, options: { query: Partial< UseQueryOptions>, TError, TData> > & Pick< DefinedInitialDataOptions< Awaited>, TError, TData >, 'initialData' > request?: SecondParameter } ): DefinedUseQueryResult & { queryKey: DataTag } export function useArticlesControllerFindAll< TData = Awaited>, TError = ErrorType, >( params: ArticlesControllerFindAllParams, options?: { query?: Partial< UseQueryOptions>, TError, TData> > & Pick< UndefinedInitialDataOptions< Awaited>, TError, TData >, 'initialData' > request?: SecondParameter } ): UseQueryResult & { queryKey: DataTag } export function useArticlesControllerFindAll< TData = Awaited>, TError = ErrorType, >( params: ArticlesControllerFindAllParams, options?: { query?: Partial< UseQueryOptions>, TError, TData> > request?: SecondParameter } ): UseQueryResult & { queryKey: DataTag } /** * @summary Find All Articles */ export function useArticlesControllerFindAll< TData = Awaited>, TError = ErrorType, >( params: ArticlesControllerFindAllParams, options?: { query?: Partial< UseQueryOptions>, TError, TData> > request?: SecondParameter } ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getArticlesControllerFindAllQueryOptions(params, options) const query = useQuery(queryOptions) as UseQueryResult & { queryKey: DataTag } query.queryKey = queryOptions.queryKey return query } /** * Retrieves a list of draft articles with pagination support. * @summary Find Draft Articles */ export const articlesControllerFindDrafts = ( params: ArticlesControllerFindDraftsParams, options?: SecondParameter, signal?: AbortSignal ) => { return customInstance( { url: `/api/v1/articles/drafts`, method: 'GET', params, signal }, options ) } export const getArticlesControllerFindDraftsQueryKey = ( params: ArticlesControllerFindDraftsParams ) => { return [`/api/v1/articles/drafts`, ...(params ? [params] : [])] as const } export const getArticlesControllerFindDraftsQueryOptions = < TData = Awaited>, TError = ErrorType, >( params: ArticlesControllerFindDraftsParams, options?: { query?: Partial< UseQueryOptions>, TError, TData> > request?: SecondParameter } ) => { const { query: queryOptions, request: requestOptions } = options ?? {} const queryKey = queryOptions?.queryKey ?? getArticlesControllerFindDraftsQueryKey(params) const queryFn: QueryFunction>> = ({ signal, }) => articlesControllerFindDrafts(params, requestOptions, signal) return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: DataTag } } export type ArticlesControllerFindDraftsQueryResult = NonNullable< Awaited> > export type ArticlesControllerFindDraftsQueryError = ErrorType export function useArticlesControllerFindDrafts< TData = Awaited>, TError = ErrorType, >( params: ArticlesControllerFindDraftsParams, options: { query: Partial< UseQueryOptions>, TError, TData> > & Pick< DefinedInitialDataOptions< Awaited>, TError, TData >, 'initialData' > request?: SecondParameter } ): DefinedUseQueryResult & { queryKey: DataTag } export function useArticlesControllerFindDrafts< TData = Awaited>, TError = ErrorType, >( params: ArticlesControllerFindDraftsParams, options?: { query?: Partial< UseQueryOptions>, TError, TData> > & Pick< UndefinedInitialDataOptions< Awaited>, TError, TData >, 'initialData' > request?: SecondParameter } ): UseQueryResult & { queryKey: DataTag } export function useArticlesControllerFindDrafts< TData = Awaited>, TError = ErrorType, >( params: ArticlesControllerFindDraftsParams, options?: { query?: Partial< UseQueryOptions>, TError, TData> > request?: SecondParameter } ): UseQueryResult & { queryKey: DataTag } /** * @summary Find Draft Articles */ export function useArticlesControllerFindDrafts< TData = Awaited>, TError = ErrorType, >( params: ArticlesControllerFindDraftsParams, options?: { query?: Partial< UseQueryOptions>, TError, TData> > request?: SecondParameter } ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getArticlesControllerFindDraftsQueryOptions(params, options) const query = useQuery(queryOptions) as UseQueryResult & { queryKey: DataTag } query.queryKey = queryOptions.queryKey return query } /** * Retrieves an article by its unique identifier. * @summary Find Article by ID */ export const articlesControllerFindOne = ( id: number, options?: SecondParameter, signal?: AbortSignal ) => { return customInstance( { url: `/api/v1/articles/${id}`, method: 'GET', signal }, options ) } export const getArticlesControllerFindOneQueryKey = (id: number) => { return [`/api/v1/articles/${id}`] as const } export const getArticlesControllerFindOneQueryOptions = < TData = Awaited>, TError = ErrorType, >( id: number, options?: { query?: Partial< UseQueryOptions>, TError, TData> > request?: SecondParameter } ) => { const { query: queryOptions, request: requestOptions } = options ?? {} const queryKey = queryOptions?.queryKey ?? getArticlesControllerFindOneQueryKey(id) const queryFn: QueryFunction>> = ({ signal, }) => articlesControllerFindOne(id, requestOptions, signal) return { queryKey, queryFn, enabled: !!id, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: DataTag } } export type ArticlesControllerFindOneQueryResult = NonNullable< Awaited> > export type ArticlesControllerFindOneQueryError = ErrorType export function useArticlesControllerFindOne< TData = Awaited>, TError = ErrorType, >( id: number, options: { query: Partial< UseQueryOptions>, TError, TData> > & Pick< DefinedInitialDataOptions< Awaited>, TError, TData >, 'initialData' > request?: SecondParameter } ): DefinedUseQueryResult & { queryKey: DataTag } export function useArticlesControllerFindOne< TData = Awaited>, TError = ErrorType, >( id: number, options?: { query?: Partial< UseQueryOptions>, TError, TData> > & Pick< UndefinedInitialDataOptions< Awaited>, TError, TData >, 'initialData' > request?: SecondParameter } ): UseQueryResult & { queryKey: DataTag } export function useArticlesControllerFindOne< TData = Awaited>, TError = ErrorType, >( id: number, options?: { query?: Partial< UseQueryOptions>, TError, TData> > request?: SecondParameter } ): UseQueryResult & { queryKey: DataTag } /** * @summary Find Article by ID */ export function useArticlesControllerFindOne< TData = Awaited>, TError = ErrorType, >( id: number, options?: { query?: Partial< UseQueryOptions>, TError, TData> > request?: SecondParameter } ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getArticlesControllerFindOneQueryOptions(id, options) const query = useQuery(queryOptions) as UseQueryResult & { queryKey: DataTag } query.queryKey = queryOptions.queryKey return query } /** * Updates an article with the provided details. * @summary Update Article */ export const articlesControllerUpdate = ( id: number, updateArticleDto: BodyType, options?: SecondParameter ) => { return customInstance( { url: `/api/v1/articles/${id}`, method: 'PATCH', headers: { 'Content-Type': 'application/json' }, data: updateArticleDto, }, options ) } export const getArticlesControllerUpdateMutationOptions = < TData = Awaited>, TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< TData, TError, { id: number; data: BodyType }, TContext > request?: SecondParameter }) => { const mutationKey = ['articlesControllerUpdate'] 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: number; data: BodyType } > = (props) => { const { id, data } = props ?? {} return articlesControllerUpdate(id, data, requestOptions) } return { mutationFn, ...mutationOptions } as UseMutationOptions< TData, TError, { id: number; data: BodyType }, TContext > } export type ArticlesControllerUpdateMutationResult = NonNullable< Awaited> > export type ArticlesControllerUpdateMutationBody = BodyType export type ArticlesControllerUpdateMutationError = ErrorType< ErrorValidationEntity | ErrorServerEntity > /** * @summary Update Article */ export const useArticlesControllerUpdate = < TData = Awaited>, TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< TData, TError, { id: number; data: BodyType }, TContext > request?: SecondParameter }): UseMutationResult< TData, TError, { id: number; data: BodyType }, TContext > => { const mutationOptions = getArticlesControllerUpdateMutationOptions(options) return useMutation(mutationOptions) } /** * Deletes an article by its unique identifier. * @summary Remove Article */ export const articlesControllerRemove = ( id: number, options?: SecondParameter ) => { return customInstance({ url: `/api/v1/articles/${id}`, method: 'DELETE' }, options) } export const getArticlesControllerRemoveMutationOptions = < TData = Awaited>, TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions request?: SecondParameter }) => { const mutationKey = ['articlesControllerRemove'] 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: number } > = (props) => { const { id } = props ?? {} return articlesControllerRemove(id, requestOptions) } return { mutationFn, ...mutationOptions } as UseMutationOptions< TData, TError, { id: number }, TContext > } export type ArticlesControllerRemoveMutationResult = NonNullable< Awaited> > export type ArticlesControllerRemoveMutationError = ErrorType /** * @summary Remove Article */ export const useArticlesControllerRemove = < TData = Awaited>, TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions request?: SecondParameter }): UseMutationResult => { const mutationOptions = getArticlesControllerRemoveMutationOptions(options) return useMutation(mutationOptions) }