From 9cb5bbf0bba712cd78029491a87fbd164b818ee7 Mon Sep 17 00:00:00 2001
From: Kyle Belanger <Kyleb44@hotmail.com>
Date: Fri, 14 Feb 2025 16:18:51 -0500
Subject: [PATCH] update generate.js

send cover letter to docx on download
---
 routes/generate.js | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/routes/generate.js b/routes/generate.js
index 8ddc1e5..531aada 100644
--- a/routes/generate.js
+++ b/routes/generate.js
@@ -68,10 +68,15 @@ router.post('/download', async (req, res) => {
   try {
     const { coverLetterText } = req.body;
 
-    const outputFilename = path.join(__dirname, '../uploads/cover_letter.docx');
-    generateCoverLetter(coverLetterText, outputFilename);
+    // Generate .docx file dynamically
+    const docBuffer = await generateCoverLetter(coverLetterText);
 
-    res.json({downloadLink: '/uploads/cover_letter.docx'});
+    // Set response headers for file download
+    res.setHeader('Content-Disposition', 'attachment; filename="cover_letter.docx"');
+    res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document');
+
+    res.send(docBuffer);
+    
   } catch (error) {
     console.error(error);
     res.status(500).json({ error: 'Error generating document' });
@@ -133,10 +138,7 @@ function generateCoverLetter(rawText, outputFilename) {
     ],
   });
 
-  Packer.toBuffer(doc).then((buffer) => {
-    fs.writeFileSync(outputFilename, buffer);
-    console.log(`Cover letter saved to ${outputFilename}`);
-  }).catch(error => console.error("Error generating document:", error));
+  return Packer.toBuffer(doc);
 }