Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* POST /api/medidores-carga-estados */
- router.post('/', function(req, res, next) {
- var medidor = req.body || {};
- if (!validarMedidor(medidor)) {
- var err = new Error('Medidor no válido.');
- return next(err);
- }
- var database = require('../database');
- var connection = database.createConnection();
- connection.connect();
- // validaciones
- connection.query('SELECT * FROM `medidores` WHERE `nro_medidor`=?', [medidor.nro_medidor], function (err, rows, fields) {
- if (err) return next(err);
- if (!rows[0]) {
- var err = new Error('El medidor número ' + medidor.nro_medidor + ' no existe.');
- return next(err);
- };
- });
- connection.query('SELECT * FROM `medidores_carga_estados` WHERE `nro_medidor`=?', [medidor.nro_medidor], function (err, rows, fields) {
- if (err) return next(err);
- if (rows[0]) {
- var err = new Error('El medidor número ' + medidor.nro_medidor + ' ya existe en la lista de carga de estados.');
- return next(err);
- };
- });
- connection.query('SELECT * FROM `medidores` WHERE `nro_medidor`=? AND (`fecha_actual`<? AND `estado_actual`<=?)', [medidor.nro_medidor, medidor.fecha_actual, medidor.estado_actual], function (err, rows, fields) {
- if (err) return next(err);
- if (!rows[0]) {
- var err = new Error('La fecha actual debe ser mayor que la fecha anterior o el estado actual debe ser mayor o igual que el estado anterior.');
- return next(err);
- };
- });
- // fin de validaciones
- connection.query('INSERT INTO `medidores_carga_estados` (`nro_medidor`, `fecha_actual`, `estado_actual`) VALUES (?, ?, ?)', [medidor.nro_medidor, medidor.fecha_actual, medidor.estado_actual], function (err, result) {
- if (err) return next(err);
- if (result.affectedRows === 1) {
- var response = {success:true};
- res.json(response);
- };
- });
- connection.end();
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement