????

Your IP : 18.119.131.79


Current Path : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/routes/sohoa/
Upload File :
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;
}