41 lines
1.7 KiB
TypeScript
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);
|
|
}
|
|
}
|