UNPKG

@sourceloop/ctrl-plane-subscription-service

Version:

Subscription management microservice for SaaS control plane.

48 lines 2.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WebhookController = void 0; const tslib_1 = require("tslib"); const core_1 = require("@loopback/core"); const repository_1 = require("@loopback/repository"); const rest_1 = require("@loopback/rest"); const loopback4_authorization_1 = require("loopback4-authorization"); const keys_1 = require("../keys"); const repositories_1 = require("../repositories"); const billing_customer_repository_1 = require("../repositories/billing-customer.repository"); let WebhookController = class WebhookController { constructor(billingCustomerRepository, invoiceRepository) { this.billingCustomerRepository = billingCustomerRepository; this.invoiceRepository = invoiceRepository; } async handleWebhook(payload) { const content = payload.content; await this.handlePayment(content); } async handlePayment(content) { const invoice = await this.invoiceRepository.find({ where: { invoiceId: content.invoice.id }, }); await this.invoiceRepository.updateById(invoice[0].id, { invoiceStatus: content.invoice.status, }); } }; exports.WebhookController = WebhookController; tslib_1.__decorate([ (0, loopback4_authorization_1.authorize)({ permissions: ['*'], }), (0, core_1.intercept)(keys_1.WEBHOOK_VERIFIER), (0, rest_1.post)('/webhooks/billing-payment'), tslib_1.__param(0, (0, rest_1.requestBody)()), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [Object]), tslib_1.__metadata("design:returntype", Promise) ], WebhookController.prototype, "handleWebhook", null); exports.WebhookController = WebhookController = tslib_1.__decorate([ tslib_1.__param(0, (0, repository_1.repository)(billing_customer_repository_1.BillingCustomerRepository)), tslib_1.__param(1, (0, repository_1.repository)(repositories_1.InvoiceRepository)), tslib_1.__metadata("design:paramtypes", [billing_customer_repository_1.BillingCustomerRepository, repositories_1.InvoiceRepository]) ], WebhookController); //# sourceMappingURL=webhook.controller.js.map