82 lines
2.5 KiB
TypeScript
82 lines
2.5 KiB
TypeScript
import routes from "@/routes";
|
|
import { getAuthHeaders } from "../utils";
|
|
|
|
interface Payload {
|
|
token: string;
|
|
}
|
|
|
|
export interface PayloadGet extends Payload {
|
|
placementKey: EPlacementKeys;
|
|
}
|
|
|
|
export enum EPlacementKeys {
|
|
"aura.placement.v1.mike" = "aura.placement.v1.mike",
|
|
"aura.placement.main" = "aura.placement.main",
|
|
"aura.placement.redesign.main" = "aura.placement.redesign.main",
|
|
"aura.placement.email.marketing" = "aura.placement.email.marketing",
|
|
"aura.placement.secret.discount" = "aura.placement.secret.discount",
|
|
"aura.placement.palmistry.main" = "aura.placement.palmistry.main",
|
|
"aura.placement.palmistry.redesign" = "aura.placement.palmistry.redesign",
|
|
"aura.placement.chat" = "aura.placement.chat",
|
|
"aura.placement.email.palmistry" = "aura.placement.email.palmistry",
|
|
"aura.placement.email.palmistry.discount" = "aura.placement.email.palmistry.discount",
|
|
"aura.placement.email.compatibility.discount" = "aura.placement.email.compatibility.discount",
|
|
"aura.placement.palmistry.secret.discount" = "aura.placement.palmistry.secret.discount",
|
|
"aura.placement.compatibility.v2" = "aura.placement.compatibility.v2",
|
|
"aura.placement.compatibility.v2.secret.discount" = "aura.placement.compatibility.v2.secret.discount",
|
|
"aura.placement.payment" = "aura.placement.payment" // anonymous payment
|
|
}
|
|
|
|
export interface ResponseGetSuccess {
|
|
placementId: string,
|
|
paywallId: string,
|
|
paywall: IPaywall;
|
|
currency: string;
|
|
}
|
|
|
|
interface ResponseGetError {
|
|
status: string;
|
|
message: string;
|
|
}
|
|
|
|
export interface IPaywall {
|
|
_id: string;
|
|
key: string;
|
|
name: string;
|
|
products: IPaywallProduct[];
|
|
properties: IPaywallProperties[];
|
|
}
|
|
|
|
export interface IPaywallProduct {
|
|
_id: string;
|
|
key: string;
|
|
productId: string;
|
|
name: string;
|
|
priceId: string;
|
|
type: string;
|
|
description: string;
|
|
discountPrice: null;
|
|
discountPriceId: null;
|
|
isDiscount: boolean;
|
|
isFreeTrial: boolean;
|
|
isTrial: boolean;
|
|
price: number;
|
|
trialDuration: number | null;
|
|
trialPrice: number | null;
|
|
trialPriceId: string | null;
|
|
currency?: string;
|
|
}
|
|
|
|
interface IPaywallProperties {
|
|
_id: string;
|
|
key: string;
|
|
value: string;
|
|
}
|
|
|
|
export type ResponseGet = ResponseGetSuccess | ResponseGetError;
|
|
|
|
export const createRequestGet = ({ token, placementKey }: PayloadGet): Request => {
|
|
const url = new URL(routes.server.getPaywallByPlacementKey(placementKey));
|
|
return new Request(url, { method: "GET", headers: getAuthHeaders(token) });
|
|
};
|