feat: complete day 10
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
const express = require("express");
|
||||
const router = express.Router();
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const pdf = require("html-pdf-node");
|
||||
|
||||
router.get("/:code", async (req, res) => {
|
||||
const { amount = 1, service = "software service" } = req.query;
|
||||
|
||||
// Read the invoice template
|
||||
const templatePath = path.join(__dirname, "../invoice.html");
|
||||
let html = fs.readFileSync(templatePath, "utf8");
|
||||
|
||||
// Replace placeholders in the template
|
||||
html = html
|
||||
.replace("Website design", service)
|
||||
.replace("$300.00", `$${amount}.00`)
|
||||
.replace("Total: $385.00", `Total: $${amount}.00`);
|
||||
|
||||
// Generate PDF
|
||||
let file = { content: html };
|
||||
pdf.generatePdf(file, { format: "A4" }).then((pdfBuffer) => {
|
||||
res.setHeader("Content-Type", "application/pdf");
|
||||
res.setHeader("Content-Disposition", "attachment; filename=invoice.pdf");
|
||||
res.send(pdfBuffer);
|
||||
});
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
+16
-3
@@ -1,9 +1,22 @@
|
||||
var express = require('express');
|
||||
var express = require("express");
|
||||
var router = express.Router();
|
||||
const QRCode = require("qrcode");
|
||||
|
||||
/* GET home page. */
|
||||
router.get('/', function(req, res, next) {
|
||||
res.render('index', { title: 'Express' });
|
||||
router.get("/", function (req, res, next) {
|
||||
res.render("index", { title: "Express" });
|
||||
});
|
||||
|
||||
router.get("/code", async function (req, res, next) {
|
||||
const code = Math.random().toString(36).substring(2, 8); // random code
|
||||
const qrUrl = `/api/v1/code/${code}?amount=1&service=software%20service`;
|
||||
const qrData = await QRCode.toDataURL(
|
||||
`http://localhost:${process.env.PORT || 3000}${qrUrl}`
|
||||
);
|
||||
res.render("code", {
|
||||
qrData,
|
||||
qrUrl: `http://localhost:${process.env.PORT || 3000}${qrUrl}`,
|
||||
});
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
|
||||
Reference in New Issue
Block a user