/** * Generated by orval v8.5.3 🍺 * Do not edit manually. * AnthoLume API v1 * REST API for AnthoLume document management system * OpenAPI spec version: 1.0.0 */ 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 type { ActivityResponse, CreateActivityRequest, CreateActivityResponse, CreateDocumentBody, DirectoryListResponse, DocumentResponse, DocumentsResponse, EditDocumentBody, ErrorResponse, GetActivityParams, GetAdmin200, GetDocumentsParams, GetImportDirectoryParams, GetLogsParams, GetProgressListParams, GetSearchParams, GraphDataResponse, HomeResponse, ImportResultsResponse, InfoResponse, LoginRequest, LoginResponse, LogsResponse, MessageResponse, PostAdminActionBody, PostImportBody, PostSearchBody, ProgressListResponse, ProgressResponse, SearchResponse, SettingsResponse, StreaksResponse, UpdateProgressRequest, UpdateProgressResponse, UpdateSettingsRequest, UpdateUserBody, UploadDocumentCoverBody, UserStatisticsResponse, UsersResponse } from './model'; /** * @summary List documents */ export type getDocumentsResponse200 = { data: DocumentsResponse status: 200 } export type getDocumentsResponse401 = { data: ErrorResponse status: 401 } export type getDocumentsResponse500 = { data: ErrorResponse status: 500 } export type getDocumentsResponseSuccess = (getDocumentsResponse200) & { headers: Headers; }; export type getDocumentsResponseError = (getDocumentsResponse401 | getDocumentsResponse500) & { headers: Headers; }; export type getDocumentsResponse = (getDocumentsResponseSuccess | getDocumentsResponseError) export const getGetDocumentsUrl = (params?: GetDocumentsParams,) => { const normalizedParams = new URLSearchParams(); Object.entries(params || {}).forEach(([key, value]) => { if (value !== undefined) { normalizedParams.append(key, value === null ? 'null' : value.toString()) } }); const stringifiedParams = normalizedParams.toString(); return stringifiedParams.length > 0 ? `/api/v1/documents?${stringifiedParams}` : `/api/v1/documents` } export const getDocuments = async (params?: GetDocumentsParams, options?: RequestInit): Promise => { const res = await fetch(getGetDocumentsUrl(params), { ...options, method: 'GET' } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: getDocumentsResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as getDocumentsResponse } export const getGetDocumentsQueryKey = (params?: GetDocumentsParams,) => { return [ `/api/v1/documents`, ...(params ? [params] : []) ] as const; } export const getGetDocumentsQueryOptions = >, TError = ErrorResponse>(params?: GetDocumentsParams, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} ) => { const {query: queryOptions, fetch: fetchOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetDocumentsQueryKey(params); const queryFn: QueryFunction>> = ({ signal }) => getDocuments(params, { signal, ...fetchOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetDocumentsQueryResult = NonNullable>> export type GetDocumentsQueryError = ErrorResponse export function useGetDocuments>, TError = ErrorResponse>( params: undefined | GetDocumentsParams, options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetDocuments>, TError = ErrorResponse>( params?: GetDocumentsParams, options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetDocuments>, TError = ErrorResponse>( params?: GetDocumentsParams, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary List documents */ export function useGetDocuments>, TError = ErrorResponse>( params?: GetDocumentsParams, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetDocumentsQueryOptions(params,options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Upload a new document */ export type createDocumentResponse200 = { data: DocumentResponse status: 200 } export type createDocumentResponse400 = { data: ErrorResponse status: 400 } export type createDocumentResponse401 = { data: ErrorResponse status: 401 } export type createDocumentResponse500 = { data: ErrorResponse status: 500 } export type createDocumentResponseSuccess = (createDocumentResponse200) & { headers: Headers; }; export type createDocumentResponseError = (createDocumentResponse400 | createDocumentResponse401 | createDocumentResponse500) & { headers: Headers; }; export type createDocumentResponse = (createDocumentResponseSuccess | createDocumentResponseError) export const getCreateDocumentUrl = () => { return `/api/v1/documents` } export const createDocument = async (createDocumentBody: CreateDocumentBody, options?: RequestInit): Promise => { const formData = new FormData(); formData.append(`document_file`, createDocumentBody.document_file); const res = await fetch(getCreateDocumentUrl(), { ...options, method: 'POST' , body: formData, } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: createDocumentResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as createDocumentResponse } export const getCreateDocumentMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: CreateDocumentBody}, TContext>, fetch?: RequestInit} ): UseMutationOptions>, TError,{data: CreateDocumentBody}, TContext> => { const mutationKey = ['createDocument']; const {mutation: mutationOptions, fetch: fetchOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, fetch: undefined}; const mutationFn: MutationFunction>, {data: CreateDocumentBody}> = (props) => { const {data} = props ?? {}; return createDocument(data,fetchOptions) } return { mutationFn, ...mutationOptions }} export type CreateDocumentMutationResult = NonNullable>> export type CreateDocumentMutationBody = CreateDocumentBody export type CreateDocumentMutationError = ErrorResponse /** * @summary Upload a new document */ export const useCreateDocument = (options?: { mutation?:UseMutationOptions>, TError,{data: CreateDocumentBody}, TContext>, fetch?: RequestInit} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {data: CreateDocumentBody}, TContext > => { return useMutation(getCreateDocumentMutationOptions(options), queryClient); } /** * @summary Get a single document */ export type getDocumentResponse200 = { data: DocumentResponse status: 200 } export type getDocumentResponse401 = { data: ErrorResponse status: 401 } export type getDocumentResponse404 = { data: ErrorResponse status: 404 } export type getDocumentResponse500 = { data: ErrorResponse status: 500 } export type getDocumentResponseSuccess = (getDocumentResponse200) & { headers: Headers; }; export type getDocumentResponseError = (getDocumentResponse401 | getDocumentResponse404 | getDocumentResponse500) & { headers: Headers; }; export type getDocumentResponse = (getDocumentResponseSuccess | getDocumentResponseError) export const getGetDocumentUrl = (id: string,) => { return `/api/v1/documents/${id}` } export const getDocument = async (id: string, options?: RequestInit): Promise => { const res = await fetch(getGetDocumentUrl(id), { ...options, method: 'GET' } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: getDocumentResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as getDocumentResponse } export const getGetDocumentQueryKey = (id: string,) => { return [ `/api/v1/documents/${id}` ] as const; } export const getGetDocumentQueryOptions = >, TError = ErrorResponse>(id: string, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} ) => { const {query: queryOptions, fetch: fetchOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetDocumentQueryKey(id); const queryFn: QueryFunction>> = ({ signal }) => getDocument(id, { signal, ...fetchOptions }); return { queryKey, queryFn, enabled: !!(id), ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetDocumentQueryResult = NonNullable>> export type GetDocumentQueryError = ErrorResponse export function useGetDocument>, TError = ErrorResponse>( id: string, options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetDocument>, TError = ErrorResponse>( id: string, options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetDocument>, TError = ErrorResponse>( id: string, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get a single document */ export function useGetDocument>, TError = ErrorResponse>( id: string, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetDocumentQueryOptions(id,options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Update document editable fields */ export type editDocumentResponse200 = { data: DocumentResponse status: 200 } export type editDocumentResponse400 = { data: ErrorResponse status: 400 } export type editDocumentResponse401 = { data: ErrorResponse status: 401 } export type editDocumentResponse404 = { data: ErrorResponse status: 404 } export type editDocumentResponse500 = { data: ErrorResponse status: 500 } export type editDocumentResponseSuccess = (editDocumentResponse200) & { headers: Headers; }; export type editDocumentResponseError = (editDocumentResponse400 | editDocumentResponse401 | editDocumentResponse404 | editDocumentResponse500) & { headers: Headers; }; export type editDocumentResponse = (editDocumentResponseSuccess | editDocumentResponseError) export const getEditDocumentUrl = (id: string,) => { return `/api/v1/documents/${id}` } export const editDocument = async (id: string, editDocumentBody: EditDocumentBody, options?: RequestInit): Promise => { const res = await fetch(getEditDocumentUrl(id), { ...options, method: 'POST', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify( editDocumentBody,) } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: editDocumentResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as editDocumentResponse } export const getEditDocumentMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{id: string;data: EditDocumentBody}, TContext>, fetch?: RequestInit} ): UseMutationOptions>, TError,{id: string;data: EditDocumentBody}, TContext> => { const mutationKey = ['editDocument']; const {mutation: mutationOptions, fetch: fetchOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, fetch: undefined}; const mutationFn: MutationFunction>, {id: string;data: EditDocumentBody}> = (props) => { const {id,data} = props ?? {}; return editDocument(id,data,fetchOptions) } return { mutationFn, ...mutationOptions }} export type EditDocumentMutationResult = NonNullable>> export type EditDocumentMutationBody = EditDocumentBody export type EditDocumentMutationError = ErrorResponse /** * @summary Update document editable fields */ export const useEditDocument = (options?: { mutation?:UseMutationOptions>, TError,{id: string;data: EditDocumentBody}, TContext>, fetch?: RequestInit} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {id: string;data: EditDocumentBody}, TContext > => { return useMutation(getEditDocumentMutationOptions(options), queryClient); } /** * @summary Get document cover image */ export type getDocumentCoverResponse200ImageJpeg = { data: Blob status: 200 } export type getDocumentCoverResponse200ImagePng = { data: Blob status: 200 } export type getDocumentCoverResponse401 = { data: ErrorResponse status: 401 } export type getDocumentCoverResponse404 = { data: ErrorResponse status: 404 } export type getDocumentCoverResponse500 = { data: ErrorResponse status: 500 } export type getDocumentCoverResponseSuccess = (getDocumentCoverResponse200ImageJpeg | getDocumentCoverResponse200ImagePng) & { headers: Headers; }; export type getDocumentCoverResponseError = (getDocumentCoverResponse401 | getDocumentCoverResponse404 | getDocumentCoverResponse500) & { headers: Headers; }; export type getDocumentCoverResponse = (getDocumentCoverResponseSuccess | getDocumentCoverResponseError) export const getGetDocumentCoverUrl = (id: string,) => { return `/api/v1/documents/${id}/cover` } export const getDocumentCover = async (id: string, options?: RequestInit): Promise => { const res = await fetch(getGetDocumentCoverUrl(id), { ...options, method: 'GET' } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: getDocumentCoverResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as getDocumentCoverResponse } export const getGetDocumentCoverQueryKey = (id: string,) => { return [ `/api/v1/documents/${id}/cover` ] as const; } export const getGetDocumentCoverQueryOptions = >, TError = ErrorResponse>(id: string, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} ) => { const {query: queryOptions, fetch: fetchOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetDocumentCoverQueryKey(id); const queryFn: QueryFunction>> = ({ signal }) => getDocumentCover(id, { signal, ...fetchOptions }); return { queryKey, queryFn, enabled: !!(id), ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetDocumentCoverQueryResult = NonNullable>> export type GetDocumentCoverQueryError = ErrorResponse export function useGetDocumentCover>, TError = ErrorResponse>( id: string, options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetDocumentCover>, TError = ErrorResponse>( id: string, options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetDocumentCover>, TError = ErrorResponse>( id: string, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get document cover image */ export function useGetDocumentCover>, TError = ErrorResponse>( id: string, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetDocumentCoverQueryOptions(id,options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Upload document cover image */ export type uploadDocumentCoverResponse200 = { data: DocumentResponse status: 200 } export type uploadDocumentCoverResponse400 = { data: ErrorResponse status: 400 } export type uploadDocumentCoverResponse401 = { data: ErrorResponse status: 401 } export type uploadDocumentCoverResponse404 = { data: ErrorResponse status: 404 } export type uploadDocumentCoverResponse500 = { data: ErrorResponse status: 500 } export type uploadDocumentCoverResponseSuccess = (uploadDocumentCoverResponse200) & { headers: Headers; }; export type uploadDocumentCoverResponseError = (uploadDocumentCoverResponse400 | uploadDocumentCoverResponse401 | uploadDocumentCoverResponse404 | uploadDocumentCoverResponse500) & { headers: Headers; }; export type uploadDocumentCoverResponse = (uploadDocumentCoverResponseSuccess | uploadDocumentCoverResponseError) export const getUploadDocumentCoverUrl = (id: string,) => { return `/api/v1/documents/${id}/cover` } export const uploadDocumentCover = async (id: string, uploadDocumentCoverBody: UploadDocumentCoverBody, options?: RequestInit): Promise => { const formData = new FormData(); formData.append(`cover_file`, uploadDocumentCoverBody.cover_file); const res = await fetch(getUploadDocumentCoverUrl(id), { ...options, method: 'POST' , body: formData, } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: uploadDocumentCoverResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as uploadDocumentCoverResponse } export const getUploadDocumentCoverMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{id: string;data: UploadDocumentCoverBody}, TContext>, fetch?: RequestInit} ): UseMutationOptions>, TError,{id: string;data: UploadDocumentCoverBody}, TContext> => { const mutationKey = ['uploadDocumentCover']; const {mutation: mutationOptions, fetch: fetchOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, fetch: undefined}; const mutationFn: MutationFunction>, {id: string;data: UploadDocumentCoverBody}> = (props) => { const {id,data} = props ?? {}; return uploadDocumentCover(id,data,fetchOptions) } return { mutationFn, ...mutationOptions }} export type UploadDocumentCoverMutationResult = NonNullable>> export type UploadDocumentCoverMutationBody = UploadDocumentCoverBody export type UploadDocumentCoverMutationError = ErrorResponse /** * @summary Upload document cover image */ export const useUploadDocumentCover = (options?: { mutation?:UseMutationOptions>, TError,{id: string;data: UploadDocumentCoverBody}, TContext>, fetch?: RequestInit} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {id: string;data: UploadDocumentCoverBody}, TContext > => { return useMutation(getUploadDocumentCoverMutationOptions(options), queryClient); } /** * @summary Download document file */ export type getDocumentFileResponse200 = { data: Blob status: 200 } export type getDocumentFileResponse401 = { data: ErrorResponse status: 401 } export type getDocumentFileResponse404 = { data: ErrorResponse status: 404 } export type getDocumentFileResponse500 = { data: ErrorResponse status: 500 } export type getDocumentFileResponseSuccess = (getDocumentFileResponse200) & { headers: Headers; }; export type getDocumentFileResponseError = (getDocumentFileResponse401 | getDocumentFileResponse404 | getDocumentFileResponse500) & { headers: Headers; }; export type getDocumentFileResponse = (getDocumentFileResponseSuccess | getDocumentFileResponseError) export const getGetDocumentFileUrl = (id: string,) => { return `/api/v1/documents/${id}/file` } export const getDocumentFile = async (id: string, options?: RequestInit): Promise => { const res = await fetch(getGetDocumentFileUrl(id), { ...options, method: 'GET' } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: getDocumentFileResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as getDocumentFileResponse } export const getGetDocumentFileQueryKey = (id: string,) => { return [ `/api/v1/documents/${id}/file` ] as const; } export const getGetDocumentFileQueryOptions = >, TError = ErrorResponse>(id: string, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} ) => { const {query: queryOptions, fetch: fetchOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetDocumentFileQueryKey(id); const queryFn: QueryFunction>> = ({ signal }) => getDocumentFile(id, { signal, ...fetchOptions }); return { queryKey, queryFn, enabled: !!(id), ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetDocumentFileQueryResult = NonNullable>> export type GetDocumentFileQueryError = ErrorResponse export function useGetDocumentFile>, TError = ErrorResponse>( id: string, options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetDocumentFile>, TError = ErrorResponse>( id: string, options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetDocumentFile>, TError = ErrorResponse>( id: string, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Download document file */ export function useGetDocumentFile>, TError = ErrorResponse>( id: string, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetDocumentFileQueryOptions(id,options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary List progress records */ export type getProgressListResponse200 = { data: ProgressListResponse status: 200 } export type getProgressListResponse401 = { data: ErrorResponse status: 401 } export type getProgressListResponse500 = { data: ErrorResponse status: 500 } export type getProgressListResponseSuccess = (getProgressListResponse200) & { headers: Headers; }; export type getProgressListResponseError = (getProgressListResponse401 | getProgressListResponse500) & { headers: Headers; }; export type getProgressListResponse = (getProgressListResponseSuccess | getProgressListResponseError) export const getGetProgressListUrl = (params?: GetProgressListParams,) => { const normalizedParams = new URLSearchParams(); Object.entries(params || {}).forEach(([key, value]) => { if (value !== undefined) { normalizedParams.append(key, value === null ? 'null' : value.toString()) } }); const stringifiedParams = normalizedParams.toString(); return stringifiedParams.length > 0 ? `/api/v1/progress?${stringifiedParams}` : `/api/v1/progress` } export const getProgressList = async (params?: GetProgressListParams, options?: RequestInit): Promise => { const res = await fetch(getGetProgressListUrl(params), { ...options, method: 'GET' } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: getProgressListResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as getProgressListResponse } export const getGetProgressListQueryKey = (params?: GetProgressListParams,) => { return [ `/api/v1/progress`, ...(params ? [params] : []) ] as const; } export const getGetProgressListQueryOptions = >, TError = ErrorResponse>(params?: GetProgressListParams, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} ) => { const {query: queryOptions, fetch: fetchOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetProgressListQueryKey(params); const queryFn: QueryFunction>> = ({ signal }) => getProgressList(params, { signal, ...fetchOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetProgressListQueryResult = NonNullable>> export type GetProgressListQueryError = ErrorResponse export function useGetProgressList>, TError = ErrorResponse>( params: undefined | GetProgressListParams, options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetProgressList>, TError = ErrorResponse>( params?: GetProgressListParams, options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetProgressList>, TError = ErrorResponse>( params?: GetProgressListParams, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary List progress records */ export function useGetProgressList>, TError = ErrorResponse>( params?: GetProgressListParams, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetProgressListQueryOptions(params,options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Update document progress */ export type updateProgressResponse200 = { data: UpdateProgressResponse status: 200 } export type updateProgressResponse400 = { data: ErrorResponse status: 400 } export type updateProgressResponse401 = { data: ErrorResponse status: 401 } export type updateProgressResponse500 = { data: ErrorResponse status: 500 } export type updateProgressResponseSuccess = (updateProgressResponse200) & { headers: Headers; }; export type updateProgressResponseError = (updateProgressResponse400 | updateProgressResponse401 | updateProgressResponse500) & { headers: Headers; }; export type updateProgressResponse = (updateProgressResponseSuccess | updateProgressResponseError) export const getUpdateProgressUrl = () => { return `/api/v1/progress` } export const updateProgress = async (updateProgressRequest: UpdateProgressRequest, options?: RequestInit): Promise => { const res = await fetch(getUpdateProgressUrl(), { ...options, method: 'PUT', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify( updateProgressRequest,) } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: updateProgressResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as updateProgressResponse } export const getUpdateProgressMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: UpdateProgressRequest}, TContext>, fetch?: RequestInit} ): UseMutationOptions>, TError,{data: UpdateProgressRequest}, TContext> => { const mutationKey = ['updateProgress']; const {mutation: mutationOptions, fetch: fetchOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, fetch: undefined}; const mutationFn: MutationFunction>, {data: UpdateProgressRequest}> = (props) => { const {data} = props ?? {}; return updateProgress(data,fetchOptions) } return { mutationFn, ...mutationOptions }} export type UpdateProgressMutationResult = NonNullable>> export type UpdateProgressMutationBody = UpdateProgressRequest export type UpdateProgressMutationError = ErrorResponse /** * @summary Update document progress */ export const useUpdateProgress = (options?: { mutation?:UseMutationOptions>, TError,{data: UpdateProgressRequest}, TContext>, fetch?: RequestInit} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {data: UpdateProgressRequest}, TContext > => { return useMutation(getUpdateProgressMutationOptions(options), queryClient); } /** * @summary Get document progress */ export type getProgressResponse200 = { data: ProgressResponse status: 200 } export type getProgressResponse401 = { data: ErrorResponse status: 401 } export type getProgressResponse404 = { data: ErrorResponse status: 404 } export type getProgressResponse500 = { data: ErrorResponse status: 500 } export type getProgressResponseSuccess = (getProgressResponse200) & { headers: Headers; }; export type getProgressResponseError = (getProgressResponse401 | getProgressResponse404 | getProgressResponse500) & { headers: Headers; }; export type getProgressResponse = (getProgressResponseSuccess | getProgressResponseError) export const getGetProgressUrl = (id: string,) => { return `/api/v1/progress/${id}` } export const getProgress = async (id: string, options?: RequestInit): Promise => { const res = await fetch(getGetProgressUrl(id), { ...options, method: 'GET' } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: getProgressResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as getProgressResponse } export const getGetProgressQueryKey = (id: string,) => { return [ `/api/v1/progress/${id}` ] as const; } export const getGetProgressQueryOptions = >, TError = ErrorResponse>(id: string, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} ) => { const {query: queryOptions, fetch: fetchOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetProgressQueryKey(id); const queryFn: QueryFunction>> = ({ signal }) => getProgress(id, { signal, ...fetchOptions }); return { queryKey, queryFn, enabled: !!(id), ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetProgressQueryResult = NonNullable>> export type GetProgressQueryError = ErrorResponse export function useGetProgress>, TError = ErrorResponse>( id: string, options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetProgress>, TError = ErrorResponse>( id: string, options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetProgress>, TError = ErrorResponse>( id: string, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get document progress */ export function useGetProgress>, TError = ErrorResponse>( id: string, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetProgressQueryOptions(id,options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Get activity data */ export type getActivityResponse200 = { data: ActivityResponse status: 200 } export type getActivityResponse401 = { data: ErrorResponse status: 401 } export type getActivityResponse500 = { data: ErrorResponse status: 500 } export type getActivityResponseSuccess = (getActivityResponse200) & { headers: Headers; }; export type getActivityResponseError = (getActivityResponse401 | getActivityResponse500) & { headers: Headers; }; export type getActivityResponse = (getActivityResponseSuccess | getActivityResponseError) export const getGetActivityUrl = (params?: GetActivityParams,) => { const normalizedParams = new URLSearchParams(); Object.entries(params || {}).forEach(([key, value]) => { if (value !== undefined) { normalizedParams.append(key, value === null ? 'null' : value.toString()) } }); const stringifiedParams = normalizedParams.toString(); return stringifiedParams.length > 0 ? `/api/v1/activity?${stringifiedParams}` : `/api/v1/activity` } export const getActivity = async (params?: GetActivityParams, options?: RequestInit): Promise => { const res = await fetch(getGetActivityUrl(params), { ...options, method: 'GET' } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: getActivityResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as getActivityResponse } export const getGetActivityQueryKey = (params?: GetActivityParams,) => { return [ `/api/v1/activity`, ...(params ? [params] : []) ] as const; } export const getGetActivityQueryOptions = >, TError = ErrorResponse>(params?: GetActivityParams, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} ) => { const {query: queryOptions, fetch: fetchOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetActivityQueryKey(params); const queryFn: QueryFunction>> = ({ signal }) => getActivity(params, { signal, ...fetchOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetActivityQueryResult = NonNullable>> export type GetActivityQueryError = ErrorResponse export function useGetActivity>, TError = ErrorResponse>( params: undefined | GetActivityParams, options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetActivity>, TError = ErrorResponse>( params?: GetActivityParams, options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetActivity>, TError = ErrorResponse>( params?: GetActivityParams, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get activity data */ export function useGetActivity>, TError = ErrorResponse>( params?: GetActivityParams, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetActivityQueryOptions(params,options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Create activity records */ export type createActivityResponse200 = { data: CreateActivityResponse status: 200 } export type createActivityResponse400 = { data: ErrorResponse status: 400 } export type createActivityResponse401 = { data: ErrorResponse status: 401 } export type createActivityResponse500 = { data: ErrorResponse status: 500 } export type createActivityResponseSuccess = (createActivityResponse200) & { headers: Headers; }; export type createActivityResponseError = (createActivityResponse400 | createActivityResponse401 | createActivityResponse500) & { headers: Headers; }; export type createActivityResponse = (createActivityResponseSuccess | createActivityResponseError) export const getCreateActivityUrl = () => { return `/api/v1/activity` } export const createActivity = async (createActivityRequest: CreateActivityRequest, options?: RequestInit): Promise => { const res = await fetch(getCreateActivityUrl(), { ...options, method: 'POST', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify( createActivityRequest,) } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: createActivityResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as createActivityResponse } export const getCreateActivityMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: CreateActivityRequest}, TContext>, fetch?: RequestInit} ): UseMutationOptions>, TError,{data: CreateActivityRequest}, TContext> => { const mutationKey = ['createActivity']; const {mutation: mutationOptions, fetch: fetchOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, fetch: undefined}; const mutationFn: MutationFunction>, {data: CreateActivityRequest}> = (props) => { const {data} = props ?? {}; return createActivity(data,fetchOptions) } return { mutationFn, ...mutationOptions }} export type CreateActivityMutationResult = NonNullable>> export type CreateActivityMutationBody = CreateActivityRequest export type CreateActivityMutationError = ErrorResponse /** * @summary Create activity records */ export const useCreateActivity = (options?: { mutation?:UseMutationOptions>, TError,{data: CreateActivityRequest}, TContext>, fetch?: RequestInit} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {data: CreateActivityRequest}, TContext > => { return useMutation(getCreateActivityMutationOptions(options), queryClient); } /** * @summary Get user settings */ export type getSettingsResponse200 = { data: SettingsResponse status: 200 } export type getSettingsResponse401 = { data: ErrorResponse status: 401 } export type getSettingsResponse500 = { data: ErrorResponse status: 500 } export type getSettingsResponseSuccess = (getSettingsResponse200) & { headers: Headers; }; export type getSettingsResponseError = (getSettingsResponse401 | getSettingsResponse500) & { headers: Headers; }; export type getSettingsResponse = (getSettingsResponseSuccess | getSettingsResponseError) export const getGetSettingsUrl = () => { return `/api/v1/settings` } export const getSettings = async ( options?: RequestInit): Promise => { const res = await fetch(getGetSettingsUrl(), { ...options, method: 'GET' } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: getSettingsResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as getSettingsResponse } export const getGetSettingsQueryKey = () => { return [ `/api/v1/settings` ] as const; } export const getGetSettingsQueryOptions = >, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} ) => { const {query: queryOptions, fetch: fetchOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetSettingsQueryKey(); const queryFn: QueryFunction>> = ({ signal }) => getSettings({ signal, ...fetchOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetSettingsQueryResult = NonNullable>> export type GetSettingsQueryError = ErrorResponse export function useGetSettings>, TError = ErrorResponse>( options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetSettings>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetSettings>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get user settings */ export function useGetSettings>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetSettingsQueryOptions(options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Update user settings */ export type updateSettingsResponse200 = { data: SettingsResponse status: 200 } export type updateSettingsResponse400 = { data: ErrorResponse status: 400 } export type updateSettingsResponse401 = { data: ErrorResponse status: 401 } export type updateSettingsResponse500 = { data: ErrorResponse status: 500 } export type updateSettingsResponseSuccess = (updateSettingsResponse200) & { headers: Headers; }; export type updateSettingsResponseError = (updateSettingsResponse400 | updateSettingsResponse401 | updateSettingsResponse500) & { headers: Headers; }; export type updateSettingsResponse = (updateSettingsResponseSuccess | updateSettingsResponseError) export const getUpdateSettingsUrl = () => { return `/api/v1/settings` } export const updateSettings = async (updateSettingsRequest: UpdateSettingsRequest, options?: RequestInit): Promise => { const res = await fetch(getUpdateSettingsUrl(), { ...options, method: 'PUT', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify( updateSettingsRequest,) } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: updateSettingsResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as updateSettingsResponse } export const getUpdateSettingsMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: UpdateSettingsRequest}, TContext>, fetch?: RequestInit} ): UseMutationOptions>, TError,{data: UpdateSettingsRequest}, TContext> => { const mutationKey = ['updateSettings']; const {mutation: mutationOptions, fetch: fetchOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, fetch: undefined}; const mutationFn: MutationFunction>, {data: UpdateSettingsRequest}> = (props) => { const {data} = props ?? {}; return updateSettings(data,fetchOptions) } return { mutationFn, ...mutationOptions }} export type UpdateSettingsMutationResult = NonNullable>> export type UpdateSettingsMutationBody = UpdateSettingsRequest export type UpdateSettingsMutationError = ErrorResponse /** * @summary Update user settings */ export const useUpdateSettings = (options?: { mutation?:UseMutationOptions>, TError,{data: UpdateSettingsRequest}, TContext>, fetch?: RequestInit} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {data: UpdateSettingsRequest}, TContext > => { return useMutation(getUpdateSettingsMutationOptions(options), queryClient); } /** * @summary User login */ export type loginResponse200 = { data: LoginResponse status: 200 } export type loginResponse400 = { data: ErrorResponse status: 400 } export type loginResponse401 = { data: ErrorResponse status: 401 } export type loginResponse500 = { data: ErrorResponse status: 500 } export type loginResponseSuccess = (loginResponse200) & { headers: Headers; }; export type loginResponseError = (loginResponse400 | loginResponse401 | loginResponse500) & { headers: Headers; }; export type loginResponse = (loginResponseSuccess | loginResponseError) export const getLoginUrl = () => { return `/api/v1/auth/login` } export const login = async (loginRequest: LoginRequest, options?: RequestInit): Promise => { const res = await fetch(getLoginUrl(), { ...options, method: 'POST', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify( loginRequest,) } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: loginResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as loginResponse } export const getLoginMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: LoginRequest}, TContext>, fetch?: RequestInit} ): UseMutationOptions>, TError,{data: LoginRequest}, TContext> => { const mutationKey = ['login']; const {mutation: mutationOptions, fetch: fetchOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, fetch: undefined}; const mutationFn: MutationFunction>, {data: LoginRequest}> = (props) => { const {data} = props ?? {}; return login(data,fetchOptions) } return { mutationFn, ...mutationOptions }} export type LoginMutationResult = NonNullable>> export type LoginMutationBody = LoginRequest export type LoginMutationError = ErrorResponse /** * @summary User login */ export const useLogin = (options?: { mutation?:UseMutationOptions>, TError,{data: LoginRequest}, TContext>, fetch?: RequestInit} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {data: LoginRequest}, TContext > => { return useMutation(getLoginMutationOptions(options), queryClient); } /** * @summary User registration */ export type registerResponse201 = { data: LoginResponse status: 201 } export type registerResponse400 = { data: ErrorResponse status: 400 } export type registerResponse403 = { data: ErrorResponse status: 403 } export type registerResponse500 = { data: ErrorResponse status: 500 } export type registerResponseSuccess = (registerResponse201) & { headers: Headers; }; export type registerResponseError = (registerResponse400 | registerResponse403 | registerResponse500) & { headers: Headers; }; export type registerResponse = (registerResponseSuccess | registerResponseError) export const getRegisterUrl = () => { return `/api/v1/auth/register` } export const register = async (loginRequest: LoginRequest, options?: RequestInit): Promise => { const res = await fetch(getRegisterUrl(), { ...options, method: 'POST', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify( loginRequest,) } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: registerResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as registerResponse } export const getRegisterMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: LoginRequest}, TContext>, fetch?: RequestInit} ): UseMutationOptions>, TError,{data: LoginRequest}, TContext> => { const mutationKey = ['register']; const {mutation: mutationOptions, fetch: fetchOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, fetch: undefined}; const mutationFn: MutationFunction>, {data: LoginRequest}> = (props) => { const {data} = props ?? {}; return register(data,fetchOptions) } return { mutationFn, ...mutationOptions }} export type RegisterMutationResult = NonNullable>> export type RegisterMutationBody = LoginRequest export type RegisterMutationError = ErrorResponse /** * @summary User registration */ export const useRegister = (options?: { mutation?:UseMutationOptions>, TError,{data: LoginRequest}, TContext>, fetch?: RequestInit} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {data: LoginRequest}, TContext > => { return useMutation(getRegisterMutationOptions(options), queryClient); } /** * @summary User logout */ export type logoutResponse200 = { data: void status: 200 } export type logoutResponse401 = { data: ErrorResponse status: 401 } export type logoutResponseSuccess = (logoutResponse200) & { headers: Headers; }; export type logoutResponseError = (logoutResponse401) & { headers: Headers; }; export type logoutResponse = (logoutResponseSuccess | logoutResponseError) export const getLogoutUrl = () => { return `/api/v1/auth/logout` } export const logout = async ( options?: RequestInit): Promise => { const res = await fetch(getLogoutUrl(), { ...options, method: 'POST' } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: logoutResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as logoutResponse } export const getLogoutMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,void, TContext>, fetch?: RequestInit} ): UseMutationOptions>, TError,void, TContext> => { const mutationKey = ['logout']; const {mutation: mutationOptions, fetch: fetchOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, fetch: undefined}; const mutationFn: MutationFunction>, void> = () => { return logout(fetchOptions) } return { mutationFn, ...mutationOptions }} export type LogoutMutationResult = NonNullable>> export type LogoutMutationError = ErrorResponse /** * @summary User logout */ export const useLogout = (options?: { mutation?:UseMutationOptions>, TError,void, TContext>, fetch?: RequestInit} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, void, TContext > => { return useMutation(getLogoutMutationOptions(options), queryClient); } /** * @summary Get current user info */ export type getMeResponse200 = { data: LoginResponse status: 200 } export type getMeResponse401 = { data: ErrorResponse status: 401 } export type getMeResponseSuccess = (getMeResponse200) & { headers: Headers; }; export type getMeResponseError = (getMeResponse401) & { headers: Headers; }; export type getMeResponse = (getMeResponseSuccess | getMeResponseError) export const getGetMeUrl = () => { return `/api/v1/auth/me` } export const getMe = async ( options?: RequestInit): Promise => { const res = await fetch(getGetMeUrl(), { ...options, method: 'GET' } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: getMeResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as getMeResponse } export const getGetMeQueryKey = () => { return [ `/api/v1/auth/me` ] as const; } export const getGetMeQueryOptions = >, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} ) => { const {query: queryOptions, fetch: fetchOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetMeQueryKey(); const queryFn: QueryFunction>> = ({ signal }) => getMe({ signal, ...fetchOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetMeQueryResult = NonNullable>> export type GetMeQueryError = ErrorResponse export function useGetMe>, TError = ErrorResponse>( options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetMe>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetMe>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get current user info */ export function useGetMe>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetMeQueryOptions(options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Get server information */ export type getInfoResponse200 = { data: InfoResponse status: 200 } export type getInfoResponse500 = { data: ErrorResponse status: 500 } export type getInfoResponseSuccess = (getInfoResponse200) & { headers: Headers; }; export type getInfoResponseError = (getInfoResponse500) & { headers: Headers; }; export type getInfoResponse = (getInfoResponseSuccess | getInfoResponseError) export const getGetInfoUrl = () => { return `/api/v1/info` } export const getInfo = async ( options?: RequestInit): Promise => { const res = await fetch(getGetInfoUrl(), { ...options, method: 'GET' } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: getInfoResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as getInfoResponse } export const getGetInfoQueryKey = () => { return [ `/api/v1/info` ] as const; } export const getGetInfoQueryOptions = >, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} ) => { const {query: queryOptions, fetch: fetchOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetInfoQueryKey(); const queryFn: QueryFunction>> = ({ signal }) => getInfo({ signal, ...fetchOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetInfoQueryResult = NonNullable>> export type GetInfoQueryError = ErrorResponse export function useGetInfo>, TError = ErrorResponse>( options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetInfo>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetInfo>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get server information */ export function useGetInfo>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetInfoQueryOptions(options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Get home page data */ export type getHomeResponse200 = { data: HomeResponse status: 200 } export type getHomeResponse401 = { data: ErrorResponse status: 401 } export type getHomeResponse500 = { data: ErrorResponse status: 500 } export type getHomeResponseSuccess = (getHomeResponse200) & { headers: Headers; }; export type getHomeResponseError = (getHomeResponse401 | getHomeResponse500) & { headers: Headers; }; export type getHomeResponse = (getHomeResponseSuccess | getHomeResponseError) export const getGetHomeUrl = () => { return `/api/v1/home` } export const getHome = async ( options?: RequestInit): Promise => { const res = await fetch(getGetHomeUrl(), { ...options, method: 'GET' } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: getHomeResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as getHomeResponse } export const getGetHomeQueryKey = () => { return [ `/api/v1/home` ] as const; } export const getGetHomeQueryOptions = >, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} ) => { const {query: queryOptions, fetch: fetchOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetHomeQueryKey(); const queryFn: QueryFunction>> = ({ signal }) => getHome({ signal, ...fetchOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetHomeQueryResult = NonNullable>> export type GetHomeQueryError = ErrorResponse export function useGetHome>, TError = ErrorResponse>( options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetHome>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetHome>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get home page data */ export function useGetHome>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetHomeQueryOptions(options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Get user streaks */ export type getStreaksResponse200 = { data: StreaksResponse status: 200 } export type getStreaksResponse401 = { data: ErrorResponse status: 401 } export type getStreaksResponse500 = { data: ErrorResponse status: 500 } export type getStreaksResponseSuccess = (getStreaksResponse200) & { headers: Headers; }; export type getStreaksResponseError = (getStreaksResponse401 | getStreaksResponse500) & { headers: Headers; }; export type getStreaksResponse = (getStreaksResponseSuccess | getStreaksResponseError) export const getGetStreaksUrl = () => { return `/api/v1/home/streaks` } export const getStreaks = async ( options?: RequestInit): Promise => { const res = await fetch(getGetStreaksUrl(), { ...options, method: 'GET' } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: getStreaksResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as getStreaksResponse } export const getGetStreaksQueryKey = () => { return [ `/api/v1/home/streaks` ] as const; } export const getGetStreaksQueryOptions = >, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} ) => { const {query: queryOptions, fetch: fetchOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetStreaksQueryKey(); const queryFn: QueryFunction>> = ({ signal }) => getStreaks({ signal, ...fetchOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetStreaksQueryResult = NonNullable>> export type GetStreaksQueryError = ErrorResponse export function useGetStreaks>, TError = ErrorResponse>( options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetStreaks>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetStreaks>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get user streaks */ export function useGetStreaks>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetStreaksQueryOptions(options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Get daily read stats graph data */ export type getGraphDataResponse200 = { data: GraphDataResponse status: 200 } export type getGraphDataResponse401 = { data: ErrorResponse status: 401 } export type getGraphDataResponse500 = { data: ErrorResponse status: 500 } export type getGraphDataResponseSuccess = (getGraphDataResponse200) & { headers: Headers; }; export type getGraphDataResponseError = (getGraphDataResponse401 | getGraphDataResponse500) & { headers: Headers; }; export type getGraphDataResponse = (getGraphDataResponseSuccess | getGraphDataResponseError) export const getGetGraphDataUrl = () => { return `/api/v1/home/graph` } export const getGraphData = async ( options?: RequestInit): Promise => { const res = await fetch(getGetGraphDataUrl(), { ...options, method: 'GET' } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: getGraphDataResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as getGraphDataResponse } export const getGetGraphDataQueryKey = () => { return [ `/api/v1/home/graph` ] as const; } export const getGetGraphDataQueryOptions = >, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} ) => { const {query: queryOptions, fetch: fetchOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetGraphDataQueryKey(); const queryFn: QueryFunction>> = ({ signal }) => getGraphData({ signal, ...fetchOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetGraphDataQueryResult = NonNullable>> export type GetGraphDataQueryError = ErrorResponse export function useGetGraphData>, TError = ErrorResponse>( options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetGraphData>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetGraphData>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get daily read stats graph data */ export function useGetGraphData>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetGraphDataQueryOptions(options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Get user statistics (leaderboards) */ export type getUserStatisticsResponse200 = { data: UserStatisticsResponse status: 200 } export type getUserStatisticsResponse401 = { data: ErrorResponse status: 401 } export type getUserStatisticsResponse500 = { data: ErrorResponse status: 500 } export type getUserStatisticsResponseSuccess = (getUserStatisticsResponse200) & { headers: Headers; }; export type getUserStatisticsResponseError = (getUserStatisticsResponse401 | getUserStatisticsResponse500) & { headers: Headers; }; export type getUserStatisticsResponse = (getUserStatisticsResponseSuccess | getUserStatisticsResponseError) export const getGetUserStatisticsUrl = () => { return `/api/v1/home/statistics` } export const getUserStatistics = async ( options?: RequestInit): Promise => { const res = await fetch(getGetUserStatisticsUrl(), { ...options, method: 'GET' } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: getUserStatisticsResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as getUserStatisticsResponse } export const getGetUserStatisticsQueryKey = () => { return [ `/api/v1/home/statistics` ] as const; } export const getGetUserStatisticsQueryOptions = >, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} ) => { const {query: queryOptions, fetch: fetchOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetUserStatisticsQueryKey(); const queryFn: QueryFunction>> = ({ signal }) => getUserStatistics({ signal, ...fetchOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetUserStatisticsQueryResult = NonNullable>> export type GetUserStatisticsQueryError = ErrorResponse export function useGetUserStatistics>, TError = ErrorResponse>( options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetUserStatistics>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetUserStatistics>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get user statistics (leaderboards) */ export function useGetUserStatistics>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetUserStatisticsQueryOptions(options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Search external book sources */ export type getSearchResponse200 = { data: SearchResponse status: 200 } export type getSearchResponse400 = { data: ErrorResponse status: 400 } export type getSearchResponse401 = { data: ErrorResponse status: 401 } export type getSearchResponse500 = { data: ErrorResponse status: 500 } export type getSearchResponseSuccess = (getSearchResponse200) & { headers: Headers; }; export type getSearchResponseError = (getSearchResponse400 | getSearchResponse401 | getSearchResponse500) & { headers: Headers; }; export type getSearchResponse = (getSearchResponseSuccess | getSearchResponseError) export const getGetSearchUrl = (params: GetSearchParams,) => { const normalizedParams = new URLSearchParams(); Object.entries(params || {}).forEach(([key, value]) => { if (value !== undefined) { normalizedParams.append(key, value === null ? 'null' : value.toString()) } }); const stringifiedParams = normalizedParams.toString(); return stringifiedParams.length > 0 ? `/api/v1/search?${stringifiedParams}` : `/api/v1/search` } export const getSearch = async (params: GetSearchParams, options?: RequestInit): Promise => { const res = await fetch(getGetSearchUrl(params), { ...options, method: 'GET' } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: getSearchResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as getSearchResponse } export const getGetSearchQueryKey = (params?: GetSearchParams,) => { return [ `/api/v1/search`, ...(params ? [params] : []) ] as const; } export const getGetSearchQueryOptions = >, TError = ErrorResponse>(params: GetSearchParams, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} ) => { const {query: queryOptions, fetch: fetchOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetSearchQueryKey(params); const queryFn: QueryFunction>> = ({ signal }) => getSearch(params, { signal, ...fetchOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetSearchQueryResult = NonNullable>> export type GetSearchQueryError = ErrorResponse export function useGetSearch>, TError = ErrorResponse>( params: GetSearchParams, options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetSearch>, TError = ErrorResponse>( params: GetSearchParams, options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetSearch>, TError = ErrorResponse>( params: GetSearchParams, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Search external book sources */ export function useGetSearch>, TError = ErrorResponse>( params: GetSearchParams, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetSearchQueryOptions(params,options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Download search result */ export type postSearchResponse200 = { data: void status: 200 } export type postSearchResponse401 = { data: ErrorResponse status: 401 } export type postSearchResponse500 = { data: ErrorResponse status: 500 } export type postSearchResponseSuccess = (postSearchResponse200) & { headers: Headers; }; export type postSearchResponseError = (postSearchResponse401 | postSearchResponse500) & { headers: Headers; }; export type postSearchResponse = (postSearchResponseSuccess | postSearchResponseError) export const getPostSearchUrl = () => { return `/api/v1/search` } export const postSearch = async (postSearchBody: PostSearchBody, options?: RequestInit): Promise => { const formUrlEncoded = new URLSearchParams(); formUrlEncoded.append(`source`, postSearchBody.source); formUrlEncoded.append(`title`, postSearchBody.title); formUrlEncoded.append(`author`, postSearchBody.author); formUrlEncoded.append(`id`, postSearchBody.id); const res = await fetch(getPostSearchUrl(), { ...options, method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', ...options?.headers }, body: formUrlEncoded, } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: postSearchResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as postSearchResponse } export const getPostSearchMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: PostSearchBody}, TContext>, fetch?: RequestInit} ): UseMutationOptions>, TError,{data: PostSearchBody}, TContext> => { const mutationKey = ['postSearch']; const {mutation: mutationOptions, fetch: fetchOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, fetch: undefined}; const mutationFn: MutationFunction>, {data: PostSearchBody}> = (props) => { const {data} = props ?? {}; return postSearch(data,fetchOptions) } return { mutationFn, ...mutationOptions }} export type PostSearchMutationResult = NonNullable>> export type PostSearchMutationBody = PostSearchBody export type PostSearchMutationError = ErrorResponse /** * @summary Download search result */ export const usePostSearch = (options?: { mutation?:UseMutationOptions>, TError,{data: PostSearchBody}, TContext>, fetch?: RequestInit} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {data: PostSearchBody}, TContext > => { return useMutation(getPostSearchMutationOptions(options), queryClient); } /** * @summary Get admin page data */ export type getAdminResponse200 = { data: GetAdmin200 status: 200 } export type getAdminResponse401 = { data: ErrorResponse status: 401 } export type getAdminResponseSuccess = (getAdminResponse200) & { headers: Headers; }; export type getAdminResponseError = (getAdminResponse401) & { headers: Headers; }; export type getAdminResponse = (getAdminResponseSuccess | getAdminResponseError) export const getGetAdminUrl = () => { return `/api/v1/admin` } export const getAdmin = async ( options?: RequestInit): Promise => { const res = await fetch(getGetAdminUrl(), { ...options, method: 'GET' } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: getAdminResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as getAdminResponse } export const getGetAdminQueryKey = () => { return [ `/api/v1/admin` ] as const; } export const getGetAdminQueryOptions = >, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} ) => { const {query: queryOptions, fetch: fetchOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetAdminQueryKey(); const queryFn: QueryFunction>> = ({ signal }) => getAdmin({ signal, ...fetchOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetAdminQueryResult = NonNullable>> export type GetAdminQueryError = ErrorResponse export function useGetAdmin>, TError = ErrorResponse>( options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetAdmin>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetAdmin>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get admin page data */ export function useGetAdmin>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetAdminQueryOptions(options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Perform admin action (backup, restore, etc.) */ export type postAdminActionResponse200ApplicationJson = { data: MessageResponse status: 200 } export type postAdminActionResponse200ApplicationOctetStream = { data: Blob status: 200 } export type postAdminActionResponse400 = { data: ErrorResponse status: 400 } export type postAdminActionResponse401 = { data: ErrorResponse status: 401 } export type postAdminActionResponse500 = { data: ErrorResponse status: 500 } export type postAdminActionResponseSuccess = (postAdminActionResponse200ApplicationJson | postAdminActionResponse200ApplicationOctetStream) & { headers: Headers; }; export type postAdminActionResponseError = (postAdminActionResponse400 | postAdminActionResponse401 | postAdminActionResponse500) & { headers: Headers; }; export type postAdminActionResponse = (postAdminActionResponseSuccess | postAdminActionResponseError) export const getPostAdminActionUrl = () => { return `/api/v1/admin` } export const postAdminAction = async (postAdminActionBody: PostAdminActionBody, options?: RequestInit): Promise => { const formData = new FormData(); formData.append(`action`, postAdminActionBody.action); if(postAdminActionBody.backup_types !== undefined) { postAdminActionBody.backup_types.forEach(value => formData.append(`backup_types`, value)); } if(postAdminActionBody.restore_file !== undefined) { formData.append(`restore_file`, postAdminActionBody.restore_file); } const res = await fetch(getPostAdminActionUrl(), { ...options, method: 'POST' , body: formData, } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: postAdminActionResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as postAdminActionResponse } export const getPostAdminActionMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: PostAdminActionBody}, TContext>, fetch?: RequestInit} ): UseMutationOptions>, TError,{data: PostAdminActionBody}, TContext> => { const mutationKey = ['postAdminAction']; const {mutation: mutationOptions, fetch: fetchOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, fetch: undefined}; const mutationFn: MutationFunction>, {data: PostAdminActionBody}> = (props) => { const {data} = props ?? {}; return postAdminAction(data,fetchOptions) } return { mutationFn, ...mutationOptions }} export type PostAdminActionMutationResult = NonNullable>> export type PostAdminActionMutationBody = PostAdminActionBody export type PostAdminActionMutationError = ErrorResponse /** * @summary Perform admin action (backup, restore, etc.) */ export const usePostAdminAction = (options?: { mutation?:UseMutationOptions>, TError,{data: PostAdminActionBody}, TContext>, fetch?: RequestInit} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {data: PostAdminActionBody}, TContext > => { return useMutation(getPostAdminActionMutationOptions(options), queryClient); } /** * @summary Get all users */ export type getUsersResponse200 = { data: UsersResponse status: 200 } export type getUsersResponse401 = { data: ErrorResponse status: 401 } export type getUsersResponse500 = { data: ErrorResponse status: 500 } export type getUsersResponseSuccess = (getUsersResponse200) & { headers: Headers; }; export type getUsersResponseError = (getUsersResponse401 | getUsersResponse500) & { headers: Headers; }; export type getUsersResponse = (getUsersResponseSuccess | getUsersResponseError) export const getGetUsersUrl = () => { return `/api/v1/admin/users` } export const getUsers = async ( options?: RequestInit): Promise => { const res = await fetch(getGetUsersUrl(), { ...options, method: 'GET' } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: getUsersResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as getUsersResponse } export const getGetUsersQueryKey = () => { return [ `/api/v1/admin/users` ] as const; } export const getGetUsersQueryOptions = >, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} ) => { const {query: queryOptions, fetch: fetchOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetUsersQueryKey(); const queryFn: QueryFunction>> = ({ signal }) => getUsers({ signal, ...fetchOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetUsersQueryResult = NonNullable>> export type GetUsersQueryError = ErrorResponse export function useGetUsers>, TError = ErrorResponse>( options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetUsers>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetUsers>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get all users */ export function useGetUsers>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetUsersQueryOptions(options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Create, update, or delete user */ export type updateUserResponse200 = { data: UsersResponse status: 200 } export type updateUserResponse400 = { data: ErrorResponse status: 400 } export type updateUserResponse401 = { data: ErrorResponse status: 401 } export type updateUserResponse500 = { data: ErrorResponse status: 500 } export type updateUserResponseSuccess = (updateUserResponse200) & { headers: Headers; }; export type updateUserResponseError = (updateUserResponse400 | updateUserResponse401 | updateUserResponse500) & { headers: Headers; }; export type updateUserResponse = (updateUserResponseSuccess | updateUserResponseError) export const getUpdateUserUrl = () => { return `/api/v1/admin/users` } export const updateUser = async (updateUserBody: UpdateUserBody, options?: RequestInit): Promise => { const formUrlEncoded = new URLSearchParams(); formUrlEncoded.append(`operation`, updateUserBody.operation); formUrlEncoded.append(`user`, updateUserBody.user); if(updateUserBody.password !== undefined) { formUrlEncoded.append(`password`, updateUserBody.password); } if(updateUserBody.is_admin !== undefined) { formUrlEncoded.append(`is_admin`, updateUserBody.is_admin.toString()) } const res = await fetch(getUpdateUserUrl(), { ...options, method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', ...options?.headers }, body: formUrlEncoded, } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: updateUserResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as updateUserResponse } export const getUpdateUserMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: UpdateUserBody}, TContext>, fetch?: RequestInit} ): UseMutationOptions>, TError,{data: UpdateUserBody}, TContext> => { const mutationKey = ['updateUser']; const {mutation: mutationOptions, fetch: fetchOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, fetch: undefined}; const mutationFn: MutationFunction>, {data: UpdateUserBody}> = (props) => { const {data} = props ?? {}; return updateUser(data,fetchOptions) } return { mutationFn, ...mutationOptions }} export type UpdateUserMutationResult = NonNullable>> export type UpdateUserMutationBody = UpdateUserBody export type UpdateUserMutationError = ErrorResponse /** * @summary Create, update, or delete user */ export const useUpdateUser = (options?: { mutation?:UseMutationOptions>, TError,{data: UpdateUserBody}, TContext>, fetch?: RequestInit} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {data: UpdateUserBody}, TContext > => { return useMutation(getUpdateUserMutationOptions(options), queryClient); } /** * @summary Get import directory list */ export type getImportDirectoryResponse200 = { data: DirectoryListResponse status: 200 } export type getImportDirectoryResponse401 = { data: ErrorResponse status: 401 } export type getImportDirectoryResponse500 = { data: ErrorResponse status: 500 } export type getImportDirectoryResponseSuccess = (getImportDirectoryResponse200) & { headers: Headers; }; export type getImportDirectoryResponseError = (getImportDirectoryResponse401 | getImportDirectoryResponse500) & { headers: Headers; }; export type getImportDirectoryResponse = (getImportDirectoryResponseSuccess | getImportDirectoryResponseError) export const getGetImportDirectoryUrl = (params?: GetImportDirectoryParams,) => { const normalizedParams = new URLSearchParams(); Object.entries(params || {}).forEach(([key, value]) => { if (value !== undefined) { normalizedParams.append(key, value === null ? 'null' : value.toString()) } }); const stringifiedParams = normalizedParams.toString(); return stringifiedParams.length > 0 ? `/api/v1/admin/import?${stringifiedParams}` : `/api/v1/admin/import` } export const getImportDirectory = async (params?: GetImportDirectoryParams, options?: RequestInit): Promise => { const res = await fetch(getGetImportDirectoryUrl(params), { ...options, method: 'GET' } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: getImportDirectoryResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as getImportDirectoryResponse } export const getGetImportDirectoryQueryKey = (params?: GetImportDirectoryParams,) => { return [ `/api/v1/admin/import`, ...(params ? [params] : []) ] as const; } export const getGetImportDirectoryQueryOptions = >, TError = ErrorResponse>(params?: GetImportDirectoryParams, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} ) => { const {query: queryOptions, fetch: fetchOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetImportDirectoryQueryKey(params); const queryFn: QueryFunction>> = ({ signal }) => getImportDirectory(params, { signal, ...fetchOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetImportDirectoryQueryResult = NonNullable>> export type GetImportDirectoryQueryError = ErrorResponse export function useGetImportDirectory>, TError = ErrorResponse>( params: undefined | GetImportDirectoryParams, options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetImportDirectory>, TError = ErrorResponse>( params?: GetImportDirectoryParams, options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetImportDirectory>, TError = ErrorResponse>( params?: GetImportDirectoryParams, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get import directory list */ export function useGetImportDirectory>, TError = ErrorResponse>( params?: GetImportDirectoryParams, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetImportDirectoryQueryOptions(params,options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Perform import */ export type postImportResponse200 = { data: ImportResultsResponse status: 200 } export type postImportResponse400 = { data: ErrorResponse status: 400 } export type postImportResponse401 = { data: ErrorResponse status: 401 } export type postImportResponse500 = { data: ErrorResponse status: 500 } export type postImportResponseSuccess = (postImportResponse200) & { headers: Headers; }; export type postImportResponseError = (postImportResponse400 | postImportResponse401 | postImportResponse500) & { headers: Headers; }; export type postImportResponse = (postImportResponseSuccess | postImportResponseError) export const getPostImportUrl = () => { return `/api/v1/admin/import` } export const postImport = async (postImportBody: PostImportBody, options?: RequestInit): Promise => { const formUrlEncoded = new URLSearchParams(); formUrlEncoded.append(`directory`, postImportBody.directory); formUrlEncoded.append(`type`, postImportBody.type); const res = await fetch(getPostImportUrl(), { ...options, method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', ...options?.headers }, body: formUrlEncoded, } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: postImportResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as postImportResponse } export const getPostImportMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: PostImportBody}, TContext>, fetch?: RequestInit} ): UseMutationOptions>, TError,{data: PostImportBody}, TContext> => { const mutationKey = ['postImport']; const {mutation: mutationOptions, fetch: fetchOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, fetch: undefined}; const mutationFn: MutationFunction>, {data: PostImportBody}> = (props) => { const {data} = props ?? {}; return postImport(data,fetchOptions) } return { mutationFn, ...mutationOptions }} export type PostImportMutationResult = NonNullable>> export type PostImportMutationBody = PostImportBody export type PostImportMutationError = ErrorResponse /** * @summary Perform import */ export const usePostImport = (options?: { mutation?:UseMutationOptions>, TError,{data: PostImportBody}, TContext>, fetch?: RequestInit} , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {data: PostImportBody}, TContext > => { return useMutation(getPostImportMutationOptions(options), queryClient); } /** * @summary Get import results */ export type getImportResultsResponse200 = { data: ImportResultsResponse status: 200 } export type getImportResultsResponse401 = { data: ErrorResponse status: 401 } export type getImportResultsResponse500 = { data: ErrorResponse status: 500 } export type getImportResultsResponseSuccess = (getImportResultsResponse200) & { headers: Headers; }; export type getImportResultsResponseError = (getImportResultsResponse401 | getImportResultsResponse500) & { headers: Headers; }; export type getImportResultsResponse = (getImportResultsResponseSuccess | getImportResultsResponseError) export const getGetImportResultsUrl = () => { return `/api/v1/admin/import-results` } export const getImportResults = async ( options?: RequestInit): Promise => { const res = await fetch(getGetImportResultsUrl(), { ...options, method: 'GET' } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: getImportResultsResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as getImportResultsResponse } export const getGetImportResultsQueryKey = () => { return [ `/api/v1/admin/import-results` ] as const; } export const getGetImportResultsQueryOptions = >, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} ) => { const {query: queryOptions, fetch: fetchOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetImportResultsQueryKey(); const queryFn: QueryFunction>> = ({ signal }) => getImportResults({ signal, ...fetchOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetImportResultsQueryResult = NonNullable>> export type GetImportResultsQueryError = ErrorResponse export function useGetImportResults>, TError = ErrorResponse>( options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetImportResults>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetImportResults>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get import results */ export function useGetImportResults>, TError = ErrorResponse>( options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetImportResultsQueryOptions(options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Get logs with optional filter */ export type getLogsResponse200 = { data: LogsResponse status: 200 } export type getLogsResponse401 = { data: ErrorResponse status: 401 } export type getLogsResponse500 = { data: ErrorResponse status: 500 } export type getLogsResponseSuccess = (getLogsResponse200) & { headers: Headers; }; export type getLogsResponseError = (getLogsResponse401 | getLogsResponse500) & { headers: Headers; }; export type getLogsResponse = (getLogsResponseSuccess | getLogsResponseError) export const getGetLogsUrl = (params?: GetLogsParams,) => { const normalizedParams = new URLSearchParams(); Object.entries(params || {}).forEach(([key, value]) => { if (value !== undefined) { normalizedParams.append(key, value === null ? 'null' : value.toString()) } }); const stringifiedParams = normalizedParams.toString(); return stringifiedParams.length > 0 ? `/api/v1/admin/logs?${stringifiedParams}` : `/api/v1/admin/logs` } export const getLogs = async (params?: GetLogsParams, options?: RequestInit): Promise => { const res = await fetch(getGetLogsUrl(params), { ...options, method: 'GET' } ) const body = [204, 205, 304].includes(res.status) ? null : await res.text(); const data: getLogsResponse['data'] = body ? JSON.parse(body) : {} return { data, status: res.status, headers: res.headers } as getLogsResponse } export const getGetLogsQueryKey = (params?: GetLogsParams,) => { return [ `/api/v1/admin/logs`, ...(params ? [params] : []) ] as const; } export const getGetLogsQueryOptions = >, TError = ErrorResponse>(params?: GetLogsParams, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} ) => { const {query: queryOptions, fetch: fetchOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetLogsQueryKey(params); const queryFn: QueryFunction>> = ({ signal }) => getLogs(params, { signal, ...fetchOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetLogsQueryResult = NonNullable>> export type GetLogsQueryError = ErrorResponse export function useGetLogs>, TError = ErrorResponse>( params: undefined | GetLogsParams, options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetLogs>, TError = ErrorResponse>( params?: GetLogsParams, options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetLogs>, TError = ErrorResponse>( params?: GetLogsParams, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get logs with optional filter */ export function useGetLogs>, TError = ErrorResponse>( params?: GetLogsParams, options?: { query?:Partial>, TError, TData>>, fetch?: RequestInit} , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetLogsQueryOptions(params,options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; return { ...query, queryKey: queryOptions.queryKey }; }