221 lines
6.2 KiB
JavaScript
Executable File
221 lines
6.2 KiB
JavaScript
Executable File
const express = require('express');
|
|
const router = express.Router();
|
|
|
|
const tools = require('../tools/general');
|
|
|
|
const server_constants = require('../tools/server_constants');
|
|
|
|
const { authenticate } = require('../middleware/authenticate');
|
|
|
|
const { User } = require('../models/user');
|
|
|
|
const { Nave } = require('../models/nave');
|
|
const { NavePersistente } = require('../models/navepersistente');
|
|
|
|
const mongoose = require('mongoose');
|
|
const Subscription = mongoose.model('subscribers');
|
|
|
|
const telegrambot = require('../telegram/telegrambot');
|
|
|
|
const _ = require('lodash');
|
|
|
|
const { ObjectID } = require('mongodb');
|
|
|
|
router.post('/', authenticate, async (req, res) => {
|
|
try {
|
|
const idapp = req.body.idapp;
|
|
let username = req.body.username;
|
|
|
|
if ((!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm)) && (username) !== req.user.username) {
|
|
// If without permissions, exit
|
|
return res.status(404).send({ code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: '' });
|
|
}
|
|
let aportador_solidario = req.user.aportador_solidario;
|
|
let aportador_solidario_nome_completo = req.user.aportador_solidario_nome_completo;
|
|
|
|
// if (User.isAdmin(req.user.perm) || User.isManager(req.user.perm)) {
|
|
// const recuser = await User.findByUsername(idapp, username);
|
|
// if (recuser) {
|
|
// aportador_solidario_nome_completo = recuser.name + ' ' + recuser.surname;
|
|
// }
|
|
// }
|
|
|
|
if (username) {
|
|
aportador_solidario = await User.getAportadorSolidarioByUsername(idapp, username);
|
|
aportador_solidario_nome_completo = await User.getNameSurnameByUsername(idapp, username);
|
|
} else {
|
|
username = req.user.username;
|
|
}
|
|
|
|
const dashboard = await User.getDashboard(idapp, aportador_solidario, username, aportador_solidario_nome_completo);
|
|
if (dashboard)
|
|
res.send({ dashboard });
|
|
else
|
|
res.status(400).send(e);
|
|
|
|
} catch (e) {
|
|
res.status(400).send(e);
|
|
}
|
|
|
|
});
|
|
|
|
|
|
router.post('/msgnave', authenticate, async (req, res) => {
|
|
const idapp = req.body.idapp;
|
|
let mydata = req.body;
|
|
|
|
try {
|
|
|
|
let ris = null;
|
|
if (mydata.tipomsg === tools.TipoMsg.SEND_MSG_SINGOLO) {
|
|
let mymsg = '';
|
|
if (!!mydata.username_mitt) {
|
|
mymsg = '[' + tools.getres__('MSG_SEND_FROM', res) + ' ' + mydata.username_mitt + ']:' + tools.ACAPO;
|
|
}
|
|
mymsg += mydata.msgpar1;
|
|
ris = await telegrambot.sendMsgTelegram(idapp, mydata.username, mymsg, true, mydata.username_mitt); // Anche a STAFF
|
|
} else
|
|
ris = await telegrambot.sendMsgTelegramToNave(idapp, mydata);
|
|
|
|
if (ris)
|
|
res.send({ code: server_constants.RIS_CODE_OK, ris });
|
|
else
|
|
res.send({ code: server_constants.RIS_CODE_ERR, ris: null });
|
|
|
|
|
|
} catch (e) {
|
|
res.status(400).send(e);
|
|
}
|
|
|
|
});
|
|
|
|
router.post('/getnave', authenticate, async (req, res) => {
|
|
const idapp = req.body.idapp;
|
|
const riga = req.body.riga;
|
|
const col = req.body.col;
|
|
const riga1don = req.body.riga1don;
|
|
const col1don = req.body.col1don;
|
|
const ind_order = req.body.ind_order;
|
|
|
|
const nave = await NavePersistente.findByRigaCol(idapp, riga, col);
|
|
if (!!nave) {
|
|
nave._doc.rec = await Nave.getNaveByRigaCol(idapp, riga1don, col1don);
|
|
if (ind_order >= 0)
|
|
nave._doc.ind_order = ind_order;
|
|
|
|
nave._doc.listadonatoridelsognatore = await Nave.getDonatoridelSognatore(idapp, riga1don, col1don);
|
|
}
|
|
|
|
const navi_partenza = await NavePersistente.findAllIdApp(idapp);
|
|
|
|
ris = { nave, navi_partenza };
|
|
|
|
if (ris)
|
|
res.send({ code: server_constants.RIS_CODE_OK, ris });
|
|
else
|
|
res.status(400).send(e);
|
|
|
|
});
|
|
|
|
router.post('/getnavi', authenticate, async (req, res) => {
|
|
const idapp = req.body.idapp;
|
|
|
|
let arrnavi = await NavePersistente.findAllIdApp(idapp);
|
|
|
|
for (nave of arrnavi) {
|
|
//nave.rec = await Nave.getNaveByRigaCol(idapp, nave.riga, nave.col);
|
|
nave._doc.rec = {
|
|
donatore: {},
|
|
mediatore: null
|
|
};
|
|
|
|
let riganave = nave.riga;
|
|
let colnave = nave.col;
|
|
// if (riganave < 4) {
|
|
// riganave = 4;
|
|
// colnave = 1;
|
|
// }
|
|
// nave._doc.rec.donatore.navepersistente = await NavePersistente.findByRigaColByDonatore(idapp, riganave, colnave, 0);
|
|
nave._doc.rec.donatore.navepersistente = await NavePersistente.findOne({ idapp, riga: riganave, col: colnave });
|
|
}
|
|
|
|
const navi_partenza = await NavePersistente.findAllIdApp(idapp);
|
|
|
|
ris = { arrnavi, navi_partenza };
|
|
|
|
if (ris)
|
|
res.send({ code: server_constants.RIS_CODE_OK, ris });
|
|
else
|
|
res.status(400).send(e);
|
|
|
|
});
|
|
|
|
router.post('/getdoninavi', authenticate, async (req, res) => {
|
|
const idapp = req.body.idapp;
|
|
const ricalcola = req.body.ricalcola;
|
|
|
|
let arrnavi = await NavePersistente.findAllIdApp(idapp);
|
|
let test = false;
|
|
|
|
//arrnavi.push({ riga: indriga, col: indcol, rigadon: indriga + 3, coldon: (indcol * 8) - 7 });
|
|
|
|
try {
|
|
if (ricalcola) {
|
|
let index = 1;
|
|
|
|
for (nave of arrnavi) {
|
|
nave = await Nave.ricalcolaNave(idapp, nave, 0, 0, ricalcola, index);
|
|
index++;
|
|
}
|
|
} else {
|
|
arrnavi = await NavePersistente.findAllIdApp(idapp);
|
|
for (nave of arrnavi) {
|
|
if (nave.provvisoria || nave.DoniTotali !== nave.DoniConfermati) {
|
|
nave._doc.rec = await Nave.getNaveByRigaCol(idapp, nave.riga1don, nave.col1don);
|
|
} else {
|
|
let rigapos = nave.riga1don;
|
|
let colpos = nave.col1don;
|
|
if (rigapos < 4) {
|
|
rigapos = 4;
|
|
colpos = 1;
|
|
}
|
|
nave._doc.rec = {};
|
|
nave._doc.rec.donatore = {};
|
|
nave._doc.rec.donatore.navepersistente = await NavePersistente.findByRigaColByDonatore(idapp, rigapos, colpos, tools.Placca.SONOFUOCO);
|
|
}
|
|
}
|
|
}
|
|
|
|
ris = { arrnavi };
|
|
|
|
if (ris)
|
|
res.send({ code: server_constants.RIS_CODE_OK, ris });
|
|
else
|
|
res.status(400).send(e);
|
|
} catch (e) {
|
|
console.log(e.message)
|
|
}
|
|
|
|
});
|
|
|
|
router.post('/getdata', authenticate, async (req, res) => {
|
|
const idapp = req.body.idapp;
|
|
const data = req.body.data;
|
|
|
|
try {
|
|
|
|
const mystr = await Nave.getNavePos(idapp, parseInt(data.riga), parseInt(data.col));
|
|
|
|
if (mystr)
|
|
res.send({ code: server_constants.RIS_CODE_OK, ris: mystr });
|
|
else
|
|
res.status(400).send(e);
|
|
} catch (e) {
|
|
console.log(e.message)
|
|
}
|
|
|
|
});
|
|
|
|
|
|
module.exports = router;
|