Closure refactor
gitea/salix/pipeline/head This commit looks good Details

This commit is contained in:
Joan Sanchez 2022-09-13 13:20:18 +02:00
parent de3e14e739
commit f3fe19360a
5 changed files with 40 additions and 27 deletions

View File

@ -3,13 +3,22 @@ const closure = require('./closure');
module.exports = async function(request, response, next) { module.exports = async function(request, response, next) {
try { try {
const reqArgs = request.query; const reqArgs = request.body;
if (!reqArgs.to)
throw new Error('The argument to is required');
response.status(200).json({ let toDate = new Date();
message: 'Success' toDate.setDate(toDate.getDate() - 1);
});
if (reqArgs.to) toDate = reqArgs.to;
const todayMinDate = new Date();
minDate.setHours(0, 0, 0, 0);
const todayMaxDate = new Date();
maxDate.setHours(23, 59, 59, 59);
// Prevent closure for current day
if (toDate >= todayMinDate && toDate <= todayMaxDate)
throw new Error('You cannot close tickets for today');
const tickets = await db.rawSql(` const tickets = await db.rawSql(`
SELECT SELECT
@ -36,7 +45,7 @@ module.exports = async function(request, response, next) {
AND DATE(t.shipped) BETWEEN DATE_ADD(?, INTERVAL -2 DAY) AND DATE(t.shipped) BETWEEN DATE_ADD(?, INTERVAL -2 DAY)
AND util.dayEnd(?) AND util.dayEnd(?)
AND t.refFk IS NULL AND t.refFk IS NULL
GROUP BY t.id`, [reqArgs.to, reqArgs.to]); GROUP BY t.id`, [toDate, toDate]);
await closure.start(tickets, response.locals); await closure.start(tickets, response.locals);
@ -52,7 +61,11 @@ module.exports = async function(request, response, next) {
AND util.dayEnd(?) AND util.dayEnd(?)
AND al.code NOT IN('DELIVERED','PACKED') AND al.code NOT IN('DELIVERED','PACKED')
AND t.routeFk AND t.routeFk
AND z.name LIKE '%MADRID%'`, [reqArgs.to, reqArgs.to]); AND z.name LIKE '%MADRID%'`, [toDate, toDate]);
response.status(200).json({
message: 'Success'
});
} catch (error) { } catch (error) {
next(error); next(error);
} }

View File

@ -3,7 +3,7 @@ const closure = require('./closure');
module.exports = async function(request, response, next) { module.exports = async function(request, response, next) {
try { try {
const reqArgs = request.query; const reqArgs = request.body;
if (!reqArgs.agencyModeId) if (!reqArgs.agencyModeId)
throw new Error('The argument agencyModeId is required'); throw new Error('The argument agencyModeId is required');
@ -14,10 +14,6 @@ module.exports = async function(request, response, next) {
if (!reqArgs.to) if (!reqArgs.to)
throw new Error('The argument to is required'); throw new Error('The argument to is required');
response.status(200).json({
message: 'Success'
});
const agencyIds = reqArgs.agencyModeId.split(','); const agencyIds = reqArgs.agencyModeId.split(',');
const tickets = await db.rawSql(` const tickets = await db.rawSql(`
SELECT SELECT
@ -53,6 +49,10 @@ module.exports = async function(request, response, next) {
]); ]);
await closure.start(tickets, response.locals); await closure.start(tickets, response.locals);
response.status(200).json({
message: 'Success'
});
} catch (error) { } catch (error) {
next(error); next(error);
} }

View File

@ -4,15 +4,11 @@ const closure = require('./closure');
module.exports = async function(request, response, next) { module.exports = async function(request, response, next) {
try { try {
const reqArgs = request.query; const reqArgs = request.body;
if (!reqArgs.routeId) if (!reqArgs.routeId)
throw new Error('The argument routeId is required'); throw new Error('The argument routeId is required');
response.status(200).json({
message: 'Success'
});
const tickets = await db.rawSql(` const tickets = await db.rawSql(`
SELECT SELECT
t.id, t.id,
@ -56,6 +52,10 @@ module.exports = async function(request, response, next) {
const email = new Email('driver-route', args); const email = new Email('driver-route', args);
await email.send(); await email.send();
} }
response.status(200).json({
message: 'Success'
});
} catch (error) { } catch (error) {
next(error); next(error);
} }

View File

@ -3,15 +3,11 @@ const closure = require('./closure');
module.exports = async function(request, response, next) { module.exports = async function(request, response, next) {
try { try {
const reqArgs = request.query; const reqArgs = request.body;
if (!reqArgs.ticketId) if (!reqArgs.ticketId)
throw new Error('The argument ticketId is required'); throw new Error('The argument ticketId is required');
response.status(200).json({
message: 'Success'
});
const tickets = await db.rawSql(` const tickets = await db.rawSql(`
SELECT SELECT
t.id, t.id,
@ -38,6 +34,10 @@ module.exports = async function(request, response, next) {
GROUP BY e.ticketFk`, [reqArgs.ticketId]); GROUP BY e.ticketFk`, [reqArgs.ticketId]);
await closure.start(tickets, response.locals); await closure.start(tickets, response.locals);
response.status(200).json({
message: 'Success'
});
} catch (error) { } catch (error) {
next(error); next(error);
} }

View File

@ -1,9 +1,9 @@
const express = require('express'); const express = require('express');
const router = new express.Router(); const router = new express.Router();
router.get('/all', require('./closeAll')); router.post('/all', require('./closeAll'));
router.get('/by-ticket', require('./closeByTicket')); router.post('/by-ticket', require('./closeByTicket'));
router.get('/by-agency', require('./closeByAgency')); router.post('/by-agency', require('./closeByAgency'));
router.get('/by-route', require('./closeByRoute')); router.post('/by-route', require('./closeByRoute'));
module.exports = router; module.exports = router;