2026-03-31 18:39:45 -07:00
|
|
|
import {
|
|
|
|
|
type CreateCheckoutSessionRequest,
|
|
|
|
|
type CreateCheckoutSessionResponse,
|
2026-04-15 17:02:00 -07:00
|
|
|
type CreateTokenCheckoutSessionRequest,
|
|
|
|
|
type CreateTokenCheckoutSessionResponse,
|
2026-03-31 18:39:45 -07:00
|
|
|
createCheckoutSessionResponse,
|
2026-04-15 17:02:00 -07:00
|
|
|
createTokenCheckoutSessionResponse,
|
2026-03-31 18:39:45 -07:00
|
|
|
type GetPagePurchasesResponse,
|
2026-04-15 17:02:00 -07:00
|
|
|
type GetTokenPurchasesResponse,
|
2026-03-31 18:39:45 -07:00
|
|
|
getPagePurchasesResponse,
|
2026-04-15 17:02:00 -07:00
|
|
|
getTokenPurchasesResponse,
|
2026-03-31 18:39:45 -07:00
|
|
|
type StripeStatusResponse,
|
|
|
|
|
stripeStatusResponse,
|
2026-04-15 17:02:00 -07:00
|
|
|
type TokenStripeStatusResponse,
|
|
|
|
|
tokenStripeStatusResponse,
|
2026-03-31 18:39:45 -07:00
|
|
|
} from "@/contracts/types/stripe.types";
|
|
|
|
|
import { baseApiService } from "./base-api.service";
|
|
|
|
|
|
|
|
|
|
class StripeApiService {
|
|
|
|
|
createCheckoutSession = async (
|
|
|
|
|
request: CreateCheckoutSessionRequest
|
|
|
|
|
): Promise<CreateCheckoutSessionResponse> => {
|
2026-03-31 21:42:03 -07:00
|
|
|
return baseApiService.post(
|
|
|
|
|
"/api/v1/stripe/create-checkout-session",
|
|
|
|
|
createCheckoutSessionResponse,
|
|
|
|
|
{
|
|
|
|
|
body: request,
|
|
|
|
|
}
|
|
|
|
|
);
|
2026-03-31 18:39:45 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
getPurchases = async (): Promise<GetPagePurchasesResponse> => {
|
|
|
|
|
return baseApiService.get("/api/v1/stripe/purchases", getPagePurchasesResponse);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
getStatus = async (): Promise<StripeStatusResponse> => {
|
|
|
|
|
return baseApiService.get("/api/v1/stripe/status", stripeStatusResponse);
|
|
|
|
|
};
|
2026-04-15 17:02:00 -07:00
|
|
|
|
|
|
|
|
createTokenCheckoutSession = async (
|
|
|
|
|
request: CreateTokenCheckoutSessionRequest
|
|
|
|
|
): Promise<CreateTokenCheckoutSessionResponse> => {
|
|
|
|
|
return baseApiService.post(
|
|
|
|
|
"/api/v1/stripe/create-token-checkout-session",
|
|
|
|
|
createTokenCheckoutSessionResponse,
|
|
|
|
|
{ body: request }
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
getTokenStatus = async (): Promise<TokenStripeStatusResponse> => {
|
|
|
|
|
return baseApiService.get("/api/v1/stripe/token-status", tokenStripeStatusResponse);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
getTokenPurchases = async (): Promise<GetTokenPurchasesResponse> => {
|
|
|
|
|
return baseApiService.get("/api/v1/stripe/token-purchases", getTokenPurchasesResponse);
|
|
|
|
|
};
|
2026-03-31 18:39:45 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const stripeApiService = new StripeApiService();
|