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 { await connect(`${process.env.DATABASE_CONNECTION}`); const initPoint = await PlanSubscriptionsList.getInitPoint(data); return initPoint; } public async create(data: CreateMPPreApprovalParams): Promise { await connect(`${process.env.DATABASE_CONNECTION}`); const preApproval = await PlanSubscriptionsList.create(data); return preApproval; } public async cancell(data: CancellPlanSuscriptionParams): Promise { await connect(`${process.env.DATABASE_CONNECTION}`); await PlanSubscriptionsList.cancell(data); } public async verifyPendingPayment(data: VerifyPendingPlanPaymentParams): Promise { await connect(`${process.env.DATABASE_CONNECTION}`); await validateSessionUser({ sessionUser: data.sessionUser }); return new MercadoPagoWebhookService().verifyPendingPlanPayment(data.sessionUser); } }