w-aura/src/api/resources/SinglePayment.ts
2024-03-25 01:32:46 +04:00

80 lines
1.6 KiB
TypeScript

import routes from "@/routes";
import { getAuthHeaders } from "../utils";
interface Payload {
token: string;
}
export type PayloadGet = Payload;
export interface PayloadPost extends Payload {
data: {
user: {
id: string;
email: string;
name: string;
sign: string;
age: number;
};
partner: {
sign: string | null;
age: number | null;
};
paymentInfo: {
productId: string;
};
return_url: string;
};
}
export interface ResponseGet {
key: string;
productId: string;
amount: number;
currency: string;
}
export interface ResponsePost {
paymentIntent: {
status: string;
data: {
client_secret: string;
paymentIntentId: string;
return_url?: string;
public_key: string;
product: {
id: string;
name: string;
description: null | string;
price: {
id: string;
unit_amount: number;
currency: string;
};
};
};
};
}
export interface ResponsePostExistPaymentData {
payment: {
status: string;
invoiceId: string;
};
}
export const createRequestPost = ({ data, token }: PayloadPost): Request => {
const url = new URL(routes.server.dApiPaymentCheckout());
const body = JSON.stringify(data);
return new Request(url, {
method: "POST",
headers: getAuthHeaders(token),
body,
});
};
export const createRequestGet = ({ token }: PayloadGet): Request => {
const url = new URL(routes.server.dApiTestPaymentProducts());
return new Request(url, { method: "GET", headers: getAuthHeaders(token) });
};