/** * Generated by orval v8.5.3 🍺 * Do not edit manually. * Api * API specification for FB Group Publisher PRO * 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 { ActivateSubscriptionBody, CreateSavedListBody, CreateSubscriptionResponse, HealthStatus, ListSavedListsResponse, MeResponse, PaypalWebhookBody, SavedList, SubscriptionState, } 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 Get current user with subscription state */ export const getGetMeUrl = () => { return `/api/me`; }; export const getMe = async (options?: RequestInit): Promise => { return customFetch(getGetMeUrl(), { ...options, method: "GET", }); }; export const getGetMeQueryKey = () => { return [`/api/me`] as const; }; export const getGetMeQueryOptions = < TData = Awaited>, TError = ErrorType, >(options?: { query?: UseQueryOptions>, TError, TData>; request?: SecondParameter; }) => { const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetMeQueryKey(); const queryFn: QueryFunction>> = ({ signal, }) => getMe({ signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: QueryKey }; }; export type GetMeQueryResult = NonNullable>>; export type GetMeQueryError = ErrorType; /** * @summary Get current user with subscription state */ export function useGetMe< TData = Awaited>, TError = ErrorType, >(options?: { query?: UseQueryOptions>, TError, TData>; request?: SecondParameter; }): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getGetMeQueryOptions(options); const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey; }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Create PayPal subscription, returns approval URL */ export const getCreateSubscriptionUrl = () => { return `/api/subscription/create`; }; export const createSubscription = async ( options?: RequestInit, ): Promise => { return customFetch(getCreateSubscriptionUrl(), { ...options, method: "POST", }); }; export const getCreateSubscriptionMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, void, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, void, TContext > => { const mutationKey = ["createSubscription"]; 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 createSubscription(requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type CreateSubscriptionMutationResult = NonNullable< Awaited> >; export type CreateSubscriptionMutationError = ErrorType; /** * @summary Create PayPal subscription, returns approval URL */ export const useCreateSubscription = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, void, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, void, TContext > => { return useMutation(getCreateSubscriptionMutationOptions(options)); }; /** * @summary Activate subscription after PayPal approval */ export const getActivateSubscriptionUrl = () => { return `/api/subscription/activate`; }; export const activateSubscription = async ( activateSubscriptionBody: ActivateSubscriptionBody, options?: RequestInit, ): Promise => { return customFetch(getActivateSubscriptionUrl(), { ...options, method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, body: JSON.stringify(activateSubscriptionBody), }); }; export const getActivateSubscriptionMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext > => { const mutationKey = ["activateSubscription"]; 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 activateSubscription(data, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type ActivateSubscriptionMutationResult = NonNullable< Awaited> >; export type ActivateSubscriptionMutationBody = BodyType; export type ActivateSubscriptionMutationError = ErrorType; /** * @summary Activate subscription after PayPal approval */ export const useActivateSubscription = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { data: BodyType }, TContext > => { return useMutation(getActivateSubscriptionMutationOptions(options)); }; /** * @summary Cancel current subscription */ export const getCancelSubscriptionUrl = () => { return `/api/subscription/cancel`; }; export const cancelSubscription = async ( options?: RequestInit, ): Promise => { return customFetch(getCancelSubscriptionUrl(), { ...options, method: "POST", }); }; export const getCancelSubscriptionMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, void, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, void, TContext > => { const mutationKey = ["cancelSubscription"]; 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 cancelSubscription(requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type CancelSubscriptionMutationResult = NonNullable< Awaited> >; export type CancelSubscriptionMutationError = ErrorType; /** * @summary Cancel current subscription */ export const useCancelSubscription = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, void, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, void, TContext > => { return useMutation(getCancelSubscriptionMutationOptions(options)); }; /** * @summary PayPal webhook receiver */ export const getPaypalWebhookUrl = () => { return `/api/paypal/webhook`; }; export const paypalWebhook = async ( paypalWebhookBody: PaypalWebhookBody, options?: RequestInit, ): Promise => { return customFetch(getPaypalWebhookUrl(), { ...options, method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, body: JSON.stringify(paypalWebhookBody), }); }; export const getPaypalWebhookMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext > => { const mutationKey = ["paypalWebhook"]; 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 paypalWebhook(data, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type PaypalWebhookMutationResult = NonNullable< Awaited> >; export type PaypalWebhookMutationBody = BodyType; export type PaypalWebhookMutationError = ErrorType; /** * @summary PayPal webhook receiver */ export const usePaypalWebhook = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { data: BodyType }, TContext > => { return useMutation(getPaypalWebhookMutationOptions(options)); }; /** * @summary List saved group lists */ export const getListSavedListsUrl = () => { return `/api/saved-lists`; }; export const listSavedLists = async ( options?: RequestInit, ): Promise => { return customFetch(getListSavedListsUrl(), { ...options, method: "GET", }); }; export const getListSavedListsQueryKey = () => { return [`/api/saved-lists`] as const; }; export const getListSavedListsQueryOptions = < TData = Awaited>, TError = ErrorType, >(options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }) => { const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = queryOptions?.queryKey ?? getListSavedListsQueryKey(); const queryFn: QueryFunction>> = ({ signal, }) => listSavedLists({ signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< Awaited>, TError, TData > & { queryKey: QueryKey }; }; export type ListSavedListsQueryResult = NonNullable< Awaited> >; export type ListSavedListsQueryError = ErrorType; /** * @summary List saved group lists */ export function useListSavedLists< TData = Awaited>, TError = ErrorType, >(options?: { query?: UseQueryOptions< Awaited>, TError, TData >; request?: SecondParameter; }): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getListSavedListsQueryOptions(options); const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey; }; return { ...query, queryKey: queryOptions.queryKey }; } /** * @summary Save a group list */ export const getCreateSavedListUrl = () => { return `/api/saved-lists`; }; export const createSavedList = async ( createSavedListBody: CreateSavedListBody, options?: RequestInit, ): Promise => { return customFetch(getCreateSavedListUrl(), { ...options, method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, body: JSON.stringify(createSavedListBody), }); }; export const getCreateSavedListMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext > => { const mutationKey = ["createSavedList"]; 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 createSavedList(data, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type CreateSavedListMutationResult = NonNullable< Awaited> >; export type CreateSavedListMutationBody = BodyType; export type CreateSavedListMutationError = ErrorType; /** * @summary Save a group list */ export const useCreateSavedList = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { data: BodyType }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { data: BodyType }, TContext > => { return useMutation(getCreateSavedListMutationOptions(options)); }; /** * @summary Delete a saved list */ export const getDeleteSavedListUrl = (id: number) => { return `/api/saved-lists/${id}`; }; export const deleteSavedList = async ( id: number, options?: RequestInit, ): Promise => { return customFetch(getDeleteSavedListUrl(id), { ...options, method: "DELETE", }); }; export const getDeleteSavedListMutationOptions = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: number }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited>, TError, { id: number }, TContext > => { const mutationKey = ["deleteSavedList"]; 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 deleteSavedList(id, requestOptions); }; return { mutationFn, ...mutationOptions }; }; export type DeleteSavedListMutationResult = NonNullable< Awaited> >; export type DeleteSavedListMutationError = ErrorType; /** * @summary Delete a saved list */ export const useDeleteSavedList = < TError = ErrorType, TContext = unknown, >(options?: { mutation?: UseMutationOptions< Awaited>, TError, { id: number }, TContext >; request?: SecondParameter; }): UseMutationResult< Awaited>, TError, { id: number }, TContext > => { return useMutation(getDeleteSavedListMutationOptions(options)); };