/** * Generated by orval v8.5.3 🍺 * Do not edit manually. * Api * RAQIM — Document to Markdown conversion platform API * OpenAPI spec version: 0.1.0 */ import { useMutation, useQuery } from "@tanstack/react-query"; import type { MutationFunction, QueryFunction, QueryKey, UseMutationOptions, UseMutationResult, UseQueryOptions, UseQueryResult, } from "@tanstack/react-query"; import type { AdminCreateUserBody, AdminListUsersParams, AdminUpdateUserBody, AdminUser, AuthResponse, ConversionJob, CreateFolderBody, CreateShareBody, ErrorResponse, ExportBody, ExportResponse, FileContent, FileItem, Folder, ForgotPasswordBody, HealthStatus, JoinRequest, ListFilesParams, ListFoldersParams, LoginBody, MessageResponse, PlatformStats, ProcessJoinRequestBody, RegisterBody, ResetPasswordBody, SearchUsersForSharingParams, Share, StartConversionBody, TrashItems, UpdateContentBody, UpdateFileBody, UpdateFolderBody, UpdateShareBody, User, UserSummary, } from "./api.schemas"; import { customFetch } from "../custom-fetch"; import type { ErrorType, BodyType } from "../custom-fetch"; type AwaitedInput = PromiseLike | T; type Awaited = O extends AwaitedInput ? T : never; type SecondParameter unknown> = Parameters[1]; /** * @summary Health check */ export const getHealthCheckUrl = () => { return `/api/healthz`; }; export const healthCheck = async ( options?: RequestInit, ): Promise => { return customFetch(getHealthCheckUrl(), { ...options, method: "GET", }); }; export const getHealthCheckQueryKey = () => { return [`/api/healthz`] as const; }; export const getHealthCheckQueryOptions = < TData = Awaited>, TError = ErrorType, >(options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }) => { const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = queryOptions?.queryKey ?? getHealthCheckQueryKey(); const queryFn: QueryFunction>> = ({ signal, }) => healthCheck({ signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: QueryKey }; }; export type HealthCheckQueryResult = NonNullable< Awaited> >; export type HealthCheckQueryError = ErrorType; /** * @summary Health check */ export function useHealthCheck< TData = Awaited>, TError = ErrorType, >(options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getHealthCheckQueryOptions(options); const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey; }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Submit a join request (creates pending account) */ export const getRegisterUserUrl = () => { return `/api/auth/register`; }; export const registerUser = async ( registerBody: RegisterBody, options?: RequestInit, ): Promise => { return customFetch(getRegisterUserUrl(), { ...options, method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, body: JSON.stringify(registerBody), }); }; export const getRegisterUserMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext > => { const mutationKey = ["registerUser"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, { data: BodyType } > = (props) => { const { data } = props ?? {}; return registerUser(data, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type RegisterUserMutationResult = NonNullable< Awaited> >; export type RegisterUserMutationBody = BodyType; export type RegisterUserMutationError = ErrorType; /** * @summary Submit a join request (creates pending account) */ export const useRegisterUser = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { data: BodyType }, TContext > => { return useMutation(getRegisterUserMutationOptions(options)); }; /** * @summary Login with email and password */ export const getLoginUserUrl = () => { return `/api/auth/login`; }; export const loginUser = async ( loginBody: LoginBody, options?: RequestInit, ): Promise => { return customFetch(getLoginUserUrl(), { ...options, method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, body: JSON.stringify(loginBody), }); }; export const getLoginUserMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext > => { const mutationKey = ["loginUser"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, { data: BodyType } > = (props) => { const { data } = props ?? {}; return loginUser(data, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type LoginUserMutationResult = NonNullable< Awaited> >; export type LoginUserMutationBody = BodyType; export type LoginUserMutationError = ErrorType; /** * @summary Login with email and password */ export const useLoginUser = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { data: BodyType }, TContext > => { return useMutation(getLoginUserMutationOptions(options)); }; /** * @summary Logout and invalidate refresh token */ export const getLogoutUserUrl = () => { return `/api/auth/logout`; }; export const logoutUser = async ( options?: RequestInit, ): Promise => { return customFetch(getLogoutUserUrl(), { ...options, method: "POST", }); }; export const getLogoutUserMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, void, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, void, TContext > => { const mutationKey = ["logoutUser"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, void > = () => { return logoutUser(requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type LogoutUserMutationResult = NonNullable< Awaited> >; export type LogoutUserMutationError = ErrorType; /** * @summary Logout and invalidate refresh token */ export const useLogoutUser = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, void, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, void, TContext > => { return useMutation(getLogoutUserMutationOptions(options)); }; /** * @summary Refresh access token */ export const getRefreshTokenUrl = () => { return `/api/auth/refresh`; }; export const refreshToken = async ( options?: RequestInit, ): Promise => { return customFetch(getRefreshTokenUrl(), { ...options, method: "POST", }); }; export const getRefreshTokenMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, void, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, void, TContext > => { const mutationKey = ["refreshToken"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, void > = () => { return refreshToken(requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type RefreshTokenMutationResult = NonNullable< Awaited> >; export type RefreshTokenMutationError = ErrorType; /** * @summary Refresh access token */ export const useRefreshToken = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, void, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, void, TContext > => { return useMutation(getRefreshTokenMutationOptions(options)); }; /** * @summary Get current authenticated user */ export const getGetCurrentUserUrl = () => { return `/api/auth/me`; }; export const getCurrentUser = async (options?: RequestInit): Promise => { return customFetch(getGetCurrentUserUrl(), { ...options, method: "GET", }); }; export const getGetCurrentUserQueryKey = () => { return [`/api/auth/me`] as const; }; export const getGetCurrentUserQueryOptions = < TData = Awaited>, TError = ErrorType, >(options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }) => { const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetCurrentUserQueryKey(); const queryFn: QueryFunction>> = ({ signal, }) => getCurrentUser({ signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: QueryKey }; }; export type GetCurrentUserQueryResult = NonNullable< Awaited> >; export type GetCurrentUserQueryError = ErrorType; /** * @summary Get current authenticated user */ export function useGetCurrentUser< TData = Awaited>, TError = ErrorType, >(options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getGetCurrentUserQueryOptions(options); const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey; }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Request password reset email */ export const getForgotPasswordUrl = () => { return `/api/auth/forgot-password`; }; export const forgotPassword = async ( forgotPasswordBody: ForgotPasswordBody, options?: RequestInit, ): Promise => { return customFetch(getForgotPasswordUrl(), { ...options, method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, body: JSON.stringify(forgotPasswordBody), }); }; export const getForgotPasswordMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext > => { const mutationKey = ["forgotPassword"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, { data: BodyType } > = (props) => { const { data } = props ?? {}; return forgotPassword(data, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type ForgotPasswordMutationResult = NonNullable< Awaited> >; export type ForgotPasswordMutationBody = BodyType; export type ForgotPasswordMutationError = ErrorType; /** * @summary Request password reset email */ export const useForgotPassword = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { data: BodyType }, TContext > => { return useMutation(getForgotPasswordMutationOptions(options)); }; /** * @summary Reset password using token */ export const getResetPasswordUrl = () => { return `/api/auth/reset-password`; }; export const resetPassword = async ( resetPasswordBody: ResetPasswordBody, options?: RequestInit, ): Promise => { return customFetch(getResetPasswordUrl(), { ...options, method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, body: JSON.stringify(resetPasswordBody), }); }; export const getResetPasswordMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext > => { const mutationKey = ["resetPassword"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, { data: BodyType } > = (props) => { const { data } = props ?? {}; return resetPassword(data, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type ResetPasswordMutationResult = NonNullable< Awaited> >; export type ResetPasswordMutationBody = BodyType; export type ResetPasswordMutationError = ErrorType; /** * @summary Reset password using token */ export const useResetPassword = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { data: BodyType }, TContext > => { return useMutation(getResetPasswordMutationOptions(options)); }; /** * @summary List folders for current user */ export const getListFoldersUrl = (params?: ListFoldersParams) => { 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/folders?${stringifiedParams}` : `/api/folders`; }; export const listFolders = async ( params?: ListFoldersParams, options?: RequestInit, ): Promise => { return customFetch(getListFoldersUrl(params), { ...options, method: "GET", }); }; export const getListFoldersQueryKey = (params?: ListFoldersParams) => { return [`/api/folders`, ...(params ? [params] : [])] as const; }; export const getListFoldersQueryOptions = < TData = Awaited>, TError = ErrorType, >( params?: ListFoldersParams, options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }, ) => { const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = queryOptions?.queryKey ?? getListFoldersQueryKey(params); const queryFn: QueryFunction>> = ({ signal, }) => listFolders(params, { signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: QueryKey }; }; export type ListFoldersQueryResult = NonNullable< Awaited> >; export type ListFoldersQueryError = ErrorType; /** * @summary List folders for current user */ export function useListFolders< TData = Awaited>, TError = ErrorType, >( params?: ListFoldersParams, options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }, ): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getListFoldersQueryOptions(params, options); const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey; }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Create a new folder */ export const getCreateFolderUrl = () => { return `/api/folders`; }; export const createFolder = async ( createFolderBody: CreateFolderBody, options?: RequestInit, ): Promise => { return customFetch(getCreateFolderUrl(), { ...options, method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, body: JSON.stringify(createFolderBody), }); }; export const getCreateFolderMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext > => { const mutationKey = ["createFolder"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, { data: BodyType } > = (props) => { const { data } = props ?? {}; return createFolder(data, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type CreateFolderMutationResult = NonNullable< Awaited> >; export type CreateFolderMutationBody = BodyType; export type CreateFolderMutationError = ErrorType; /** * @summary Create a new folder */ export const useCreateFolder = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { data: BodyType }, TContext > => { return useMutation(getCreateFolderMutationOptions(options)); }; /** * @summary Rename or move a folder */ export const getUpdateFolderUrl = (id: string) => { return `/api/folders/${id}`; }; export const updateFolder = async ( id: string, updateFolderBody: UpdateFolderBody, options?: RequestInit, ): Promise => { return customFetch(getUpdateFolderUrl(id), { ...options, method: "PATCH", headers: { "Content-Type": "application/json", ...options?.headers }, body: JSON.stringify(updateFolderBody), }); }; export const getUpdateFolderMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string; data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { id: string; data: BodyType }, TContext > => { const mutationKey = ["updateFolder"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, { id: string; data: BodyType } > = (props) => { const { id, data } = props ?? {}; return updateFolder(id, data, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type UpdateFolderMutationResult = NonNullable< Awaited> >; export type UpdateFolderMutationBody = BodyType; export type UpdateFolderMutationError = ErrorType; /** * @summary Rename or move a folder */ export const useUpdateFolder = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string; data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { id: string; data: BodyType }, TContext > => { return useMutation(getUpdateFolderMutationOptions(options)); }; /** * @summary Move folder to trash */ export const getDeleteFolderUrl = (id: string) => { return `/api/folders/${id}`; }; export const deleteFolder = async ( id: string, options?: RequestInit, ): Promise => { return customFetch(getDeleteFolderUrl(id), { ...options, method: "DELETE", }); }; export const getDeleteFolderMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { id: string }, TContext > => { const mutationKey = ["deleteFolder"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, { id: string } > = (props) => { const { id } = props ?? {}; return deleteFolder(id, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type DeleteFolderMutationResult = NonNullable< Awaited> >; export type DeleteFolderMutationError = ErrorType; /** * @summary Move folder to trash */ export const useDeleteFolder = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { id: string }, TContext > => { return useMutation(getDeleteFolderMutationOptions(options)); }; /** * @summary List files for current user */ export const getListFilesUrl = (params?: ListFilesParams) => { 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/files?${stringifiedParams}` : `/api/files`; }; export const listFiles = async ( params?: ListFilesParams, options?: RequestInit, ): Promise => { return customFetch(getListFilesUrl(params), { ...options, method: "GET", }); }; export const getListFilesQueryKey = (params?: ListFilesParams) => { return [`/api/files`, ...(params ? [params] : [])] as const; }; export const getListFilesQueryOptions = < TData = Awaited>, TError = ErrorType, >( params?: ListFilesParams, options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }, ) => { const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = queryOptions?.queryKey ?? getListFilesQueryKey(params); const queryFn: QueryFunction>> = ({ signal, }) => listFiles(params, { signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: QueryKey }; }; export type ListFilesQueryResult = NonNullable< Awaited> >; export type ListFilesQueryError = ErrorType; /** * @summary List files for current user */ export function useListFiles< TData = Awaited>, TError = ErrorType, >( params?: ListFilesParams, options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }, ): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getListFilesQueryOptions(params, options); const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey; }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Get file metadata */ export const getGetFileUrl = (id: string) => { return `/api/files/${id}`; }; export const getFile = async ( id: string, options?: RequestInit, ): Promise => { return customFetch(getGetFileUrl(id), { ...options, method: "GET", }); }; export const getGetFileQueryKey = (id: string) => { return [`/api/files/${id}`] as const; }; export const getGetFileQueryOptions = < TData = Awaited>, TError = ErrorType, >( id: string, options?: { query?: UseQueryOptions>, TError, TData>; request?: SecondParameter; }, ) => { const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetFileQueryKey(id); const queryFn: QueryFunction>> = ({ signal, }) => getFile(id, { signal, ...requestOptions }); return { queryKey, queryFn, enabled: !!id, ...queryOptions, } as UseQueryOptions>, TError, TData> & { queryKey: QueryKey; }; }; export type GetFileQueryResult = NonNullable< Awaited> >; export type GetFileQueryError = ErrorType; /** * @summary Get file metadata */ export function useGetFile< TData = Awaited>, TError = ErrorType, >( id: string, options?: { query?: UseQueryOptions>, TError, TData>; request?: SecondParameter; }, ): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getGetFileQueryOptions(id, options); const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey; }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Rename or move a file */ export const getUpdateFileUrl = (id: string) => { return `/api/files/${id}`; }; export const updateFile = async ( id: string, updateFileBody: UpdateFileBody, options?: RequestInit, ): Promise => { return customFetch(getUpdateFileUrl(id), { ...options, method: "PATCH", headers: { "Content-Type": "application/json", ...options?.headers }, body: JSON.stringify(updateFileBody), }); }; export const getUpdateFileMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string; data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { id: string; data: BodyType }, TContext > => { const mutationKey = ["updateFile"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, { id: string; data: BodyType } > = (props) => { const { id, data } = props ?? {}; return updateFile(id, data, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type UpdateFileMutationResult = NonNullable< Awaited> >; export type UpdateFileMutationBody = BodyType; export type UpdateFileMutationError = ErrorType; /** * @summary Rename or move a file */ export const useUpdateFile = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string; data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { id: string; data: BodyType }, TContext > => { return useMutation(getUpdateFileMutationOptions(options)); }; /** * @summary Move file to trash */ export const getDeleteFileUrl = (id: string) => { return `/api/files/${id}`; }; export const deleteFile = async ( id: string, options?: RequestInit, ): Promise => { return customFetch(getDeleteFileUrl(id), { ...options, method: "DELETE", }); }; export const getDeleteFileMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { id: string }, TContext > => { const mutationKey = ["deleteFile"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, { id: string } > = (props) => { const { id } = props ?? {}; return deleteFile(id, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type DeleteFileMutationResult = NonNullable< Awaited> >; export type DeleteFileMutationError = ErrorType; /** * @summary Move file to trash */ export const useDeleteFile = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { id: string }, TContext > => { return useMutation(getDeleteFileMutationOptions(options)); }; /** * @summary Get file markdown content */ export const getGetFileContentUrl = (id: string) => { return `/api/files/${id}/content`; }; export const getFileContent = async ( id: string, options?: RequestInit, ): Promise => { return customFetch(getGetFileContentUrl(id), { ...options, method: "GET", }); }; export const getGetFileContentQueryKey = (id: string) => { return [`/api/files/${id}/content`] as const; }; export const getGetFileContentQueryOptions = < TData = Awaited>, TError = ErrorType, >( id: string, options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }, ) => { const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetFileContentQueryKey(id); const queryFn: QueryFunction>> = ({ signal, }) => getFileContent(id, { signal, ...requestOptions }); return { queryKey, queryFn, enabled: !!id, ...queryOptions, } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: QueryKey }; }; export type GetFileContentQueryResult = NonNullable< Awaited> >; export type GetFileContentQueryError = ErrorType; /** * @summary Get file markdown content */ export function useGetFileContent< TData = Awaited>, TError = ErrorType, >( id: string, options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }, ): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getGetFileContentQueryOptions(id, options); const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey; }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Update file markdown content (auto-save) */ export const getUpdateFileContentUrl = (id: string) => { return `/api/files/${id}/content`; }; export const updateFileContent = async ( id: string, updateContentBody: UpdateContentBody, options?: RequestInit, ): Promise => { return customFetch(getUpdateFileContentUrl(id), { ...options, method: "PUT", headers: { "Content-Type": "application/json", ...options?.headers }, body: JSON.stringify(updateContentBody), }); }; export const getUpdateFileContentMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string; data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { id: string; data: BodyType }, TContext > => { const mutationKey = ["updateFileContent"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, { id: string; data: BodyType } > = (props) => { const { id, data } = props ?? {}; return updateFileContent(id, data, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type UpdateFileContentMutationResult = NonNullable< Awaited> >; export type UpdateFileContentMutationBody = BodyType; export type UpdateFileContentMutationError = ErrorType; /** * @summary Update file markdown content (auto-save) */ export const useUpdateFileContent = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string; data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { id: string; data: BodyType }, TContext > => { return useMutation(getUpdateFileContentMutationOptions(options)); }; /** * @summary Restore file from trash */ export const getRestoreFileUrl = (id: string) => { return `/api/files/${id}/restore`; }; export const restoreFile = async ( id: string, options?: RequestInit, ): Promise => { return customFetch(getRestoreFileUrl(id), { ...options, method: "POST", }); }; export const getRestoreFileMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { id: string }, TContext > => { const mutationKey = ["restoreFile"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, { id: string } > = (props) => { const { id } = props ?? {}; return restoreFile(id, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type RestoreFileMutationResult = NonNullable< Awaited> >; export type RestoreFileMutationError = ErrorType; /** * @summary Restore file from trash */ export const useRestoreFile = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { id: string }, TContext > => { return useMutation(getRestoreFileMutationOptions(options)); }; /** * @summary Export file as DOCX or PDF */ export const getExportFileUrl = (id: string) => { return `/api/files/${id}/export`; }; export const exportFile = async ( id: string, exportBody: ExportBody, options?: RequestInit, ): Promise => { return customFetch(getExportFileUrl(id), { ...options, method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, body: JSON.stringify(exportBody), }); }; export const getExportFileMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string; data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { id: string; data: BodyType }, TContext > => { const mutationKey = ["exportFile"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, { id: string; data: BodyType } > = (props) => { const { id, data } = props ?? {}; return exportFile(id, data, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type ExportFileMutationResult = NonNullable< Awaited> >; export type ExportFileMutationBody = BodyType; export type ExportFileMutationError = ErrorType; /** * @summary Export file as DOCX or PDF */ export const useExportFile = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string; data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { id: string; data: BodyType }, TContext > => { return useMutation(getExportFileMutationOptions(options)); }; /** * @summary Start document conversion job */ export const getStartConversionUrl = () => { return `/api/convert`; }; export const startConversion = async ( startConversionBody: StartConversionBody, options?: RequestInit, ): Promise => { return customFetch(getStartConversionUrl(), { ...options, method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, body: JSON.stringify(startConversionBody), }); }; export const getStartConversionMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext > => { const mutationKey = ["startConversion"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, { data: BodyType } > = (props) => { const { data } = props ?? {}; return startConversion(data, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type StartConversionMutationResult = NonNullable< Awaited> >; export type StartConversionMutationBody = BodyType; export type StartConversionMutationError = ErrorType; /** * @summary Start document conversion job */ export const useStartConversion = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { data: BodyType }, TContext > => { return useMutation(getStartConversionMutationOptions(options)); }; /** * @summary Get conversion job status and progress */ export const getGetConversionStatusUrl = (jobId: string) => { return `/api/convert/${jobId}`; }; export const getConversionStatus = async ( jobId: string, options?: RequestInit, ): Promise => { return customFetch(getGetConversionStatusUrl(jobId), { ...options, method: "GET", }); }; export const getGetConversionStatusQueryKey = (jobId: string) => { return [`/api/convert/${jobId}`] as const; }; export const getGetConversionStatusQueryOptions = < TData = Awaited>, TError = ErrorType, >( jobId: string, options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }, ) => { const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetConversionStatusQueryKey(jobId); const queryFn: QueryFunction< Awaited> > = ({ signal }) => getConversionStatus(jobId, { signal, ...requestOptions }); return { queryKey, queryFn, enabled: !!jobId, ...queryOptions, } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: QueryKey }; }; export type GetConversionStatusQueryResult = NonNullable< Awaited> >; export type GetConversionStatusQueryError = ErrorType; /** * @summary Get conversion job status and progress */ export function useGetConversionStatus< TData = Awaited>, TError = ErrorType, >( jobId: string, options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }, ): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getGetConversionStatusQueryOptions(jobId, options); const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey; }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Upload file and start conversion */ export const getUploadAndConvertUrl = () => { return `/api/convert/upload`; }; export const uploadAndConvert = async ( options?: RequestInit, ): Promise => { return customFetch(getUploadAndConvertUrl(), { ...options, method: "POST", }); }; export const getUploadAndConvertMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, void, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, void, TContext > => { const mutationKey = ["uploadAndConvert"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, void > = () => { return uploadAndConvert(requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type UploadAndConvertMutationResult = NonNullable< Awaited> >; export type UploadAndConvertMutationError = ErrorType; /** * @summary Upload file and start conversion */ export const useUploadAndConvert = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, void, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, void, TContext > => { return useMutation(getUploadAndConvertMutationOptions(options)); }; /** * @summary List shares for current user (owned + shared with me) */ export const getListSharesUrl = () => { return `/api/shares`; }; export const listShares = async (options?: RequestInit): Promise => { return customFetch(getListSharesUrl(), { ...options, method: "GET", }); }; export const getListSharesQueryKey = () => { return [`/api/shares`] as const; }; export const getListSharesQueryOptions = < TData = Awaited>, TError = ErrorType, >(options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }) => { const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = queryOptions?.queryKey ?? getListSharesQueryKey(); const queryFn: QueryFunction>> = ({ signal, }) => listShares({ signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: QueryKey }; }; export type ListSharesQueryResult = NonNullable< Awaited> >; export type ListSharesQueryError = ErrorType; /** * @summary List shares for current user (owned + shared with me) */ export function useListShares< TData = Awaited>, TError = ErrorType, >(options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getListSharesQueryOptions(options); const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey; }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Share a file or folder with a user */ export const getCreateShareUrl = () => { return `/api/shares`; }; export const createShare = async ( createShareBody: CreateShareBody, options?: RequestInit, ): Promise => { return customFetch(getCreateShareUrl(), { ...options, method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, body: JSON.stringify(createShareBody), }); }; export const getCreateShareMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext > => { const mutationKey = ["createShare"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, { data: BodyType } > = (props) => { const { data } = props ?? {}; return createShare(data, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type CreateShareMutationResult = NonNullable< Awaited> >; export type CreateShareMutationBody = BodyType; export type CreateShareMutationError = ErrorType; /** * @summary Share a file or folder with a user */ export const useCreateShare = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { data: BodyType }, TContext > => { return useMutation(getCreateShareMutationOptions(options)); }; /** * @summary Update share permission */ export const getUpdateShareUrl = (id: string) => { return `/api/shares/${id}`; }; export const updateShare = async ( id: string, updateShareBody: UpdateShareBody, options?: RequestInit, ): Promise => { return customFetch(getUpdateShareUrl(id), { ...options, method: "PATCH", headers: { "Content-Type": "application/json", ...options?.headers }, body: JSON.stringify(updateShareBody), }); }; export const getUpdateShareMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string; data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { id: string; data: BodyType }, TContext > => { const mutationKey = ["updateShare"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, { id: string; data: BodyType } > = (props) => { const { id, data } = props ?? {}; return updateShare(id, data, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type UpdateShareMutationResult = NonNullable< Awaited> >; export type UpdateShareMutationBody = BodyType; export type UpdateShareMutationError = ErrorType; /** * @summary Update share permission */ export const useUpdateShare = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string; data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { id: string; data: BodyType }, TContext > => { return useMutation(getUpdateShareMutationOptions(options)); }; /** * @summary Remove a share */ export const getDeleteShareUrl = (id: string) => { return `/api/shares/${id}`; }; export const deleteShare = async ( id: string, options?: RequestInit, ): Promise => { return customFetch(getDeleteShareUrl(id), { ...options, method: "DELETE", }); }; export const getDeleteShareMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { id: string }, TContext > => { const mutationKey = ["deleteShare"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, { id: string } > = (props) => { const { id } = props ?? {}; return deleteShare(id, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type DeleteShareMutationResult = NonNullable< Awaited> >; export type DeleteShareMutationError = ErrorType; /** * @summary Remove a share */ export const useDeleteShare = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { id: string }, TContext > => { return useMutation(getDeleteShareMutationOptions(options)); }; /** * @summary Search users by email or username for sharing */ export const getSearchUsersForSharingUrl = ( params: SearchUsersForSharingParams, ) => { 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/shares/search-users?${stringifiedParams}` : `/api/shares/search-users`; }; export const searchUsersForSharing = async ( params: SearchUsersForSharingParams, options?: RequestInit, ): Promise => { return customFetch(getSearchUsersForSharingUrl(params), { ...options, method: "GET", }); }; export const getSearchUsersForSharingQueryKey = ( params?: SearchUsersForSharingParams, ) => { return [`/api/shares/search-users`, ...(params ? [params] : [])] as const; }; export const getSearchUsersForSharingQueryOptions = < TData = Awaited>, TError = ErrorType, >( params: SearchUsersForSharingParams, options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }, ) => { const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = queryOptions?.queryKey ?? getSearchUsersForSharingQueryKey(params); const queryFn: QueryFunction< Awaited> > = ({ signal }) => searchUsersForSharing(params, { signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: QueryKey }; }; export type SearchUsersForSharingQueryResult = NonNullable< Awaited> >; export type SearchUsersForSharingQueryError = ErrorType; /** * @summary Search users by email or username for sharing */ export function useSearchUsersForSharing< TData = Awaited>, TError = ErrorType, >( params: SearchUsersForSharingParams, options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }, ): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getSearchUsersForSharingQueryOptions(params, options); const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey; }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary List all users */ export const getAdminListUsersUrl = (params?: AdminListUsersParams) => { 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/admin/users?${stringifiedParams}` : `/api/admin/users`; }; export const adminListUsers = async ( params?: AdminListUsersParams, options?: RequestInit, ): Promise => { return customFetch(getAdminListUsersUrl(params), { ...options, method: "GET", }); }; export const getAdminListUsersQueryKey = (params?: AdminListUsersParams) => { return [`/api/admin/users`, ...(params ? [params] : [])] as const; }; export const getAdminListUsersQueryOptions = < TData = Awaited>, TError = ErrorType, >( params?: AdminListUsersParams, options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }, ) => { const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = queryOptions?.queryKey ?? getAdminListUsersQueryKey(params); const queryFn: QueryFunction>> = ({ signal, }) => adminListUsers(params, { signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: QueryKey }; }; export type AdminListUsersQueryResult = NonNullable< Awaited> >; export type AdminListUsersQueryError = ErrorType; /** * @summary List all users */ export function useAdminListUsers< TData = Awaited>, TError = ErrorType, >( params?: AdminListUsersParams, options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }, ): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getAdminListUsersQueryOptions(params, options); const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey; }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Admin creates user directly (active status) */ export const getAdminCreateUserUrl = () => { return `/api/admin/users`; }; export const adminCreateUser = async ( adminCreateUserBody: AdminCreateUserBody, options?: RequestInit, ): Promise => { return customFetch(getAdminCreateUserUrl(), { ...options, method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, body: JSON.stringify(adminCreateUserBody), }); }; export const getAdminCreateUserMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext > => { const mutationKey = ["adminCreateUser"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, { data: BodyType } > = (props) => { const { data } = props ?? {}; return adminCreateUser(data, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type AdminCreateUserMutationResult = NonNullable< Awaited> >; export type AdminCreateUserMutationBody = BodyType; export type AdminCreateUserMutationError = ErrorType; /** * @summary Admin creates user directly (active status) */ export const useAdminCreateUser = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { data: BodyType }, TContext > => { return useMutation(getAdminCreateUserMutationOptions(options)); }; /** * @summary Update user role or status */ export const getAdminUpdateUserUrl = (id: string) => { return `/api/admin/users/${id}`; }; export const adminUpdateUser = async ( id: string, adminUpdateUserBody: AdminUpdateUserBody, options?: RequestInit, ): Promise => { return customFetch(getAdminUpdateUserUrl(id), { ...options, method: "PATCH", headers: { "Content-Type": "application/json", ...options?.headers }, body: JSON.stringify(adminUpdateUserBody), }); }; export const getAdminUpdateUserMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string; data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { id: string; data: BodyType }, TContext > => { const mutationKey = ["adminUpdateUser"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, { id: string; data: BodyType } > = (props) => { const { id, data } = props ?? {}; return adminUpdateUser(id, data, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type AdminUpdateUserMutationResult = NonNullable< Awaited> >; export type AdminUpdateUserMutationBody = BodyType; export type AdminUpdateUserMutationError = ErrorType; /** * @summary Update user role or status */ export const useAdminUpdateUser = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string; data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { id: string; data: BodyType }, TContext > => { return useMutation(getAdminUpdateUserMutationOptions(options)); }; /** * @summary Permanently delete a user */ export const getAdminDeleteUserUrl = (id: string) => { return `/api/admin/users/${id}`; }; export const adminDeleteUser = async ( id: string, options?: RequestInit, ): Promise => { return customFetch(getAdminDeleteUserUrl(id), { ...options, method: "DELETE", }); }; export const getAdminDeleteUserMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { id: string }, TContext > => { const mutationKey = ["adminDeleteUser"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, { id: string } > = (props) => { const { id } = props ?? {}; return adminDeleteUser(id, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type AdminDeleteUserMutationResult = NonNullable< Awaited> >; export type AdminDeleteUserMutationError = ErrorType; /** * @summary Permanently delete a user */ export const useAdminDeleteUser = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { id: string }, TContext > => { return useMutation(getAdminDeleteUserMutationOptions(options)); }; /** * @summary List pending join requests */ export const getListJoinRequestsUrl = () => { return `/api/admin/join-requests`; }; export const listJoinRequests = async ( options?: RequestInit, ): Promise => { return customFetch(getListJoinRequestsUrl(), { ...options, method: "GET", }); }; export const getListJoinRequestsQueryKey = () => { return [`/api/admin/join-requests`] as const; }; export const getListJoinRequestsQueryOptions = < TData = Awaited>, TError = ErrorType, >(options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }) => { const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = queryOptions?.queryKey ?? getListJoinRequestsQueryKey(); const queryFn: QueryFunction< Awaited> > = ({ signal }) => listJoinRequests({ signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: QueryKey }; }; export type ListJoinRequestsQueryResult = NonNullable< Awaited> >; export type ListJoinRequestsQueryError = ErrorType; /** * @summary List pending join requests */ export function useListJoinRequests< TData = Awaited>, TError = ErrorType, >(options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getListJoinRequestsQueryOptions(options); const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey; }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Approve or reject a join request */ export const getProcessJoinRequestUrl = (id: string) => { return `/api/admin/join-requests/${id}`; }; export const processJoinRequest = async ( id: string, processJoinRequestBody: ProcessJoinRequestBody, options?: RequestInit, ): Promise => { return customFetch(getProcessJoinRequestUrl(id), { ...options, method: "PATCH", headers: { "Content-Type": "application/json", ...options?.headers }, body: JSON.stringify(processJoinRequestBody), }); }; export const getProcessJoinRequestMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string; data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { id: string; data: BodyType }, TContext > => { const mutationKey = ["processJoinRequest"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, { id: string; data: BodyType } > = (props) => { const { id, data } = props ?? {}; return processJoinRequest(id, data, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type ProcessJoinRequestMutationResult = NonNullable< Awaited> >; export type ProcessJoinRequestMutationBody = BodyType; export type ProcessJoinRequestMutationError = ErrorType; /** * @summary Approve or reject a join request */ export const useProcessJoinRequest = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: string; data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { id: string; data: BodyType }, TContext > => { return useMutation(getProcessJoinRequestMutationOptions(options)); }; /** * @summary Get platform statistics */ export const getGetAdminStatsUrl = () => { return `/api/admin/stats`; }; export const getAdminStats = async ( options?: RequestInit, ): Promise => { return customFetch(getGetAdminStatsUrl(), { ...options, method: "GET", }); }; export const getGetAdminStatsQueryKey = () => { return [`/api/admin/stats`] as const; }; export const getGetAdminStatsQueryOptions = < TData = Awaited>, TError = ErrorType, >(options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }) => { const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetAdminStatsQueryKey(); const queryFn: QueryFunction>> = ({ signal, }) => getAdminStats({ signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: QueryKey }; }; export type GetAdminStatsQueryResult = NonNullable< Awaited> >; export type GetAdminStatsQueryError = ErrorType; /** * @summary Get platform statistics */ export function useGetAdminStats< TData = Awaited>, TError = ErrorType, >(options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getGetAdminStatsQueryOptions(options); const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey; }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary List trashed files and folders for current user */ export const getListUserTrashUrl = () => { return `/api/trash`; }; export const listUserTrash = async ( options?: RequestInit, ): Promise => { return customFetch(getListUserTrashUrl(), { ...options, method: "GET", }); }; export const getListUserTrashQueryKey = () => { return [`/api/trash`] as const; }; export const getListUserTrashQueryOptions = < TData = Awaited>, TError = ErrorType, >(options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }) => { const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = queryOptions?.queryKey ?? getListUserTrashQueryKey(); const queryFn: QueryFunction>> = ({ signal, }) => listUserTrash({ signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: QueryKey }; }; export type ListUserTrashQueryResult = NonNullable< Awaited> >; export type ListUserTrashQueryError = ErrorType; /** * @summary List trashed files and folders for current user */ export function useListUserTrash< TData = Awaited>, TError = ErrorType, >(options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getListUserTrashQueryOptions(options); const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey; }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Permanently delete all current user's trashed items */ export const getEmptyUserTrashUrl = () => { return `/api/trash/empty`; }; export const emptyUserTrash = async ( options?: RequestInit, ): Promise => { return customFetch(getEmptyUserTrashUrl(), { ...options, method: "DELETE", }); }; export const getEmptyUserTrashMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, void, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, void, TContext > => { const mutationKey = ["emptyUserTrash"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, void > = () => { return emptyUserTrash(requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type EmptyUserTrashMutationResult = NonNullable< Awaited> >; export type EmptyUserTrashMutationError = ErrorType; /** * @summary Permanently delete all current user's trashed items */ export const useEmptyUserTrash = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, void, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, void, TContext > => { return useMutation(getEmptyUserTrashMutationOptions(options)); }; /** * @summary List ALL users' trashed files/folders (admin only) */ export const getAdminListTrashUrl = () => { return `/api/admin/trash`; }; export const adminListTrash = async ( options?: RequestInit, ): Promise => { return customFetch(getAdminListTrashUrl(), { ...options, method: "GET", }); }; export const getAdminListTrashQueryKey = () => { return [`/api/admin/trash`] as const; }; export const getAdminListTrashQueryOptions = < TData = Awaited>, TError = ErrorType, >(options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }) => { const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = queryOptions?.queryKey ?? getAdminListTrashQueryKey(); const queryFn: QueryFunction>> = ({ signal, }) => adminListTrash({ signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: QueryKey }; }; export type AdminListTrashQueryResult = NonNullable< Awaited> >; export type AdminListTrashQueryError = ErrorType; /** * @summary List ALL users' trashed files/folders (admin only) */ export function useAdminListTrash< TData = Awaited>, TError = ErrorType, >(options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getAdminListTrashQueryOptions(options); const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey; }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Permanently delete all trashed items for current admin user */ export const getAdminEmptyTrashUrl = () => { return `/api/admin/trash/empty`; }; export const adminEmptyTrash = async ( options?: RequestInit, ): Promise => { return customFetch(getAdminEmptyTrashUrl(), { ...options, method: "DELETE", }); }; export const getAdminEmptyTrashMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, void, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, void, TContext > => { const mutationKey = ["adminEmptyTrash"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, void > = () => { return adminEmptyTrash(requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type AdminEmptyTrashMutationResult = NonNullable< Awaited> >; export type AdminEmptyTrashMutationError = ErrorType; /** * @summary Permanently delete all trashed items for current admin user */ export const useAdminEmptyTrash = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, void, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, void, TContext > => { return useMutation(getAdminEmptyTrashMutationOptions(options)); };