/** * Generated by orval v7.14.0 🍺 * Do not edit manually. * OpenAPI definition * OpenAPI spec version: v0 */ import { useMutation, useQuery } from '@tanstack/react-query'; import type { DataTag, DefinedInitialDataOptions, DefinedUseQueryResult, MutationFunction, QueryClient, QueryFunction, QueryKey, UndefinedInitialDataOptions, UseMutationOptions, UseMutationResult, UseQueryOptions, UseQueryResult } from '@tanstack/react-query'; import { customInstance } from './api'; export interface DefaultResponseDTOVoid { timestamp?: string; data?: unknown; message?: string; } export interface ImportMangaDexRequestDTO { id: string; } export interface DefaultResponseDTOImportMangaDexResponseDTO { timestamp?: string; data?: ImportMangaDexResponseDTO; message?: string; } export interface ImportMangaDexResponseDTO { id: number; } export interface RegistrationRequestDTO { name?: string; email?: string; password?: string; } export interface AuthenticationRequestDTO { email: string; password: string; } export type AuthenticationResponseDTORole = typeof AuthenticationResponseDTORole[keyof typeof AuthenticationResponseDTORole]; // eslint-disable-next-line @typescript-eslint/no-redeclare export const AuthenticationResponseDTORole = { USER: 'USER', } as const; export interface AuthenticationResponseDTO { id: number; token: string; email: string; name: string; role: AuthenticationResponseDTORole; } export interface DefaultResponseDTOAuthenticationResponseDTO { timestamp?: string; data?: AuthenticationResponseDTO; message?: string; } export interface DefaultResponseDTOPageMangaListDTO { timestamp?: string; data?: PageMangaListDTO; message?: string; } export interface MangaListDTO { id: number; /** @minLength 1 */ title: string; coverImageKey?: string; status?: string; publishedFrom?: string; publishedTo?: string; providerCount?: number; genres: string[]; authors: string[]; score: number; favorite: boolean; } export interface PageMangaListDTO { totalPages?: number; totalElements?: number; size?: number; content?: MangaListDTO[]; number?: number; pageable?: PageableObject; first?: boolean; last?: boolean; sort?: SortObject; numberOfElements?: number; empty?: boolean; } export interface PageableObject { offset?: number; paged?: boolean; pageNumber?: number; pageSize?: number; sort?: SortObject; unpaged?: boolean; } export interface SortObject { empty?: boolean; sorted?: boolean; unsorted?: boolean; } export interface DefaultResponseDTOListMangaChapterDTO { timestamp?: string; data?: MangaChapterDTO[]; message?: string; } export interface MangaChapterDTO { id: number; /** @minLength 1 */ title: string; downloaded: boolean; isRead: boolean; } export interface DefaultResponseDTOMangaDTO { timestamp?: string; data?: MangaDTO; message?: string; } export interface MangaDTO { id: number; /** @minLength 1 */ title: string; coverImageKey?: string; status?: string; publishedFrom?: string; publishedTo?: string; synopsis?: string; providerCount?: number; alternativeTitles: string[]; genres: string[]; authors: string[]; score: number; providers: MangaProviderDTO[]; chapterCount: number; } export interface MangaProviderDTO { id: number; /** @minLength 1 */ providerName: string; chaptersAvailable: number; chaptersDownloaded: number; supportsChapterFetch: boolean; } export interface DefaultResponseDTOMangaChapterImagesDTO { timestamp?: string; data?: MangaChapterImagesDTO; message?: string; } export interface MangaChapterImagesDTO { id: number; /** @minLength 1 */ mangaTitle: string; chapterImageKeys: string[]; } export interface DefaultResponseDTOListImportReviewDTO { timestamp?: string; data?: ImportReviewDTO[]; message?: string; } export interface ImportReviewDTO { id: number; /** @minLength 1 */ title: string; /** @minLength 1 */ providerName: string; externalUrl?: string; /** @minLength 1 */ reason: string; createdAt: string; } export interface DefaultResponseDTOListGenreDTO { timestamp?: string; data?: GenreDTO[]; message?: string; } export interface GenreDTO { id: number; /** @minLength 1 */ name: string; } export type DownloadChapterArchiveParams = { archiveFileType: DownloadChapterArchiveArchiveFileType; }; export type DownloadChapterArchiveArchiveFileType = typeof DownloadChapterArchiveArchiveFileType[keyof typeof DownloadChapterArchiveArchiveFileType]; // eslint-disable-next-line @typescript-eslint/no-redeclare export const DownloadChapterArchiveArchiveFileType = { CBZ: 'CBZ', CBR: 'CBR', } as const; export type ImportMultipleFilesBody = { /** @minLength 1 */ malId: string; /** List of files to upload */ files: Blob[]; }; export type ResolveImportReviewParams = { importReviewId: number; malId: string; }; export type GetMangasParams = { searchQuery?: string; genreIds?: number[]; statuses?: string[]; userFavorites?: boolean; score?: number; /** * Zero-based page index (0..N) * @minimum 0 */ page?: number; /** * The size of the page to be returned * @minimum 1 */ size?: number; /** * Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. */ sort?: string[]; }; type SecondParameter unknown> = Parameters[1]; /** * Fetch a list of manga chapters for a specific manga/provider combination. * @summary Fetch the available chapters for a specific manga/provider combination */ export const fetchMangaChapters = ( mangaProviderId: number, options?: SecondParameter,signal?: AbortSignal ) => { return customInstance( {url: `http://mangamochi.badger-pirarucu.ts.net:8080/mangas/${encodeURIComponent(String(mangaProviderId))}/fetch-chapters`, method: 'POST', signal }, options); } export const getFetchMangaChaptersMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{mangaProviderId: number}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{mangaProviderId: number}, TContext> => { const mutationKey = ['fetchMangaChapters']; 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>, {mangaProviderId: number}> = (props) => { const {mangaProviderId} = props ?? {}; return fetchMangaChapters(mangaProviderId,requestOptions) } return { mutationFn, ...mutationOptions }} export type FetchMangaChaptersMutationResult = NonNullable>> export type FetchMangaChaptersMutationError = unknown /** * @summary Fetch the available chapters for a specific manga/provider combination */ export const useFetchMangaChapters = (options?: { mutation?:UseMutationOptions>, TError,{mangaProviderId: number}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {mangaProviderId: number}, TContext > => { const mutationOptions = getFetchMangaChaptersMutationOptions(options); return useMutation(mutationOptions, queryClient); } /** * Remove a manga from favorites for the logged user. * @summary Unfavorite a manga */ export const setUnfavorite = ( id: number, options?: SecondParameter,signal?: AbortSignal ) => { return customInstance( {url: `http://mangamochi.badger-pirarucu.ts.net:8080/mangas/${encodeURIComponent(String(id))}/unfavorite`, method: 'POST', signal }, options); } export const getSetUnfavoriteMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{id: number}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{id: number}, TContext> => { const mutationKey = ['setUnfavorite']; 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>, {id: number}> = (props) => { const {id} = props ?? {}; return setUnfavorite(id,requestOptions) } return { mutationFn, ...mutationOptions }} export type SetUnfavoriteMutationResult = NonNullable>> export type SetUnfavoriteMutationError = unknown /** * @summary Unfavorite a manga */ export const useSetUnfavorite = (options?: { mutation?:UseMutationOptions>, TError,{id: number}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {id: number}, TContext > => { const mutationOptions = getSetUnfavoriteMutationOptions(options); return useMutation(mutationOptions, queryClient); } /** * Set a manga as favorite for the logged user. * @summary Favorite a manga */ export const setFavorite = ( id: number, options?: SecondParameter,signal?: AbortSignal ) => { return customInstance( {url: `http://mangamochi.badger-pirarucu.ts.net:8080/mangas/${encodeURIComponent(String(id))}/favorite`, method: 'POST', signal }, options); } export const getSetFavoriteMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{id: number}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{id: number}, TContext> => { const mutationKey = ['setFavorite']; 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>, {id: number}> = (props) => { const {id} = props ?? {}; return setFavorite(id,requestOptions) } return { mutationFn, ...mutationOptions }} export type SetFavoriteMutationResult = NonNullable>> export type SetFavoriteMutationError = unknown /** * @summary Favorite a manga */ export const useSetFavorite = (options?: { mutation?:UseMutationOptions>, TError,{id: number}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {id: number}, TContext > => { const mutationOptions = getSetFavoriteMutationOptions(options); return useMutation(mutationOptions, queryClient); } /** * Mark a chapter as read by its ID. * @summary Mark a chapter as read */ export const markAsRead = ( chapterId: number, options?: SecondParameter,signal?: AbortSignal ) => { return customInstance( {url: `http://mangamochi.badger-pirarucu.ts.net:8080/mangas/chapters/${encodeURIComponent(String(chapterId))}/mark-as-read`, method: 'POST', signal }, options); } export const getMarkAsReadMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{chapterId: number}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{chapterId: number}, TContext> => { const mutationKey = ['markAsRead']; 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>, {chapterId: number}> = (props) => { const {chapterId} = props ?? {}; return markAsRead(chapterId,requestOptions) } return { mutationFn, ...mutationOptions }} export type MarkAsReadMutationResult = NonNullable>> export type MarkAsReadMutationError = unknown /** * @summary Mark a chapter as read */ export const useMarkAsRead = (options?: { mutation?:UseMutationOptions>, TError,{chapterId: number}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {chapterId: number}, TContext > => { const mutationOptions = getMarkAsReadMutationOptions(options); return useMutation(mutationOptions, queryClient); } /** * Fetch the chapter from the provider * @summary Fetch chapter */ export const fetchChapter = ( chapterId: number, options?: SecondParameter,signal?: AbortSignal ) => { return customInstance( {url: `http://mangamochi.badger-pirarucu.ts.net:8080/mangas/chapters/${encodeURIComponent(String(chapterId))}/fetch`, method: 'POST', signal }, options); } export const getFetchChapterMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{chapterId: number}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{chapterId: number}, TContext> => { const mutationKey = ['fetchChapter']; 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>, {chapterId: number}> = (props) => { const {chapterId} = props ?? {}; return fetchChapter(chapterId,requestOptions) } return { mutationFn, ...mutationOptions }} export type FetchChapterMutationResult = NonNullable>> export type FetchChapterMutationError = unknown /** * @summary Fetch chapter */ export const useFetchChapter = (options?: { mutation?:UseMutationOptions>, TError,{chapterId: number}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {chapterId: number}, TContext > => { const mutationOptions = getFetchChapterMutationOptions(options); return useMutation(mutationOptions, queryClient); } /** * Download a chapter as a compressed file by its ID. * @summary Download chapter archive */ export const downloadChapterArchive = ( chapterId: number, params: DownloadChapterArchiveParams, options?: SecondParameter,signal?: AbortSignal ) => { return customInstance( {url: `http://mangamochi.badger-pirarucu.ts.net:8080/mangas/chapters/${encodeURIComponent(String(chapterId))}/download`, method: 'POST', params, responseType: 'blob', signal }, options); } export const getDownloadChapterArchiveMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{chapterId: number;params: DownloadChapterArchiveParams}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{chapterId: number;params: DownloadChapterArchiveParams}, TContext> => { const mutationKey = ['downloadChapterArchive']; 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>, {chapterId: number;params: DownloadChapterArchiveParams}> = (props) => { const {chapterId,params} = props ?? {}; return downloadChapterArchive(chapterId,params,requestOptions) } return { mutationFn, ...mutationOptions }} export type DownloadChapterArchiveMutationResult = NonNullable>> export type DownloadChapterArchiveMutationError = unknown /** * @summary Download chapter archive */ export const useDownloadChapterArchive = (options?: { mutation?:UseMutationOptions>, TError,{chapterId: number;params: DownloadChapterArchiveParams}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {chapterId: number;params: DownloadChapterArchiveParams}, TContext > => { const mutationOptions = getDownloadChapterArchiveMutationOptions(options); return useMutation(mutationOptions, queryClient); } /** * Accepts multiple files via multipart/form-data and processes them. * @summary Upload multiple files */ export const importMultipleFiles = ( importMultipleFilesBody: ImportMultipleFilesBody, options?: SecondParameter,signal?: AbortSignal ) => { const formData = new FormData(); formData.append(`malId`, importMultipleFilesBody.malId) importMultipleFilesBody.files.forEach(value => formData.append(`files`, value)); return customInstance( {url: `http://mangamochi.badger-pirarucu.ts.net:8080/manga/import/upload`, method: 'POST', headers: {'Content-Type': 'multipart/form-data', }, data: formData, signal }, options); } export const getImportMultipleFilesMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: ImportMultipleFilesBody}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{data: ImportMultipleFilesBody}, TContext> => { const mutationKey = ['importMultipleFiles']; 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>, {data: ImportMultipleFilesBody}> = (props) => { const {data} = props ?? {}; return importMultipleFiles(data,requestOptions) } return { mutationFn, ...mutationOptions }} export type ImportMultipleFilesMutationResult = NonNullable>> export type ImportMultipleFilesMutationBody = ImportMultipleFilesBody export type ImportMultipleFilesMutationError = unknown /** * @summary Upload multiple files */ export const useImportMultipleFiles = (options?: { mutation?:UseMutationOptions>, TError,{data: ImportMultipleFilesBody}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {data: ImportMultipleFilesBody}, TContext > => { const mutationOptions = getImportMultipleFilesMutationOptions(options); return useMutation(mutationOptions, queryClient); } /** * Get list of pending import reviews. * @summary Get list of pending import reviews */ export const getImportReviews = ( options?: SecondParameter,signal?: AbortSignal ) => { return customInstance( {url: `http://mangamochi.badger-pirarucu.ts.net:8080/manga/import/review`, method: 'GET', signal }, options); } export const getGetImportReviewsQueryKey = () => { return [ `http://mangamochi.badger-pirarucu.ts.net:8080/manga/import/review` ] as const; } export const getGetImportReviewsQueryOptions = >, TError = unknown>( options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} ) => { const {query: queryOptions, request: requestOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetImportReviewsQueryKey(); const queryFn: QueryFunction>> = ({ signal }) => getImportReviews(requestOptions, signal); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetImportReviewsQueryResult = NonNullable>> export type GetImportReviewsQueryError = unknown export function useGetImportReviews>, TError = unknown>( options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, request?: SecondParameter} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetImportReviews>, TError = unknown>( options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, request?: SecondParameter} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetImportReviews>, TError = unknown>( options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get list of pending import reviews */ export function useGetImportReviews>, TError = unknown>( options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetImportReviewsQueryOptions(options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; query.queryKey = queryOptions.queryKey ; return query; } /** * Resolve import review by ID. * @summary Resolve import review */ export const resolveImportReview = ( params: ResolveImportReviewParams, options?: SecondParameter,signal?: AbortSignal ) => { return customInstance( {url: `http://mangamochi.badger-pirarucu.ts.net:8080/manga/import/review`, method: 'POST', params, signal }, options); } export const getResolveImportReviewMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{params: ResolveImportReviewParams}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{params: ResolveImportReviewParams}, TContext> => { const mutationKey = ['resolveImportReview']; 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>, {params: ResolveImportReviewParams}> = (props) => { const {params} = props ?? {}; return resolveImportReview(params,requestOptions) } return { mutationFn, ...mutationOptions }} export type ResolveImportReviewMutationResult = NonNullable>> export type ResolveImportReviewMutationError = unknown /** * @summary Resolve import review */ export const useResolveImportReview = (options?: { mutation?:UseMutationOptions>, TError,{params: ResolveImportReviewParams}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {params: ResolveImportReviewParams}, TContext > => { const mutationOptions = getResolveImportReviewMutationOptions(options); return useMutation(mutationOptions, queryClient); } /** * Imports manga data from MangaDex into the local database. * @summary Import manga from MangaDex */ export const importFromMangaDex = ( importMangaDexRequestDTO: ImportMangaDexRequestDTO, options?: SecondParameter,signal?: AbortSignal ) => { return customInstance( {url: `http://mangamochi.badger-pirarucu.ts.net:8080/manga/import/manga-dex`, method: 'POST', headers: {'Content-Type': 'application/json', }, data: importMangaDexRequestDTO, signal }, options); } export const getImportFromMangaDexMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: ImportMangaDexRequestDTO}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{data: ImportMangaDexRequestDTO}, TContext> => { const mutationKey = ['importFromMangaDex']; 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>, {data: ImportMangaDexRequestDTO}> = (props) => { const {data} = props ?? {}; return importFromMangaDex(data,requestOptions) } return { mutationFn, ...mutationOptions }} export type ImportFromMangaDexMutationResult = NonNullable>> export type ImportFromMangaDexMutationBody = ImportMangaDexRequestDTO export type ImportFromMangaDexMutationError = unknown /** * @summary Import manga from MangaDex */ export const useImportFromMangaDex = (options?: { mutation?:UseMutationOptions>, TError,{data: ImportMangaDexRequestDTO}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {data: ImportMangaDexRequestDTO}, TContext > => { const mutationOptions = getImportFromMangaDexMutationOptions(options); return useMutation(mutationOptions, queryClient); } /** * Register a new user. * @summary Register user */ export const registerUser = ( registrationRequestDTO: RegistrationRequestDTO, options?: SecondParameter,signal?: AbortSignal ) => { return customInstance( {url: `http://mangamochi.badger-pirarucu.ts.net:8080/auth/register`, method: 'POST', headers: {'Content-Type': 'application/json', }, data: registrationRequestDTO, signal }, options); } export const getRegisterUserMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: RegistrationRequestDTO}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{data: RegistrationRequestDTO}, TContext> => { const mutationKey = ['registerUser']; 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>, {data: RegistrationRequestDTO}> = (props) => { const {data} = props ?? {}; return registerUser(data,requestOptions) } return { mutationFn, ...mutationOptions }} export type RegisterUserMutationResult = NonNullable>> export type RegisterUserMutationBody = RegistrationRequestDTO export type RegisterUserMutationError = unknown /** * @summary Register user */ export const useRegisterUser = (options?: { mutation?:UseMutationOptions>, TError,{data: RegistrationRequestDTO}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {data: RegistrationRequestDTO}, TContext > => { const mutationOptions = getRegisterUserMutationOptions(options); return useMutation(mutationOptions, queryClient); } /** * Authenticate user with email and password. * @summary Authenticate user */ export const authenticateUser = ( authenticationRequestDTO: AuthenticationRequestDTO, options?: SecondParameter,signal?: AbortSignal ) => { return customInstance( {url: `http://mangamochi.badger-pirarucu.ts.net:8080/auth/login`, method: 'POST', headers: {'Content-Type': 'application/json', }, data: authenticationRequestDTO, signal }, options); } export const getAuthenticateUserMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: AuthenticationRequestDTO}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{data: AuthenticationRequestDTO}, TContext> => { const mutationKey = ['authenticateUser']; 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>, {data: AuthenticationRequestDTO}> = (props) => { const {data} = props ?? {}; return authenticateUser(data,requestOptions) } return { mutationFn, ...mutationOptions }} export type AuthenticateUserMutationResult = NonNullable>> export type AuthenticateUserMutationBody = AuthenticationRequestDTO export type AuthenticateUserMutationError = unknown /** * @summary Authenticate user */ export const useAuthenticateUser = (options?: { mutation?:UseMutationOptions>, TError,{data: AuthenticationRequestDTO}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {data: AuthenticationRequestDTO}, TContext > => { const mutationOptions = getAuthenticateUserMutationOptions(options); return useMutation(mutationOptions, queryClient); } /** * Retrieve a list of mangas with their details. * @summary Get a list of mangas */ export const getMangas = ( params?: GetMangasParams, options?: SecondParameter,signal?: AbortSignal ) => { return customInstance( {url: `http://mangamochi.badger-pirarucu.ts.net:8080/mangas`, method: 'GET', params, signal }, options); } export const getGetMangasQueryKey = (params?: GetMangasParams,) => { return [ `http://mangamochi.badger-pirarucu.ts.net:8080/mangas`, ...(params ? [params]: []) ] as const; } export const getGetMangasQueryOptions = >, TError = unknown>(params?: GetMangasParams, options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} ) => { const {query: queryOptions, request: requestOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetMangasQueryKey(params); const queryFn: QueryFunction>> = ({ signal }) => getMangas(params, requestOptions, signal); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetMangasQueryResult = NonNullable>> export type GetMangasQueryError = unknown export function useGetMangas>, TError = unknown>( params: undefined | GetMangasParams, options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, request?: SecondParameter} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetMangas>, TError = unknown>( params?: GetMangasParams, options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, request?: SecondParameter} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetMangas>, TError = unknown>( params?: GetMangasParams, options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get a list of mangas */ export function useGetMangas>, TError = unknown>( params?: GetMangasParams, options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetMangasQueryOptions(params,options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; query.queryKey = queryOptions.queryKey ; return query; } /** * Retrieve a list of manga chapters for a specific manga/provider combination. * @summary Get the available chapters for a specific manga/provider combination */ export const getMangaChapters = ( mangaProviderId: number, options?: SecondParameter,signal?: AbortSignal ) => { return customInstance( {url: `http://mangamochi.badger-pirarucu.ts.net:8080/mangas/${encodeURIComponent(String(mangaProviderId))}/chapters`, method: 'GET', signal }, options); } export const getGetMangaChaptersQueryKey = (mangaProviderId?: number,) => { return [ `http://mangamochi.badger-pirarucu.ts.net:8080/mangas/${mangaProviderId}/chapters` ] as const; } export const getGetMangaChaptersQueryOptions = >, TError = unknown>(mangaProviderId: number, options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} ) => { const {query: queryOptions, request: requestOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetMangaChaptersQueryKey(mangaProviderId); const queryFn: QueryFunction>> = ({ signal }) => getMangaChapters(mangaProviderId, requestOptions, signal); return { queryKey, queryFn, enabled: !!(mangaProviderId), ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetMangaChaptersQueryResult = NonNullable>> export type GetMangaChaptersQueryError = unknown export function useGetMangaChapters>, TError = unknown>( mangaProviderId: number, options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, request?: SecondParameter} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetMangaChapters>, TError = unknown>( mangaProviderId: number, options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, request?: SecondParameter} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetMangaChapters>, TError = unknown>( mangaProviderId: number, options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get the available chapters for a specific manga/provider combination */ export function useGetMangaChapters>, TError = unknown>( mangaProviderId: number, options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetMangaChaptersQueryOptions(mangaProviderId,options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; query.queryKey = queryOptions.queryKey ; return query; } /** * Get the details of a manga by its ID * @summary Get the details of a manga */ export const getManga = ( mangaId: number, options?: SecondParameter,signal?: AbortSignal ) => { return customInstance( {url: `http://mangamochi.badger-pirarucu.ts.net:8080/mangas/${encodeURIComponent(String(mangaId))}`, method: 'GET', signal }, options); } export const getGetMangaQueryKey = (mangaId?: number,) => { return [ `http://mangamochi.badger-pirarucu.ts.net:8080/mangas/${mangaId}` ] as const; } export const getGetMangaQueryOptions = >, TError = unknown>(mangaId: number, options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} ) => { const {query: queryOptions, request: requestOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetMangaQueryKey(mangaId); const queryFn: QueryFunction>> = ({ signal }) => getManga(mangaId, requestOptions, signal); return { queryKey, queryFn, enabled: !!(mangaId), ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetMangaQueryResult = NonNullable>> export type GetMangaQueryError = unknown export function useGetManga>, TError = unknown>( mangaId: number, options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, request?: SecondParameter} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetManga>, TError = unknown>( mangaId: number, options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, request?: SecondParameter} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetManga>, TError = unknown>( mangaId: number, options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get the details of a manga */ export function useGetManga>, TError = unknown>( mangaId: number, options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetMangaQueryOptions(mangaId,options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; query.queryKey = queryOptions.queryKey ; return query; } /** * Retrieve a list of manga chapter images for a specific manga/provider combination. * @summary Get the images for a specific manga/provider combination */ export const getMangaChapterImages = ( chapterId: number, options?: SecondParameter,signal?: AbortSignal ) => { return customInstance( {url: `http://mangamochi.badger-pirarucu.ts.net:8080/mangas/chapters/${encodeURIComponent(String(chapterId))}/images`, method: 'GET', signal }, options); } export const getGetMangaChapterImagesQueryKey = (chapterId?: number,) => { return [ `http://mangamochi.badger-pirarucu.ts.net:8080/mangas/chapters/${chapterId}/images` ] as const; } export const getGetMangaChapterImagesQueryOptions = >, TError = unknown>(chapterId: number, options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} ) => { const {query: queryOptions, request: requestOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetMangaChapterImagesQueryKey(chapterId); const queryFn: QueryFunction>> = ({ signal }) => getMangaChapterImages(chapterId, requestOptions, signal); return { queryKey, queryFn, enabled: !!(chapterId), ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetMangaChapterImagesQueryResult = NonNullable>> export type GetMangaChapterImagesQueryError = unknown export function useGetMangaChapterImages>, TError = unknown>( chapterId: number, options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, request?: SecondParameter} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetMangaChapterImages>, TError = unknown>( chapterId: number, options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, request?: SecondParameter} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetMangaChapterImages>, TError = unknown>( chapterId: number, options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get the images for a specific manga/provider combination */ export function useGetMangaChapterImages>, TError = unknown>( chapterId: number, options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetMangaChapterImagesQueryOptions(chapterId,options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; query.queryKey = queryOptions.queryKey ; return query; } /** * Retrieve a list of genres. * @summary Get a list of genres */ export const getGenres = ( options?: SecondParameter,signal?: AbortSignal ) => { return customInstance( {url: `http://mangamochi.badger-pirarucu.ts.net:8080/genres`, method: 'GET', signal }, options); } export const getGetGenresQueryKey = () => { return [ `http://mangamochi.badger-pirarucu.ts.net:8080/genres` ] as const; } export const getGetGenresQueryOptions = >, TError = unknown>( options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} ) => { const {query: queryOptions, request: requestOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetGenresQueryKey(); const queryFn: QueryFunction>> = ({ signal }) => getGenres(requestOptions, signal); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetGenresQueryResult = NonNullable>> export type GetGenresQueryError = unknown export function useGetGenres>, TError = unknown>( options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, request?: SecondParameter} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetGenres>, TError = unknown>( options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, request?: SecondParameter} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetGenres>, TError = unknown>( options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get a list of genres */ export function useGetGenres>, TError = unknown>( options?: { query?:Partial>, TError, TData>>, request?: SecondParameter} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetGenresQueryOptions(options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; query.queryKey = queryOptions.queryKey ; return query; } /** * Delete pending import review by ID. * @summary Delete pending import review */ export const deleteImportReview = ( id: number, options?: SecondParameter,) => { return customInstance( {url: `http://mangamochi.badger-pirarucu.ts.net:8080/manga/import/review/${encodeURIComponent(String(id))}`, method: 'DELETE' }, options); } export const getDeleteImportReviewMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{id: number}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{id: number}, TContext> => { const mutationKey = ['deleteImportReview']; 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>, {id: number}> = (props) => { const {id} = props ?? {}; return deleteImportReview(id,requestOptions) } return { mutationFn, ...mutationOptions }} export type DeleteImportReviewMutationResult = NonNullable>> export type DeleteImportReviewMutationError = unknown /** * @summary Delete pending import review */ export const useDeleteImportReview = (options?: { mutation?:UseMutationOptions>, TError,{id: number}, TContext>, request?: SecondParameter} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {id: number}, TContext > => { const mutationOptions = getDeleteImportReviewMutationOptions(options); return useMutation(mutationOptions, queryClient); }