UNPKG

@sourceloop/ctrl-plane-tenant-management-service

Version:

Tenant Management microservice for SaaS control plane

46 lines 1.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.InvoicePDFGenerator = void 0; const tslib_1 = require("tslib"); const pdfkit_1 = tslib_1.__importDefault(require("pdfkit")); const fs_1 = tslib_1.__importDefault(require("fs")); const LARGE_SIZE = 16; const MEDIUM_SIZE = 12; class InvoicePDFGenerator { constructor() { } async generatePDF(invoice) { const doc = new pdfkit_1.default(); const fileName = `invoice_${invoice.id}.pdf`; const writeStream = fs_1.default.createWriteStream(fileName); doc.pipe(writeStream); // Write invoice details to PDF doc .fontSize(LARGE_SIZE) .text('Invoice Details', { underline: true }) .moveDown(); doc.fontSize(MEDIUM_SIZE).text(`Invoice ID: ${invoice.id}`).moveDown(); doc .fontSize(MEDIUM_SIZE) .text(`Start Date: ${invoice.startDate}`) .moveDown(); doc.fontSize(MEDIUM_SIZE).text(`End Date: ${invoice.endDate}`).moveDown(); doc .fontSize(MEDIUM_SIZE) .text(`Amount: ${invoice.amount} ${invoice.currencyCode}`) .moveDown(); doc.fontSize(MEDIUM_SIZE).text(`Due Date: ${invoice.dueDate}`).moveDown(); doc.fontSize(MEDIUM_SIZE).text(`Status: ${invoice.status}`).moveDown(); // End PDF generation doc.end(); return new Promise((resolve, reject) => { writeStream.on('finish', () => { resolve(fileName); }); writeStream.on('error', err => { reject(err); }); }); } } exports.InvoicePDFGenerator = InvoicePDFGenerator; //# sourceMappingURL=invoice-pdf-generator.service.js.map