Skip to content

Commit 34fb7e6

Browse files
authored
Merge pull request #602 from idurar/dev
🚚 Fix not found download pdf file
2 parents b5700a5 + 5a7bff6 commit 34fb7e6

File tree

2 files changed

+36
-18
lines changed

2 files changed

+36
-18
lines changed

backend/handlers/downloadHandler/downloadPdf.js

+11-5
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,16 @@ module.exports = downloadPdf = async (req, res, { directory, id }) => {
1818
await custom.generatePdf(
1919
modelName,
2020
{ filename: modelName, format: 'A4' },
21-
result.invoice ?? result,
21+
result,
2222
async (fileLocation) => {
2323
return res.download(fileLocation, (err) => {
24-
if (err) res.status(500).json({ success: false, message: "Couldn't find file" });
24+
if (err)
25+
res.status(500).json({
26+
success: false,
27+
result: null,
28+
message: "Couldn't find file",
29+
error: err.message,
30+
});
2531
});
2632
}
2733
);
@@ -31,15 +37,15 @@ module.exports = downloadPdf = async (req, res, { directory, id }) => {
3137
return res.status(400).json({
3238
success: false,
3339
result: null,
34-
error: err,
40+
error: err.message,
3541
message: 'Required fields are not supplied',
3642
});
3743
} else if (err.name == 'BSONTypeError') {
3844
// If err is thrown by Mongoose due to invalid ID
3945
return res.status(400).json({
4046
success: false,
4147
result: null,
42-
error: err,
48+
error: err.message,
4349
message: 'Invalid ID',
4450
});
4551
} else {
@@ -48,7 +54,7 @@ module.exports = downloadPdf = async (req, res, { directory, id }) => {
4854
return res.status(500).json({
4955
success: false,
5056
result: null,
51-
error: err,
57+
error: err.message,
5258
message: 'Oops there is an Error',
5359
});
5460
}
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,36 @@
11
const downloadPdf = require('@/handlers/downloadHandler/downloadPdf');
22
const express = require('express');
3-
3+
const path = require('path');
44
const router = express.Router();
55
const { hasPermission } = require('@/middlewares/permission');
66

7-
router.route('/:subPath/:directory/:id').get(function (req, res) {
8-
const { subPath, directory, id } = req.params;
7+
// router.route('/:directory/:file').get(function (req, res) {
8+
// const { directory, file } = req.params;
99

10-
// Handle the /payment/* route
11-
if (subPath == 'payment' && directory == 'invoice') {
12-
downloadPdf(req, res, { directory: 'Payment', id });
13-
} else {
14-
downloadPdf(req, res, { directory, id });
15-
}
16-
});
10+
// // Handle the /payment/* route
1711

18-
// router.route('/:directory/:id').get(function (req, res) {
19-
// const { directory, id } = req.params;
12+
// const options = {
13+
// root: path.join(__dirname, `../../public/download/${directory}`),
14+
// dotfiles: 'deny',
15+
// headers: {
16+
// 'Content-type': 'application/pdf',
17+
// 'Content-disposition': 'inline; filename="' + file + '"',
18+
// },
19+
// };
2020

21-
// downloadPdf(req, res, { directory, id });
21+
// res.status(200).sendFile(file, options, function (err) {
22+
// if (err) {
23+
// const id = file.slice(directory.length + 1).slice(0, -4); // extract id from file name
24+
// downloadPdf(req, res, { directory, id });
25+
// }
26+
// });
2227
// });
2328

29+
router.route('/:directory/:file').get(function (req, res) {
30+
const { directory, file } = req.params;
31+
32+
const id = file.slice(directory.length + 1).slice(0, -4); // extract id from file name
33+
downloadPdf(req, res, { directory, id });
34+
});
35+
2436
module.exports = router;

0 commit comments

Comments
 (0)