/** * Generated by orval v8.5.3 🍺 * Do not edit manually. * Api * API specification * 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 { ErrorResponse, GenerateImageBody, GenerateImageResponse, GetImageHistoryParams, HealthStatus, ImageHistoryResponse, SetTokenBody, SuccessResponse, TokenStatusResponse, } 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]; /** * Returns server health status * @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 }; } /** * Check if a Bearer token is configured * @summary Get API token status */ export const getGetConfigTokenUrl = () => { return `/api/config/token`; }; export const getConfigToken = async ( options?: RequestInit, ): Promise => { return customFetch(getGetConfigTokenUrl(), { ...options, method: "GET", }); }; export const getGetConfigTokenQueryKey = () => { return [`/api/config/token`] as const; }; export const getGetConfigTokenQueryOptions = < TData = Awaited>, TError = ErrorType, >(options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }) => { const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetConfigTokenQueryKey(); const queryFn: QueryFunction>> = ({ signal, }) => getConfigToken({ signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: QueryKey }; }; export type GetConfigTokenQueryResult = NonNullable< Awaited> >; export type GetConfigTokenQueryError = ErrorType; /** * @summary Get API token status */ export function useGetConfigToken< TData = Awaited>, TError = ErrorType, >(options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getGetConfigTokenQueryOptions(options); const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey; }; return { ...query, queryKey: queryOptions.queryKey }; } /** * Save the Bearer token for geminigen.ai API * @summary Set API token */ export const getSetConfigTokenUrl = () => { return `/api/config/token`; }; export const setConfigToken = async ( setTokenBody: SetTokenBody, options?: RequestInit, ): Promise => { return customFetch(getSetConfigTokenUrl(), { ...options, method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, body: JSON.stringify(setTokenBody), }); }; export const getSetConfigTokenMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext > => { const mutationKey = ["setConfigToken"]; 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 setConfigToken(data, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type SetConfigTokenMutationResult = NonNullable< Awaited> >; export type SetConfigTokenMutationBody = BodyType; export type SetConfigTokenMutationError = ErrorType; /** * @summary Set API token */ export const useSetConfigToken = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { data: BodyType }, TContext > => { return useMutation(getSetConfigTokenMutationOptions(options)); }; /** * Remove the stored Bearer token * @summary Delete API token */ export const getDeleteConfigTokenUrl = () => { return `/api/config/token`; }; export const deleteConfigToken = async ( options?: RequestInit, ): Promise => { return customFetch(getDeleteConfigTokenUrl(), { ...options, method: "DELETE", }); }; export const getDeleteConfigTokenMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, void, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, void, TContext > => { const mutationKey = ["deleteConfigToken"]; 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 deleteConfigToken(requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type DeleteConfigTokenMutationResult = NonNullable< Awaited> >; export type DeleteConfigTokenMutationError = ErrorType; /** * @summary Delete API token */ export const useDeleteConfigToken = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, void, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, void, TContext > => { return useMutation(getDeleteConfigTokenMutationOptions(options)); }; /** * Generate an image using AI based on a text prompt * @summary Generate image */ export const getGenerateImageUrl = () => { return `/api/images/generate`; }; export const generateImage = async ( generateImageBody: GenerateImageBody, options?: RequestInit, ): Promise => { return customFetch(getGenerateImageUrl(), { ...options, method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, body: JSON.stringify(generateImageBody), }); }; export const getGenerateImageMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext > => { const mutationKey = ["generateImage"]; 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 generateImage(data, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type GenerateImageMutationResult = NonNullable< Awaited> >; export type GenerateImageMutationBody = BodyType; export type GenerateImageMutationError = ErrorType; /** * @summary Generate image */ export const useGenerateImage = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { data: BodyType }, TContext > => { return useMutation(getGenerateImageMutationOptions(options)); }; /** * Retrieve the list of previously generated images * @summary Get image history */ export const getGetImageHistoryUrl = (params?: GetImageHistoryParams) => { 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/images/history?${stringifiedParams}` : `/api/images/history`; }; export const getImageHistory = async ( params?: GetImageHistoryParams, options?: RequestInit, ): Promise => { return customFetch(getGetImageHistoryUrl(params), { ...options, method: "GET", }); }; export const getGetImageHistoryQueryKey = (params?: GetImageHistoryParams) => { return [`/api/images/history`, ...(params ? [params] : [])] as const; }; export const getGetImageHistoryQueryOptions = < TData = Awaited>, TError = ErrorType, >( params?: GetImageHistoryParams, options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }, ) => { const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetImageHistoryQueryKey(params); const queryFn: QueryFunction>> = ({ signal, }) => getImageHistory(params, { signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: QueryKey }; }; export type GetImageHistoryQueryResult = NonNullable< Awaited> >; export type GetImageHistoryQueryError = ErrorType; /** * @summary Get image history */ export function useGetImageHistory< TData = Awaited>, TError = ErrorType, >( params?: GetImageHistoryParams, options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }, ): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getGetImageHistoryQueryOptions(params, options); const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey; }; return { ...query, queryKey: queryOptions.queryKey }; } /** * Delete a generated image from history * @summary Delete image */ export const getDeleteImageUrl = (id: number) => { return `/api/images/${id}`; }; export const deleteImage = async ( id: number, options?: RequestInit, ): Promise => { return customFetch(getDeleteImageUrl(id), { ...options, method: "DELETE", }); }; export const getDeleteImageMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: number }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { id: number }, TContext > => { const mutationKey = ["deleteImage"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && options.mutation.mutationKey ? options : { ...options, mutation: { ...options.mutation, mutationKey } } : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< Awaited>, { id: number } > = (props) => { const { id } = props ?? {}; return deleteImage(id, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type DeleteImageMutationResult = NonNullable< Awaited> >; export type DeleteImageMutationError = ErrorType; /** * @summary Delete image */ export const useDeleteImage = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: number }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { id: number }, TContext > => { return useMutation(getDeleteImageMutationOptions(options)); };