unlockpage-api-client
Version:
React hooks and TypeScript client for Unlockpage API
1,492 lines (1,310 loc) • 38.7 kB
text/typescript
/**
* Generated by orval v6.31.0 🍺
* Do not edit manually.
* Unlockpage API
* This is the API server for Unlockpage micropayments platform.
* OpenAPI spec version: 1.0
*/
import { useMutation, useQuery } from "@tanstack/react-query";
import type {
MutationFunction,
QueryFunction,
QueryKey,
UseMutationOptions,
UseMutationResult,
UseQueryOptions,
UseQueryResult,
} from "@tanstack/react-query";
import axios from "axios";
import type { AxiosError, AxiosRequestConfig, AxiosResponse } from "axios";
import type {
BodyBody,
DeleteRoutesParams,
DeleteUser200,
DeleteWebsiteParams,
GetAuthCheck200,
GetAvaliableParams,
GetDns400,
GetDns404,
GetDns500,
GetDnsParams,
GetPurchaseHistoryParams,
GetPurchased200,
GetPurchasedParams,
GetWebsiteParams,
MicrohttpAccessResponse,
MicrohttpDNSResponse,
MicrohttpErrorResponse,
MicrohttpPurchaseDetail,
MicrohttpRoute,
MicrohttpRouteInfo,
MicrohttpUser,
MicrohttpWebsite,
PatchRoutesBody,
PatchRoutesParams,
PostAccessBody,
PostDns400,
PostDns404,
PostDns500,
PostDnsParams,
PostUserLogout200,
PutUser200,
} from "./model";
/**
* Verify if user has purchased access to a specific URL/route
* @summary Check access to protected content
*/
export const postAccess = (
postAccessBody: PostAccessBody,
options?: AxiosRequestConfig,
): Promise<AxiosResponse<MicrohttpAccessResponse>> => {
return axios.post(
`https://micro-payments.fly.dev/access`,
postAccessBody,
options,
);
};
export const getPostAccessMutationOptions = <
TError = AxiosError<MicrohttpErrorResponse>,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof postAccess>>,
TError,
{ data: PostAccessBody },
TContext
>;
axios?: AxiosRequestConfig;
}): UseMutationOptions<
Awaited<ReturnType<typeof postAccess>>,
TError,
{ data: PostAccessBody },
TContext
> => {
const { mutation: mutationOptions, axios: axiosOptions } = options ?? {};
const mutationFn: MutationFunction<
Awaited<ReturnType<typeof postAccess>>,
{ data: PostAccessBody }
> = (props) => {
const { data } = props ?? {};
return postAccess(data, axiosOptions);
};
return { mutationFn, ...mutationOptions };
};
export type PostAccessMutationResult = NonNullable<
Awaited<ReturnType<typeof postAccess>>
>;
export type PostAccessMutationBody = PostAccessBody;
export type PostAccessMutationError = AxiosError<MicrohttpErrorResponse>;
/**
* @summary Check access to protected content
*/
export const usePostAccess = <
TError = AxiosError<MicrohttpErrorResponse>,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof postAccess>>,
TError,
{ data: PostAccessBody },
TContext
>;
axios?: AxiosRequestConfig;
}): UseMutationResult<
Awaited<ReturnType<typeof postAccess>>,
TError,
{ data: PostAccessBody },
TContext
> => {
const mutationOptions = getPostAccessMutationOptions(options);
return useMutation(mutationOptions);
};
/**
* Check if user has a valid session cookie
* @summary Check authentication status
*/
export const getAuthCheck = (
options?: AxiosRequestConfig,
): Promise<AxiosResponse<GetAuthCheck200>> => {
return axios.get(`https://micro-payments.fly.dev/auth/check`, options);
};
export const getGetAuthCheckQueryKey = () => {
return [`https://micro-payments.fly.dev/auth/check`] as const;
};
export const getGetAuthCheckQueryOptions = <
TData = Awaited<ReturnType<typeof getAuthCheck>>,
TError = AxiosError<string>,
>(options?: {
query?: Partial<
UseQueryOptions<Awaited<ReturnType<typeof getAuthCheck>>, TError, TData>
>;
axios?: AxiosRequestConfig;
}) => {
const { query: queryOptions, axios: axiosOptions } = options ?? {};
const queryKey = queryOptions?.queryKey ?? getGetAuthCheckQueryKey();
const queryFn: QueryFunction<Awaited<ReturnType<typeof getAuthCheck>>> = ({
signal,
}) => getAuthCheck({ signal, ...axiosOptions });
return { queryKey, queryFn, ...queryOptions } as UseQueryOptions<
Awaited<ReturnType<typeof getAuthCheck>>,
TError,
TData
> & { queryKey: QueryKey };
};
export type GetAuthCheckQueryResult = NonNullable<
Awaited<ReturnType<typeof getAuthCheck>>
>;
export type GetAuthCheckQueryError = AxiosError<string>;
/**
* @summary Check authentication status
*/
export const useGetAuthCheck = <
TData = Awaited<ReturnType<typeof getAuthCheck>>,
TError = AxiosError<string>,
>(options?: {
query?: Partial<
UseQueryOptions<Awaited<ReturnType<typeof getAuthCheck>>, TError, TData>
>;
axios?: AxiosRequestConfig;
}): UseQueryResult<TData, TError> & { queryKey: QueryKey } => {
const queryOptions = getGetAuthCheckQueryOptions(options);
const query = useQuery(queryOptions) as UseQueryResult<TData, TError> & {
queryKey: QueryKey;
};
query.queryKey = queryOptions.queryKey;
return query;
};
/**
* Check if a route is available for purchase and get route information
* @summary Check route availability
*/
export const getAvaliable = (
params: GetAvaliableParams,
options?: AxiosRequestConfig,
): Promise<AxiosResponse<MicrohttpRouteInfo>> => {
return axios.get(`https://micro-payments.fly.dev/avaliable`, {
...options,
params: { ...params, ...options?.params },
});
};
export const getGetAvaliableQueryKey = (params: GetAvaliableParams) => {
return [
`https://micro-payments.fly.dev/avaliable`,
...(params ? [params] : []),
] as const;
};
export const getGetAvaliableQueryOptions = <
TData = Awaited<ReturnType<typeof getAvaliable>>,
TError = AxiosError<MicrohttpErrorResponse>,
>(
params: GetAvaliableParams,
options?: {
query?: Partial<
UseQueryOptions<Awaited<ReturnType<typeof getAvaliable>>, TError, TData>
>;
axios?: AxiosRequestConfig;
},
) => {
const { query: queryOptions, axios: axiosOptions } = options ?? {};
const queryKey = queryOptions?.queryKey ?? getGetAvaliableQueryKey(params);
const queryFn: QueryFunction<Awaited<ReturnType<typeof getAvaliable>>> = ({
signal,
}) => getAvaliable(params, { signal, ...axiosOptions });
return { queryKey, queryFn, ...queryOptions } as UseQueryOptions<
Awaited<ReturnType<typeof getAvaliable>>,
TError,
TData
> & { queryKey: QueryKey };
};
export type GetAvaliableQueryResult = NonNullable<
Awaited<ReturnType<typeof getAvaliable>>
>;
export type GetAvaliableQueryError = AxiosError<MicrohttpErrorResponse>;
/**
* @summary Check route availability
*/
export const useGetAvaliable = <
TData = Awaited<ReturnType<typeof getAvaliable>>,
TError = AxiosError<MicrohttpErrorResponse>,
>(
params: GetAvaliableParams,
options?: {
query?: Partial<
UseQueryOptions<Awaited<ReturnType<typeof getAvaliable>>, TError, TData>
>;
axios?: AxiosRequestConfig;
},
): UseQueryResult<TData, TError> & { queryKey: QueryKey } => {
const queryOptions = getGetAvaliableQueryOptions(params, options);
const query = useQuery(queryOptions) as UseQueryResult<TData, TError> & {
queryKey: QueryKey;
};
query.queryKey = queryOptions.queryKey;
return query;
};
/**
* GET: Check DNS TXT record verification status, POST: Generate new TXT record for domain verification
* @summary DNS management for domain verification
*/
export const getDns = (
bodyBody: BodyBody,
params: GetDnsParams,
options?: AxiosRequestConfig,
): Promise<AxiosResponse<MicrohttpDNSResponse>> => {
return axios.get(`https://micro-payments.fly.dev/dns`, {
...options,
params: { ...params, ...options?.params },
});
};
export const getGetDnsQueryKey = (bodyBody: BodyBody, params: GetDnsParams) => {
return [
`https://micro-payments.fly.dev/dns`,
...(params ? [params] : []),
bodyBody,
] as const;
};
export const getGetDnsQueryOptions = <
TData = Awaited<ReturnType<typeof getDns>>,
TError = AxiosError<GetDns400 | GetDns404 | GetDns500>,
>(
bodyBody: BodyBody,
params: GetDnsParams,
options?: {
query?: Partial<
UseQueryOptions<Awaited<ReturnType<typeof getDns>>, TError, TData>
>;
axios?: AxiosRequestConfig;
},
) => {
const { query: queryOptions, axios: axiosOptions } = options ?? {};
const queryKey =
queryOptions?.queryKey ?? getGetDnsQueryKey(bodyBody, params);
const queryFn: QueryFunction<Awaited<ReturnType<typeof getDns>>> = ({
signal,
}) => getDns(bodyBody, params, { signal, ...axiosOptions });
return { queryKey, queryFn, ...queryOptions } as UseQueryOptions<
Awaited<ReturnType<typeof getDns>>,
TError,
TData
> & { queryKey: QueryKey };
};
export type GetDnsQueryResult = NonNullable<Awaited<ReturnType<typeof getDns>>>;
export type GetDnsQueryError = AxiosError<GetDns400 | GetDns404 | GetDns500>;
/**
* @summary DNS management for domain verification
*/
export const useGetDns = <
TData = Awaited<ReturnType<typeof getDns>>,
TError = AxiosError<GetDns400 | GetDns404 | GetDns500>,
>(
bodyBody: BodyBody,
params: GetDnsParams,
options?: {
query?: Partial<
UseQueryOptions<Awaited<ReturnType<typeof getDns>>, TError, TData>
>;
axios?: AxiosRequestConfig;
},
): UseQueryResult<TData, TError> & { queryKey: QueryKey } => {
const queryOptions = getGetDnsQueryOptions(bodyBody, params, options);
const query = useQuery(queryOptions) as UseQueryResult<TData, TError> & {
queryKey: QueryKey;
};
query.queryKey = queryOptions.queryKey;
return query;
};
/**
* GET: Check DNS TXT record verification status, POST: Generate new TXT record for domain verification
* @summary DNS management for domain verification
*/
export const postDns = (
bodyBody: BodyBody,
params: PostDnsParams,
options?: AxiosRequestConfig,
): Promise<AxiosResponse<MicrohttpDNSResponse>> => {
return axios.post(`https://micro-payments.fly.dev/dns`, bodyBody, {
...options,
params: { ...params, ...options?.params },
});
};
export const getPostDnsMutationOptions = <
TError = AxiosError<PostDns400 | PostDns404 | PostDns500>,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof postDns>>,
TError,
{ data: BodyBody; params: PostDnsParams },
TContext
>;
axios?: AxiosRequestConfig;
}): UseMutationOptions<
Awaited<ReturnType<typeof postDns>>,
TError,
{ data: BodyBody; params: PostDnsParams },
TContext
> => {
const { mutation: mutationOptions, axios: axiosOptions } = options ?? {};
const mutationFn: MutationFunction<
Awaited<ReturnType<typeof postDns>>,
{ data: BodyBody; params: PostDnsParams }
> = (props) => {
const { data, params } = props ?? {};
return postDns(data, params, axiosOptions);
};
return { mutationFn, ...mutationOptions };
};
export type PostDnsMutationResult = NonNullable<
Awaited<ReturnType<typeof postDns>>
>;
export type PostDnsMutationBody = BodyBody;
export type PostDnsMutationError = AxiosError<
PostDns400 | PostDns404 | PostDns500
>;
/**
* @summary DNS management for domain verification
*/
export const usePostDns = <
TError = AxiosError<PostDns400 | PostDns404 | PostDns500>,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof postDns>>,
TError,
{ data: BodyBody; params: PostDnsParams },
TContext
>;
axios?: AxiosRequestConfig;
}): UseMutationResult<
Awaited<ReturnType<typeof postDns>>,
TError,
{ data: BodyBody; params: PostDnsParams },
TContext
> => {
const mutationOptions = getPostDnsMutationOptions(options);
return useMutation(mutationOptions);
};
/**
* Get purchase history for websites owned by the authenticated user
* @summary Get website purchase history
*/
export const getDomainsPurchaseHistory = (
options?: AxiosRequestConfig,
): Promise<AxiosResponse<MicrohttpPurchaseDetail[]>> => {
return axios.get(
`https://micro-payments.fly.dev/domains-purchase-history`,
options,
);
};
export const getGetDomainsPurchaseHistoryQueryKey = () => {
return [`https://micro-payments.fly.dev/domains-purchase-history`] as const;
};
export const getGetDomainsPurchaseHistoryQueryOptions = <
TData = Awaited<ReturnType<typeof getDomainsPurchaseHistory>>,
TError = AxiosError<MicrohttpErrorResponse>,
>(options?: {
query?: Partial<
UseQueryOptions<
Awaited<ReturnType<typeof getDomainsPurchaseHistory>>,
TError,
TData
>
>;
axios?: AxiosRequestConfig;
}) => {
const { query: queryOptions, axios: axiosOptions } = options ?? {};
const queryKey =
queryOptions?.queryKey ?? getGetDomainsPurchaseHistoryQueryKey();
const queryFn: QueryFunction<
Awaited<ReturnType<typeof getDomainsPurchaseHistory>>
> = ({ signal }) => getDomainsPurchaseHistory({ signal, ...axiosOptions });
return { queryKey, queryFn, ...queryOptions } as UseQueryOptions<
Awaited<ReturnType<typeof getDomainsPurchaseHistory>>,
TError,
TData
> & { queryKey: QueryKey };
};
export type GetDomainsPurchaseHistoryQueryResult = NonNullable<
Awaited<ReturnType<typeof getDomainsPurchaseHistory>>
>;
export type GetDomainsPurchaseHistoryQueryError =
AxiosError<MicrohttpErrorResponse>;
/**
* @summary Get website purchase history
*/
export const useGetDomainsPurchaseHistory = <
TData = Awaited<ReturnType<typeof getDomainsPurchaseHistory>>,
TError = AxiosError<MicrohttpErrorResponse>,
>(options?: {
query?: Partial<
UseQueryOptions<
Awaited<ReturnType<typeof getDomainsPurchaseHistory>>,
TError,
TData
>
>;
axios?: AxiosRequestConfig;
}): UseQueryResult<TData, TError> & { queryKey: QueryKey } => {
const queryOptions = getGetDomainsPurchaseHistoryQueryOptions(options);
const query = useQuery(queryOptions) as UseQueryResult<TData, TError> & {
queryKey: QueryKey;
};
query.queryKey = queryOptions.queryKey;
return query;
};
/**
* Get all purchases made by the authenticated user
* @summary Get user purchase history
*/
export const getPurchaseHistory = (
params?: GetPurchaseHistoryParams,
options?: AxiosRequestConfig,
): Promise<AxiosResponse<MicrohttpPurchaseDetail[]>> => {
return axios.get(`https://micro-payments.fly.dev/purchase-history`, {
...options,
params: { ...params, ...options?.params },
});
};
export const getGetPurchaseHistoryQueryKey = (
params?: GetPurchaseHistoryParams,
) => {
return [
`https://micro-payments.fly.dev/purchase-history`,
...(params ? [params] : []),
] as const;
};
export const getGetPurchaseHistoryQueryOptions = <
TData = Awaited<ReturnType<typeof getPurchaseHistory>>,
TError = AxiosError<MicrohttpErrorResponse>,
>(
params?: GetPurchaseHistoryParams,
options?: {
query?: Partial<
UseQueryOptions<
Awaited<ReturnType<typeof getPurchaseHistory>>,
TError,
TData
>
>;
axios?: AxiosRequestConfig;
},
) => {
const { query: queryOptions, axios: axiosOptions } = options ?? {};
const queryKey =
queryOptions?.queryKey ?? getGetPurchaseHistoryQueryKey(params);
const queryFn: QueryFunction<
Awaited<ReturnType<typeof getPurchaseHistory>>
> = ({ signal }) => getPurchaseHistory(params, { signal, ...axiosOptions });
return { queryKey, queryFn, ...queryOptions } as UseQueryOptions<
Awaited<ReturnType<typeof getPurchaseHistory>>,
TError,
TData
> & { queryKey: QueryKey };
};
export type GetPurchaseHistoryQueryResult = NonNullable<
Awaited<ReturnType<typeof getPurchaseHistory>>
>;
export type GetPurchaseHistoryQueryError = AxiosError<MicrohttpErrorResponse>;
/**
* @summary Get user purchase history
*/
export const useGetPurchaseHistory = <
TData = Awaited<ReturnType<typeof getPurchaseHistory>>,
TError = AxiosError<MicrohttpErrorResponse>,
>(
params?: GetPurchaseHistoryParams,
options?: {
query?: Partial<
UseQueryOptions<
Awaited<ReturnType<typeof getPurchaseHistory>>,
TError,
TData
>
>;
axios?: AxiosRequestConfig;
},
): UseQueryResult<TData, TError> & { queryKey: QueryKey } => {
const queryOptions = getGetPurchaseHistoryQueryOptions(params, options);
const query = useQuery(queryOptions) as UseQueryResult<TData, TError> & {
queryKey: QueryKey;
};
query.queryKey = queryOptions.queryKey;
return query;
};
/**
* Check if user has already purchased access to a specific route
* @summary Check if route is purchased
*/
export const getPurchased = (
params: GetPurchasedParams,
options?: AxiosRequestConfig,
): Promise<AxiosResponse<GetPurchased200>> => {
return axios.get(`https://micro-payments.fly.dev/purchased`, {
...options,
params: { ...params, ...options?.params },
});
};
export const getGetPurchasedQueryKey = (params: GetPurchasedParams) => {
return [
`https://micro-payments.fly.dev/purchased`,
...(params ? [params] : []),
] as const;
};
export const getGetPurchasedQueryOptions = <
TData = Awaited<ReturnType<typeof getPurchased>>,
TError = AxiosError<string>,
>(
params: GetPurchasedParams,
options?: {
query?: Partial<
UseQueryOptions<Awaited<ReturnType<typeof getPurchased>>, TError, TData>
>;
axios?: AxiosRequestConfig;
},
) => {
const { query: queryOptions, axios: axiosOptions } = options ?? {};
const queryKey = queryOptions?.queryKey ?? getGetPurchasedQueryKey(params);
const queryFn: QueryFunction<Awaited<ReturnType<typeof getPurchased>>> = ({
signal,
}) => getPurchased(params, { signal, ...axiosOptions });
return { queryKey, queryFn, ...queryOptions } as UseQueryOptions<
Awaited<ReturnType<typeof getPurchased>>,
TError,
TData
> & { queryKey: QueryKey };
};
export type GetPurchasedQueryResult = NonNullable<
Awaited<ReturnType<typeof getPurchased>>
>;
export type GetPurchasedQueryError = AxiosError<string>;
/**
* @summary Check if route is purchased
*/
export const useGetPurchased = <
TData = Awaited<ReturnType<typeof getPurchased>>,
TError = AxiosError<string>,
>(
params: GetPurchasedParams,
options?: {
query?: Partial<
UseQueryOptions<Awaited<ReturnType<typeof getPurchased>>, TError, TData>
>;
axios?: AxiosRequestConfig;
},
): UseQueryResult<TData, TError> & { queryKey: QueryKey } => {
const queryOptions = getGetPurchasedQueryOptions(params, options);
const query = useQuery(queryOptions) as UseQueryResult<TData, TError> & {
queryKey: QueryKey;
};
query.queryKey = queryOptions.queryKey;
return query;
};
/**
* Retrieve all routes for websites owned by the authenticated user
* @summary Get user's routes
*/
export const getRoutes = (
options?: AxiosRequestConfig,
): Promise<AxiosResponse<MicrohttpRoute[]>> => {
return axios.get(`https://micro-payments.fly.dev/routes`, options);
};
export const getGetRoutesQueryKey = () => {
return [`https://micro-payments.fly.dev/routes`] as const;
};
export const getGetRoutesQueryOptions = <
TData = Awaited<ReturnType<typeof getRoutes>>,
TError = AxiosError<string>,
>(options?: {
query?: Partial<
UseQueryOptions<Awaited<ReturnType<typeof getRoutes>>, TError, TData>
>;
axios?: AxiosRequestConfig;
}) => {
const { query: queryOptions, axios: axiosOptions } = options ?? {};
const queryKey = queryOptions?.queryKey ?? getGetRoutesQueryKey();
const queryFn: QueryFunction<Awaited<ReturnType<typeof getRoutes>>> = ({
signal,
}) => getRoutes({ signal, ...axiosOptions });
return { queryKey, queryFn, ...queryOptions } as UseQueryOptions<
Awaited<ReturnType<typeof getRoutes>>,
TError,
TData
> & { queryKey: QueryKey };
};
export type GetRoutesQueryResult = NonNullable<
Awaited<ReturnType<typeof getRoutes>>
>;
export type GetRoutesQueryError = AxiosError<string>;
/**
* @summary Get user's routes
*/
export const useGetRoutes = <
TData = Awaited<ReturnType<typeof getRoutes>>,
TError = AxiosError<string>,
>(options?: {
query?: Partial<
UseQueryOptions<Awaited<ReturnType<typeof getRoutes>>, TError, TData>
>;
axios?: AxiosRequestConfig;
}): UseQueryResult<TData, TError> & { queryKey: QueryKey } => {
const queryOptions = getGetRoutesQueryOptions(options);
const query = useQuery(queryOptions) as UseQueryResult<TData, TError> & {
queryKey: QueryKey;
};
query.queryKey = queryOptions.queryKey;
return query;
};
/**
* Add a new route for a website that users can purchase access to
* @summary Register a new route
*/
export const putRoutes = (
microhttpRoute: MicrohttpRoute,
options?: AxiosRequestConfig,
): Promise<AxiosResponse<string>> => {
return axios.put(
`https://micro-payments.fly.dev/routes`,
microhttpRoute,
options,
);
};
export const getPutRoutesMutationOptions = <
TError = AxiosError<string>,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof putRoutes>>,
TError,
{ data: MicrohttpRoute },
TContext
>;
axios?: AxiosRequestConfig;
}): UseMutationOptions<
Awaited<ReturnType<typeof putRoutes>>,
TError,
{ data: MicrohttpRoute },
TContext
> => {
const { mutation: mutationOptions, axios: axiosOptions } = options ?? {};
const mutationFn: MutationFunction<
Awaited<ReturnType<typeof putRoutes>>,
{ data: MicrohttpRoute }
> = (props) => {
const { data } = props ?? {};
return putRoutes(data, axiosOptions);
};
return { mutationFn, ...mutationOptions };
};
export type PutRoutesMutationResult = NonNullable<
Awaited<ReturnType<typeof putRoutes>>
>;
export type PutRoutesMutationBody = MicrohttpRoute;
export type PutRoutesMutationError = AxiosError<string>;
/**
* @summary Register a new route
*/
export const usePutRoutes = <
TError = AxiosError<string>,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof putRoutes>>,
TError,
{ data: MicrohttpRoute },
TContext
>;
axios?: AxiosRequestConfig;
}): UseMutationResult<
Awaited<ReturnType<typeof putRoutes>>,
TError,
{ data: MicrohttpRoute },
TContext
> => {
const mutationOptions = getPutRoutesMutationOptions(options);
return useMutation(mutationOptions);
};
/**
* Delete a route. Can only delete if no purchases exist for the route
* @summary Delete an existing route
*/
export const deleteRoutes = (
params: DeleteRoutesParams,
options?: AxiosRequestConfig,
): Promise<AxiosResponse<string>> => {
return axios.delete(`https://micro-payments.fly.dev/routes`, {
...options,
params: { ...params, ...options?.params },
});
};
export const getDeleteRoutesMutationOptions = <
TError = AxiosError<MicrohttpErrorResponse>,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof deleteRoutes>>,
TError,
{ params: DeleteRoutesParams },
TContext
>;
axios?: AxiosRequestConfig;
}): UseMutationOptions<
Awaited<ReturnType<typeof deleteRoutes>>,
TError,
{ params: DeleteRoutesParams },
TContext
> => {
const { mutation: mutationOptions, axios: axiosOptions } = options ?? {};
const mutationFn: MutationFunction<
Awaited<ReturnType<typeof deleteRoutes>>,
{ params: DeleteRoutesParams }
> = (props) => {
const { params } = props ?? {};
return deleteRoutes(params, axiosOptions);
};
return { mutationFn, ...mutationOptions };
};
export type DeleteRoutesMutationResult = NonNullable<
Awaited<ReturnType<typeof deleteRoutes>>
>;
export type DeleteRoutesMutationError = AxiosError<MicrohttpErrorResponse>;
/**
* @summary Delete an existing route
*/
export const useDeleteRoutes = <
TError = AxiosError<MicrohttpErrorResponse>,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof deleteRoutes>>,
TError,
{ params: DeleteRoutesParams },
TContext
>;
axios?: AxiosRequestConfig;
}): UseMutationResult<
Awaited<ReturnType<typeof deleteRoutes>>,
TError,
{ params: DeleteRoutesParams },
TContext
> => {
const mutationOptions = getDeleteRoutesMutationOptions(options);
return useMutation(mutationOptions);
};
/**
* Update route path, cost, and/or disabled state. Can only update if no purchases exist and new route name doesn't conflict
* @summary Update an existing route
*/
export const patchRoutes = (
patchRoutesBody: PatchRoutesBody,
params: PatchRoutesParams,
options?: AxiosRequestConfig,
): Promise<AxiosResponse<string>> => {
return axios.patch(`https://micro-payments.fly.dev/routes`, patchRoutesBody, {
...options,
params: { ...params, ...options?.params },
});
};
export const getPatchRoutesMutationOptions = <
TError = AxiosError<MicrohttpErrorResponse>,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof patchRoutes>>,
TError,
{ data: PatchRoutesBody; params: PatchRoutesParams },
TContext
>;
axios?: AxiosRequestConfig;
}): UseMutationOptions<
Awaited<ReturnType<typeof patchRoutes>>,
TError,
{ data: PatchRoutesBody; params: PatchRoutesParams },
TContext
> => {
const { mutation: mutationOptions, axios: axiosOptions } = options ?? {};
const mutationFn: MutationFunction<
Awaited<ReturnType<typeof patchRoutes>>,
{ data: PatchRoutesBody; params: PatchRoutesParams }
> = (props) => {
const { data, params } = props ?? {};
return patchRoutes(data, params, axiosOptions);
};
return { mutationFn, ...mutationOptions };
};
export type PatchRoutesMutationResult = NonNullable<
Awaited<ReturnType<typeof patchRoutes>>
>;
export type PatchRoutesMutationBody = PatchRoutesBody;
export type PatchRoutesMutationError = AxiosError<MicrohttpErrorResponse>;
/**
* @summary Update an existing route
*/
export const usePatchRoutes = <
TError = AxiosError<MicrohttpErrorResponse>,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof patchRoutes>>,
TError,
{ data: PatchRoutesBody; params: PatchRoutesParams },
TContext
>;
axios?: AxiosRequestConfig;
}): UseMutationResult<
Awaited<ReturnType<typeof patchRoutes>>,
TError,
{ data: PatchRoutesBody; params: PatchRoutesParams },
TContext
> => {
const mutationOptions = getPatchRoutesMutationOptions(options);
return useMutation(mutationOptions);
};
/**
* Retrieve authenticated user's profile information
* @summary Get user information
*/
export const getUser = (
options?: AxiosRequestConfig,
): Promise<AxiosResponse<MicrohttpUser>> => {
return axios.get(`https://micro-payments.fly.dev/user`, options);
};
export const getGetUserQueryKey = () => {
return [`https://micro-payments.fly.dev/user`] as const;
};
export const getGetUserQueryOptions = <
TData = Awaited<ReturnType<typeof getUser>>,
TError = AxiosError<string>,
>(options?: {
query?: Partial<
UseQueryOptions<Awaited<ReturnType<typeof getUser>>, TError, TData>
>;
axios?: AxiosRequestConfig;
}) => {
const { query: queryOptions, axios: axiosOptions } = options ?? {};
const queryKey = queryOptions?.queryKey ?? getGetUserQueryKey();
const queryFn: QueryFunction<Awaited<ReturnType<typeof getUser>>> = ({
signal,
}) => getUser({ signal, ...axiosOptions });
return { queryKey, queryFn, ...queryOptions } as UseQueryOptions<
Awaited<ReturnType<typeof getUser>>,
TError,
TData
> & { queryKey: QueryKey };
};
export type GetUserQueryResult = NonNullable<
Awaited<ReturnType<typeof getUser>>
>;
export type GetUserQueryError = AxiosError<string>;
/**
* @summary Get user information
*/
export const useGetUser = <
TData = Awaited<ReturnType<typeof getUser>>,
TError = AxiosError<string>,
>(options?: {
query?: Partial<
UseQueryOptions<Awaited<ReturnType<typeof getUser>>, TError, TData>
>;
axios?: AxiosRequestConfig;
}): UseQueryResult<TData, TError> & { queryKey: QueryKey } => {
const queryOptions = getGetUserQueryOptions(options);
const query = useQuery(queryOptions) as UseQueryResult<TData, TError> & {
queryKey: QueryKey;
};
query.queryKey = queryOptions.queryKey;
return query;
};
/**
* Synchronize user data from JWT token and create secure session
* @summary Sync user data
*/
export const putUser = (
options?: AxiosRequestConfig,
): Promise<AxiosResponse<PutUser200>> => {
return axios.put(`https://micro-payments.fly.dev/user`, undefined, options);
};
export const getPutUserMutationOptions = <
TError = AxiosError<string>,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof putUser>>,
TError,
void,
TContext
>;
axios?: AxiosRequestConfig;
}): UseMutationOptions<
Awaited<ReturnType<typeof putUser>>,
TError,
void,
TContext
> => {
const { mutation: mutationOptions, axios: axiosOptions } = options ?? {};
const mutationFn: MutationFunction<
Awaited<ReturnType<typeof putUser>>,
void
> = () => {
return putUser(axiosOptions);
};
return { mutationFn, ...mutationOptions };
};
export type PutUserMutationResult = NonNullable<
Awaited<ReturnType<typeof putUser>>
>;
export type PutUserMutationError = AxiosError<string>;
/**
* @summary Sync user data
*/
export const usePutUser = <
TError = AxiosError<string>,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof putUser>>,
TError,
void,
TContext
>;
axios?: AxiosRequestConfig;
}): UseMutationResult<
Awaited<ReturnType<typeof putUser>>,
TError,
void,
TContext
> => {
const mutationOptions = getPutUserMutationOptions(options);
return useMutation(mutationOptions);
};
/**
* Delete all active sessions for the authenticated user
* @summary Delete all user sessions
*/
export const deleteUser = (
options?: AxiosRequestConfig,
): Promise<AxiosResponse<DeleteUser200>> => {
return axios.delete(`https://micro-payments.fly.dev/user`, options);
};
export const getDeleteUserMutationOptions = <
TError = AxiosError<string>,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof deleteUser>>,
TError,
void,
TContext
>;
axios?: AxiosRequestConfig;
}): UseMutationOptions<
Awaited<ReturnType<typeof deleteUser>>,
TError,
void,
TContext
> => {
const { mutation: mutationOptions, axios: axiosOptions } = options ?? {};
const mutationFn: MutationFunction<
Awaited<ReturnType<typeof deleteUser>>,
void
> = () => {
return deleteUser(axiosOptions);
};
return { mutationFn, ...mutationOptions };
};
export type DeleteUserMutationResult = NonNullable<
Awaited<ReturnType<typeof deleteUser>>
>;
export type DeleteUserMutationError = AxiosError<string>;
/**
* @summary Delete all user sessions
*/
export const useDeleteUser = <
TError = AxiosError<string>,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof deleteUser>>,
TError,
void,
TContext
>;
axios?: AxiosRequestConfig;
}): UseMutationResult<
Awaited<ReturnType<typeof deleteUser>>,
TError,
void,
TContext
> => {
const mutationOptions = getDeleteUserMutationOptions(options);
return useMutation(mutationOptions);
};
/**
* Log out user by clearing session cookie and deleting session from database
* @summary User logout
*/
export const postUserLogout = (
options?: AxiosRequestConfig,
): Promise<AxiosResponse<PostUserLogout200>> => {
return axios.post(
`https://micro-payments.fly.dev/user/logout`,
undefined,
options,
);
};
export const getPostUserLogoutMutationOptions = <
TError = AxiosError<string>,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof postUserLogout>>,
TError,
void,
TContext
>;
axios?: AxiosRequestConfig;
}): UseMutationOptions<
Awaited<ReturnType<typeof postUserLogout>>,
TError,
void,
TContext
> => {
const { mutation: mutationOptions, axios: axiosOptions } = options ?? {};
const mutationFn: MutationFunction<
Awaited<ReturnType<typeof postUserLogout>>,
void
> = () => {
return postUserLogout(axiosOptions);
};
return { mutationFn, ...mutationOptions };
};
export type PostUserLogoutMutationResult = NonNullable<
Awaited<ReturnType<typeof postUserLogout>>
>;
export type PostUserLogoutMutationError = AxiosError<string>;
/**
* @summary User logout
*/
export const usePostUserLogout = <
TError = AxiosError<string>,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof postUserLogout>>,
TError,
void,
TContext
>;
axios?: AxiosRequestConfig;
}): UseMutationResult<
Awaited<ReturnType<typeof postUserLogout>>,
TError,
void,
TContext
> => {
const mutationOptions = getPostUserLogoutMutationOptions(options);
return useMutation(mutationOptions);
};
/**
* Retrieve all websites registered by the authenticated user
* @summary Get user's websites
*/
export const getWebsite = (
params?: GetWebsiteParams,
options?: AxiosRequestConfig,
): Promise<AxiosResponse<MicrohttpWebsite[]>> => {
return axios.get(`https://micro-payments.fly.dev/website`, {
...options,
params: { ...params, ...options?.params },
});
};
export const getGetWebsiteQueryKey = (params?: GetWebsiteParams) => {
return [
`https://micro-payments.fly.dev/website`,
...(params ? [params] : []),
] as const;
};
export const getGetWebsiteQueryOptions = <
TData = Awaited<ReturnType<typeof getWebsite>>,
TError = AxiosError<string>,
>(
params?: GetWebsiteParams,
options?: {
query?: Partial<
UseQueryOptions<Awaited<ReturnType<typeof getWebsite>>, TError, TData>
>;
axios?: AxiosRequestConfig;
},
) => {
const { query: queryOptions, axios: axiosOptions } = options ?? {};
const queryKey = queryOptions?.queryKey ?? getGetWebsiteQueryKey(params);
const queryFn: QueryFunction<Awaited<ReturnType<typeof getWebsite>>> = ({
signal,
}) => getWebsite(params, { signal, ...axiosOptions });
return { queryKey, queryFn, ...queryOptions } as UseQueryOptions<
Awaited<ReturnType<typeof getWebsite>>,
TError,
TData
> & { queryKey: QueryKey };
};
export type GetWebsiteQueryResult = NonNullable<
Awaited<ReturnType<typeof getWebsite>>
>;
export type GetWebsiteQueryError = AxiosError<string>;
/**
* @summary Get user's websites
*/
export const useGetWebsite = <
TData = Awaited<ReturnType<typeof getWebsite>>,
TError = AxiosError<string>,
>(
params?: GetWebsiteParams,
options?: {
query?: Partial<
UseQueryOptions<Awaited<ReturnType<typeof getWebsite>>, TError, TData>
>;
axios?: AxiosRequestConfig;
},
): UseQueryResult<TData, TError> & { queryKey: QueryKey } => {
const queryOptions = getGetWebsiteQueryOptions(params, options);
const query = useQuery(queryOptions) as UseQueryResult<TData, TError> & {
queryKey: QueryKey;
};
query.queryKey = queryOptions.queryKey;
return query;
};
/**
* Register a new website for content monetization
* @summary Register a new website
*/
export const putWebsite = (
microhttpWebsite: MicrohttpWebsite,
options?: AxiosRequestConfig,
): Promise<AxiosResponse<string>> => {
return axios.put(
`https://micro-payments.fly.dev/website`,
microhttpWebsite,
options,
);
};
export const getPutWebsiteMutationOptions = <
TError = AxiosError<string>,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof putWebsite>>,
TError,
{ data: MicrohttpWebsite },
TContext
>;
axios?: AxiosRequestConfig;
}): UseMutationOptions<
Awaited<ReturnType<typeof putWebsite>>,
TError,
{ data: MicrohttpWebsite },
TContext
> => {
const { mutation: mutationOptions, axios: axiosOptions } = options ?? {};
const mutationFn: MutationFunction<
Awaited<ReturnType<typeof putWebsite>>,
{ data: MicrohttpWebsite }
> = (props) => {
const { data } = props ?? {};
return putWebsite(data, axiosOptions);
};
return { mutationFn, ...mutationOptions };
};
export type PutWebsiteMutationResult = NonNullable<
Awaited<ReturnType<typeof putWebsite>>
>;
export type PutWebsiteMutationBody = MicrohttpWebsite;
export type PutWebsiteMutationError = AxiosError<string>;
/**
* @summary Register a new website
*/
export const usePutWebsite = <
TError = AxiosError<string>,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof putWebsite>>,
TError,
{ data: MicrohttpWebsite },
TContext
>;
axios?: AxiosRequestConfig;
}): UseMutationResult<
Awaited<ReturnType<typeof putWebsite>>,
TError,
{ data: MicrohttpWebsite },
TContext
> => {
const mutationOptions = getPutWebsiteMutationOptions(options);
return useMutation(mutationOptions);
};
/**
* Delete a registered but unverified website
* @summary Remove a website
*/
export const deleteWebsite = (
params: DeleteWebsiteParams,
options?: AxiosRequestConfig,
): Promise<AxiosResponse<string>> => {
return axios.delete(`https://micro-payments.fly.dev/website`, {
...options,
params: { ...params, ...options?.params },
});
};
export const getDeleteWebsiteMutationOptions = <
TError = AxiosError<string>,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof deleteWebsite>>,
TError,
{ params: DeleteWebsiteParams },
TContext
>;
axios?: AxiosRequestConfig;
}): UseMutationOptions<
Awaited<ReturnType<typeof deleteWebsite>>,
TError,
{ params: DeleteWebsiteParams },
TContext
> => {
const { mutation: mutationOptions, axios: axiosOptions } = options ?? {};
const mutationFn: MutationFunction<
Awaited<ReturnType<typeof deleteWebsite>>,
{ params: DeleteWebsiteParams }
> = (props) => {
const { params } = props ?? {};
return deleteWebsite(params, axiosOptions);
};
return { mutationFn, ...mutationOptions };
};
export type DeleteWebsiteMutationResult = NonNullable<
Awaited<ReturnType<typeof deleteWebsite>>
>;
export type DeleteWebsiteMutationError = AxiosError<string>;
/**
* @summary Remove a website
*/
export const useDeleteWebsite = <
TError = AxiosError<string>,
TContext = unknown,
>(options?: {
mutation?: UseMutationOptions<
Awaited<ReturnType<typeof deleteWebsite>>,
TError,
{ params: DeleteWebsiteParams },
TContext
>;
axios?: AxiosRequestConfig;
}): UseMutationResult<
Awaited<ReturnType<typeof deleteWebsite>>,
TError,
{ params: DeleteWebsiteParams },
TContext
> => {
const mutationOptions = getDeleteWebsiteMutationOptions(options);
return useMutation(mutationOptions);
};