@sourceloop/ctrl-plane-subscription-service
Version:
Subscription management microservice for SaaS control plane.
48 lines • 2.2 kB
JavaScript
;
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