Files
turnosxpress/server/src/api/PlanSubscriptions/PlanSubscriptions.Service.ts
T

41 lines
1.7 KiB
TypeScript

import PlanSubscriptionsList from "../../Models/PlanSubscriptions/PlanSubscriptons";
import {
CancellPlanSuscriptionParams,
CreateMPPreApprovalParams,
GetSubscriptionInitPointParams,
GetSuscriptionInitPointResponse,
MPPreApprovalResponse,
VerifyPendingPlanPaymentParams,
VerifyPendingPlanPaymentResponse,
} from "../../Models/PlanSubscriptions/PlanSubscriptions.interface";
import { connect } from "mongoose";
import { validateSessionUser } from "../../helpers/check";
import { MercadoPagoWebhookService } from "../MercadoPago/MercadoPagoWebhook.Service";
export class PlanSubscriptionsService {
public async getInitPoint(
data: GetSubscriptionInitPointParams
): Promise<GetSuscriptionInitPointResponse> {
await connect(`${process.env.DATABASE_CONNECTION}`);
const initPoint = await PlanSubscriptionsList.getInitPoint(data);
return initPoint;
}
public async create(data: CreateMPPreApprovalParams): Promise<MPPreApprovalResponse> {
await connect(`${process.env.DATABASE_CONNECTION}`);
const preApproval = await PlanSubscriptionsList.create(data);
return preApproval;
}
public async cancell(data: CancellPlanSuscriptionParams): Promise<void> {
await connect(`${process.env.DATABASE_CONNECTION}`);
await PlanSubscriptionsList.cancell(data);
}
public async verifyPendingPayment(data: VerifyPendingPlanPaymentParams): Promise<VerifyPendingPlanPaymentResponse> {
await connect(`${process.env.DATABASE_CONNECTION}`);
await validateSessionUser({ sessionUser: data.sessionUser });
return new MercadoPagoWebhookService().verifyPendingPlanPayment(data.sessionUser);
}
}