????

Your IP : 13.58.212.163


Current Path : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/routes/
Upload File :
Current File : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/routes/dichvu.js

var router = require('express').Router();
var readerCtrl = require('../controllers/dichvu/docgia').create();
var requestCtrl = require('../controllers/dichvu/yeucau').create();
var { permit, useLayout } = require('../controllers/middleware');
const fsp = require('fs/promises');
const path = require('path');
const { exportPath } = require('../appconfig');

//yeucau: xem
router.get('/', function (req, res) {
  res.redirect('/main')
});
router.get('/duyetyeucau', permit(208), useLayout, function (req, res) {
  res.render('dichvu/duyetyeucau.eta', {
    title: 'Duyệt yêu cầu tài liệu'
  });
});
router.post('/duyetyeucau', permit(208), function (req, res) {
  requestCtrl.approveReq(req.body.reqId, req.user.UUID, 1)
    .then(function (result) { res.json(result) })
    .catch(function (err) { res.status(400).send(err.message) })
});
router.delete('/duyetyeucau', permit(208), function (req, res) {
  requestCtrl.approveReq(req.body.reqId, req.user.UUID, 2)
    .then(function (result) { res.json(result) })
    .catch(function (err) { res.status(400).send(err.message) })
});
router.get('/yeucau', permit(206), useLayout, function (req, res) {
  res.render('dichvu/yeucau.eta', {
    title: 'Yêu cầu tài liệu'
  });
});
router.get('/yeucau/json', permit(206), async function (req, res) {
  let reqInfo = {};
  if (req.query['type'] == 'submited') reqInfo['account'] = req.user.UUID;
  if (typeof req.query['approved'] != 'undefined') reqInfo['approved'] = req.query['approved'] == 'true';
  requestCtrl.getRequests(reqInfo)
    .then(function (result) { res.json({ data: result }) })
    .catch(function (err) { res.status(400).send(err.message) })
});
router.get('/yeucau/chitiet', permit(206), function (req, res) {
  requestCtrl.getRequestDetail(req.query['reqId'])
    .then(function (result) { res.json({ data: result }) })
    .catch(function (err) { res.status(400).send(err.message) })
});
router.get('/yeucau/export/:id', async function (req, res) {
  let pdfPath = path.join(exportPath, req.params.id + '.docx');
  try {
    if (await fsp.access(pdfPath).then(() => false).catch(() => true)) 
      await requestCtrl.exportPDF(req.params.id);
    res.download(pdfPath);
  } catch (err) { console.log(err.stack); res.status(400).send(err.message) }
});
//docgia
router.get('/docgia', permit(202), useLayout, function (req, res) {
  res.render('dichvu/docgia.eta', {
    title: 'Danh sách độc giả',
  });
});
router.get('/docgia/json', permit(202), function (req, res) {
  readerCtrl.getReaders()
    .then(function (result) { res.json({ data: result }); })
    .catch(function (err) { res.status(400).send(err.message); });
});
router.post('/docgia', permit(202), function (req, res) {
  readerCtrl.addReader(req.body)
    .then(function (result) { res.json(result) })
    .catch(function (err) { res.status(400).send(err.message) })
});
router.put('/docgia', permit(202), function (req, res) {
  readerCtrl.editReader(req.body)
    .then(function (result) { res.json(result) })
    .catch(function (err) { res.status(400).send(err.message) })
});
router.delete('/docgia', permit(202), function (req, res) {
  readerCtrl.deleteReader(req.body.id)
    .then(function (result) { res.json(result) })
    .catch(function (err) { res.status(400).send(err.message) })
});
//bieuphi
router.get('/bieuphi', permit(210), useLayout, function (req, res) {
  res.render('dichvu/bieuphi.eta', {
    title: 'Quản lý phí dịch vụ'
  });
});
router.get('/bieuphi/json', permit(210), function (req, res) {
  requestCtrl.getPrices()
    .then(function (recordset) { res.json({ data: recordset }) })
    .catch(function (err) { res.status(400).send(err.message) })
});
router.put('/bieuphi', permit(210), function (req, res) {
  requestCtrl.updatePrice(req.body)
    .then(function (result) { res.json(result) })
    .catch(function (err) { res.status(400).send(err.message) });
});
module.exports = router;