????
Current Path : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/routes/sohoa/ |
Current File : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/routes/sohoa/vanban.js |
var vanbanCtrl = require('../../controllers/tailieu/vanban').create(); var fs = require('fs'); var path = require('path'); var { permit } = require('../../controllers/middleware'); const { scanPath, savePath } = require('../../appconfig'); var multer = require('multer'); var upload = multer({ dest: scanPath }); module.exports = function () { var router = require('express').Router(); //GET router.get('/', permit(), function (req, res, _next) { vanbanCtrl.getDocuments(req.query.fileId) .then(function (result) { res.json({ data: result }) }) .catch(function (err) { res.status(400).send(err) }) }); router.get('/:id', permit(), function (req, res, _next) { var query = `SELECT [File].FileCode,Document.DocCode,Document.Signed FROM Document INNER JOIN [File] ON [File].UUID = Document.FileId WHERE Document.UUID = '${req.params.id}'`; vanbanCtrl.select(query) .then(async function (result) { var doc = result[0]; if (doc) { let docPath = path.join(savePath, doc.FileCode, doc.DocCode + (doc['Signed'] ? '.signed' : '') + '.PDF'); try { if (fs.existsSync(docPath)) { res.setHeader('Content-Type', 'application/pdf'); if (req.query['download'] == 'true') res.download(docPath); else res.sendFile(docPath); } else res.status(404).send({ err: 'Văn bản chưa được số hóa' }); } catch (err) { res.status(400).send(err) } } else { res.status(404).send({ err: 'Không tồn tại văn bản trên hệ thống' }); } }) .catch(function (err) { res.status(400).send(err.message || err) }) }); router.post('/', permit(102), function (req, res, _next) { vanbanCtrl.addDocument(req.user, req.body) .then(function (result) { res.json(result) }) .catch(function (err) { res.status(400).json(err.message || err) }) }); router.put('/', permit(102), upload.single('pdf'), function (req, res, _next) { vanbanCtrl.editDocument(req.user, req.body, req.file) .then(function (result) { res.json(result) }) .catch(function (err) { res.status(400).json(err.message || err) }) }); router.delete('/', permit(102), function (req, res, _next) { vanbanCtrl.deleteDocument(req.user, req.body.id) .then(function (result) { res.json(result) }) .catch(function (err) { res.status(400).json(err.message || err) }) }); return router; }