This commit is contained in:
paoloar77
2022-02-03 00:33:15 +01:00
parent c391ca85c3
commit daf872fe55
20 changed files with 651 additions and 4831 deletions

View File

@@ -15,7 +15,7 @@ const {authenticate, authenticate_noerror} = require(
'../middleware/authenticate');
const {ObjectID} = require('mongodb');
const {ListaIngresso} = require('../models/listaingresso');
// const {ListaIngresso} = require('../models/listaingresso');
const {Graduatoria} = require('../models/graduatoria');
const mongoose = require('mongoose').set('debug', false);
@@ -34,9 +34,7 @@ if (!fs.existsSync(folder)) {
const _ = require('lodash');
const {User} = require('../models/user');
const {Nave} = require('../models/nave');
const {Flotta} = require('../models/flotta');
const {NavePersistente} = require('../models/navepersistente');
const {MyGroup} = require('../models/mygroup');
// const { ExtraList } = require('../models/extralist');
const {Booking} = require('../models/booking');
const {Operator} = require('../models/operator');
@@ -103,7 +101,6 @@ const UserCost = {
'profile.paymenttypes'],
};
router.post(process.env.LINKVERIF_REG, (req, res) => {
const body = _.pick(req.body, ['idapp', 'idlink']);
const idapp = body.idapp;
@@ -222,6 +219,8 @@ function getTableByTableName(tablename) {
let mytable = '';
if (tablename === 'users')
mytable = User;
else if (tablename === 'mygroups')
mytable = MyGroup;
else if (tablename === 'tessitura')
mytable = Tessitura;
// else if (tablename === 'extralist')
@@ -294,16 +293,12 @@ function getTableByTableName(tablename) {
mytable = Permission;
else if (tablename === 'mailinglist')
mytable = MailingList;
else if (tablename === 'navi')
mytable = Nave;
else if (tablename === 'flotte')
mytable = Flotta;
else if (tablename === 'msg_templates')
mytable = MsgTemplate;
else if (tablename === 'navepersistente')
mytable = NavePersistente;
else if (tablename === 'listaingressos')
mytable = ListaIngresso;
// else if (tablename === 'listaingressos')
// mytable = ListaIngresso;
else if (tablename === 'graduatorias')
mytable = Graduatoria;
else if (tablename === 'skills')
@@ -365,6 +360,23 @@ router.post('/settable', authenticate, (req, res) => {
}
}
if (shared_consts.TABLES_USER_INCLUDE_MY.includes(params.table)) {
if (!mydata.admins) {
mydata.admins = [];
} else {
const arrnew = [];
for (const username of mydata.admins) {
arrnew.push({username});
}
mydata.admins = arrnew;
}
const indfind = mydata.admins.findIndex((rec) => (rec.username === req.user.username));
if (indfind < 0) {
mydata.admins.push({_id: new ObjectID(), username: req.user.username});
}
}
delete mydata['__v'];
delete mydata['__proto__'];
@@ -411,7 +423,7 @@ router.post('/settable', authenticate, (req, res) => {
}
});
}catch (e) {
} catch (e) {
return res.status(400).send(e);
}
@@ -627,7 +639,8 @@ router.patch('/chval', authenticate, async (req, res) => {
if (mydata.table === shared_consts.TAB_SITES) {
if (shared_consts.SITES_KEY_TO_CRYPTED in fieldsvalue) {
fieldsvalue[shared_consts.SITES_KEY_TO_CRYPTED] = tools.cryptdata(fieldsvalue[shared_consts.SITES_KEY_TO_CRYPTED]);
fieldsvalue[shared_consts.SITES_KEY_TO_CRYPTED] = tools.cryptdata(
fieldsvalue[shared_consts.SITES_KEY_TO_CRYPTED]);
}
}
@@ -810,272 +823,7 @@ router.patch('/callfunz', authenticate, async (req, res) => {
let fieldsvalue = {};
if (mydata.myfunc === shared_consts.CallFunz.SOSTITUISCI) { // SOSTITUISCI
let username_da_sostituire = mydata.data.username_da_sostituire;
let myuservecchio = await User.findOne(
{idapp, username: username_da_sostituire});
let mianavedasost = await Nave.findOne(
{idapp, riga: mydata.data.riga, col: mydata.data.col});
if (!!mianavedasost) {
// Sostituisci l'Utente
let myusernuovo = await User.getUserShortDataByUsername(idapp,
mydata.data.username);
let navepersistente = await NavePersistente.findByRigaColByDonatore(
idapp, mydata.data.riga, mydata.data.col, 0);
if (myusernuovo) {
if (!mydata.data.AddImbarco && mianavedasost.ind_order > 0) {
// Controlla prima se è in una Nave Temporanea, allora lo elimina dall'ultima Nave Temporanea
let miaarrnavi = await Nave.getArrPosizioniByUsername(idapp,
username);
if (miaarrnavi) {
miaarrnavi = miaarrnavi.reverse(); // parto dall'ultima
for (const mianave of miaarrnavi) {
let persistente = await NavePersistente.findByRigaColByDonatore(
idapp, mianave.riga, mianave.col, 0);
if (persistente.provvisoria) {
fieldsvalue = {
ind_order: -1,
};
let ris = await Nave.findByIdAndUpdate(mianave._id,
{$set: fieldsvalue});
if (!!ris) {
// rimosso++;
break; // Rimuovilo solo 1 !
}
}
}
}
}
if (mianavedasost.ind_order >= 0) {
// ELIMINO LA LISTAINGRESSO CHE STO SOSTITUENDO (SOLO SE NON VIENE USATA DA ALTRA NAVE!)
let eliminatoingr = await ListaIngresso.eliminaListaIngresso(idapp,
mianavedasost.ind_order, req, mianavedasost.num_tess);
if (!eliminatoingr) {
return res.send({
code: server_constants.RIS_CODE_ERR,
msg: 'La Sostituzione non può avvenire ! Contattare Paolo. (ind_order=' +
mianavedasost.ind_order + ')',
});
}
}
if (!!myuservecchio) {
if (mydata.data.notifBot) {
const mydatamsg = {
tipomsg: tools.TipoMsg.SEND_MSG_A_UTENTE_SOSTITUITO,
navemediatore: {
riga: navepersistente.riga,
col: navepersistente.col,
},
};
mydatamsg.flotta = await Flotta.getFlottaByNavePersistente(idapp,
navepersistente);
const rismsg = await telegrambot.getMsgByTipoMsg(mydatamsg,
myuservecchio.lang, myuservecchio, false);
if (!!rismsg) {
let messaggio = rismsg.body;
// let mytitle = rismsg.title;
if (!!messaggio) {
await telegrambot.sendMsgTelegram(idapp, myusernuovo.username,
messaggio);
}
}
}
// Se ha gia delle altre navi, non cancellarlo!
if (!await Nave.checkIfMadeGift(idapp, myuservecchio.username)) {
if (mydata.data.deleteUser && mianavedasost.ind_order > 0) {
// Metti Deleted allo User
fieldsvalue = {
deleted: true,
date_deleted: new Date(),
};
await User.findByIdAndUpdate(myuservecchio.id,
{$set: fieldsvalue});
await telegrambot.sendMsgTelegramToTheManagers(idapp,
`L\'utente ${myuservecchio.name} ${myuservecchio.surname} (${myuservecchio.username}) è stato cancellato (nascosto) perchè sostituito (da ${req.user.name} ${req.user.surname} )`);
}
}
}
let ind_order = -1;
let myingr = null;
// Estrai un ind_order dalla Lista, se era ancora in attesa
if (!mydata.data.AddImbarco)
myingr = await ListaIngresso.findOne(
{idapp, added: false, username: myusernuovo.username});
if (!!myingr) {
ind_order = myingr.ind_order;
myingr.added = true;
await myingr.save();
} else {
// Crea un nuovo Ingresso
myingr = await ListaIngresso.addUserInListaIngresso(idapp,
myuser.username, myuser.username, myuser.lang, false, true,
null, null, true);
ind_order = myingr.ind_order;
await myingr.save();
}
// Togliolo dalla Graduatoria!
await Graduatoria.findOneAndUpdate({
idapp,
idListaIngresso: myingr._id,
}, {$set: {ind_order: -1}}, {new: false});
// Aggiorna la Nave con il Nuovo
fieldsvalue = {
ind_order,
};
const dachi = req.user.name + ' ' + req.user.surname;
return await Nave.findByIdAndUpdate(mianavedasost.id,
{$set: fieldsvalue}).then(async (nave) => {
// tools.mylogshow(' REC TO MODIFY: ', rec);
if (!nave) {
return res.status(404).send();
} else {
const mydatamsg = {
tipomsg: tools.TipoMsg.SEND_MSG_EFFETTUA_IL_DONO,
navemediatore: {
riga: navepersistente.riga,
col: navepersistente.col,
},
};
mydatamsg.flotta = await Flotta.getFlottaByNavePersistente(idapp,
navepersistente);
const rismsg = await telegrambot.getMsgByTipoMsg(mydatamsg,
myusernuovo.lang, myusernuovo, false);
let messaggio = rismsg.body;
let mytitle = rismsg.title;
// const myplacca = await Nave.getNavePos(idapp, navepersistente.riga, navepersistente.col);
// messaggio += tools.ACAPO + myplacca;
let testostaff = '';
if (mydata.notifBot)
testostaff = mydata.notifBot.txt;
const mymsg = testostaff + ' ' + myusernuovo.name + ' ' +
myusernuovo.surname + ' [da ' + dachi + ']' + tools.ACAPO +
'Inviato messaggio: ' + messaggio;
if (mydata.data.notifBot) {
await telegrambot.sendMsgTelegram(idapp, myusernuovo.username,
messaggio);
if (mydata.data.inviaemail) {
await sendemail.sendEmail_ByText(myusernuovo.lang,
myusernuovo.email, myusernuovo, idapp, {
emailbody: messaggio,
emailtitle: mytitle,
});
}
await telegrambot.sendMsgTelegramToTheManagers(idapp,
testostaff);
await telegrambot.sendMsgTelegram(idapp, req.user.username,
testostaff);
// await telegrambot.sendMsgTelegram(idapp, req.user.username, myplacca);
} else {
tools.writeManagersLog(mymsg);
}
const msgsost = '[NAVE ' + navepersistente.riga + '.' +
navepersistente.col + '] Sostituito ' +
myuservecchio.username + ' (' + myuservecchio.name + ' ' +
myuservecchio.surname + ') ' + ' con -> ' +
myusernuovo.username + ' (' + myusernuovo.name + ' ' +
myusernuovo.surname + '' +
') [Posiz. ' + nave.riga + '.' + nave.col + ' ind_order=' +
nave.ind_order + '] ' + ' [da ' + dachi + ']';
tools.writeSostituzioniLog(msgsost);
tools.writeFlottaLog(idapp, msgsost, mydatamsg.flotta.riga,
mydatamsg.flotta.col_prima);
await telegrambot.sendMsgTelegramToTheManagers(idapp, msgsost,
false);
// const nomecognomeprima = myuser.name + ' ' + myuser.surname + '(' + myuser.username + ')';
// const nomecognomenuovo = await User.getNameSurnameByUsername(idapp,);
res.send({code: server_constants.RIS_CODE_OK, msg: ''});
}
}).catch((e) => {
tools.mylogserr('Error patch USER: ', e.message);
res.status(400).send();
});
}
}
} else if (mydata.myfunc ===
shared_consts.CallFunz.AGGIUNGI_NUOVO_IMBARCO) {
// Ottieni il prossimo Numero di Tessitura
//let num_tess = await Nave.getNextNumTess(idapp, ind_order);
// const num_tess = 1;
/*
let listaingr = await ListaIngresso.find({ idapp, ind_order }).sort({ num_tess: 1 });
const trovato = listaingr.find((rec) => rec.num_tess === num_tess);
if (trovato) {
num_tess = listaingr.slice(-1)[0].num_tess + 2;
}
*/
// metti l'invitante inizialmente a Te stesso !
const invitante_username = req.body.data.invitante_username;
await ListaIngresso.addUserInListaIngresso(idapp, username,
invitante_username, myuser.lang, true, true);
let arrimbarchi = await ListaIngresso.findAllByUsername(idapp, username);
return res.send({code: server_constants.RIS_CODE_OK, arrimbarchi});
} else if (mydata.myfunc === shared_consts.CallFunz.CANCELLA_IMBARCO) {
const myrec = await ListaIngresso.getIngrEUserByFilter(idapp,
{idapp, _id: ObjectID(mydata.data.id)});
if (!!myrec) {
await ListaIngresso.find({_id: mydata.data.id});
const risdel = await ListaIngresso.eliminaListaIngresso(idapp,
mydata.ind_order, req, mydata.data.num_tess);
if (risdel) {
return res.send({code: server_constants.RIS_CODE_OK, msg: ''});
}
}
} else if (mydata.myfunc === shared_consts.CallFunz.ZOOM_GIA_PARTECIPATO) {
if (mydata.myfunc === shared_consts.CallFunz.ZOOM_GIA_PARTECIPATO) {
if (!!myuser.username) {
let FormDaMostrare = telegrambot.getFormDaMostrare(idapp, mydata.myfunc,
@@ -1152,7 +900,8 @@ router.delete('/delrec/:table/:id', authenticate, async (req, res) => {
let cancellato = false;
// tools.NotifyIfDelRecord(tablename);
//++Tools: Notify...
tools.NotifyIfDelRecord(tablename);
if (!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm)) {
if (tablename === 'users') {
@@ -1276,7 +1025,8 @@ function load(req, res, version) {
let gestoredelSito = '0';
if (!!req.user) {
gestoredelSito = (User.isAdmin(req.user.perm) || User.isManager(req.user.perm) ||
gestoredelSito = (User.isAdmin(req.user.perm) ||
User.isManager(req.user.perm) ||
User.isEditor(req.user.perm)) ? '1' : '0';
}
@@ -1284,7 +1034,6 @@ function load(req, res, version) {
// tools.mylog('loadsite : ', req.params);
let bookedevent = [];
// let msgs = [];
@@ -1295,7 +1044,8 @@ function load(req, res, version) {
if (userId !== '0') {
// LOGGED WITH USERID
bookedevent = Booking.findAllByUserIdAndIdApp(userId, idapp, gestoredelSito);
bookedevent = Booking.findAllByUserIdAndIdApp(userId, idapp,
gestoredelSito);
}
// Extract all the todos of the userId only
@@ -1357,7 +1107,7 @@ function load(req, res, version) {
orderscart = OrdersCart.getOrdersCartByUserId(req.user.id, idapp, 0);
}
}
let askedfriends = []
let askedfriends = [];
let myuserextra = null;
if (req.user) {
// askedfriends = User.getAskedFriendsByUsername(idapp, req.user.username);
@@ -1506,7 +1256,6 @@ router.get(process.env.LINK_CHECK_UPDATES, authenticate, async (req, res) => {
if (User.isAdmin(req.user.perm) || User.isEditor(req.user.perm) ||
User.isManager(req.user.perm)) {
// Send UsersList
usersList = User.getUsersList(req.user.idapp);
// usersList = null;
@@ -1621,7 +1370,8 @@ function uploadFile(req, res, version) {
form.on('file', async function(name, file) {
try {
console.log('Uploaded ' + file.name);
const mydir = tools.getdirByIdApp(idapp) + dirmain + server_constants.DIR_UPLOAD + '/' + dir;
const mydir = tools.getdirByIdApp(idapp) + dirmain +
server_constants.DIR_UPLOAD + '/' + dir;
// Create Dir if doesn't exist:
tools.mkdirpath(mydir);
@@ -1634,7 +1384,7 @@ function uploadFile(req, res, version) {
// filename = uuidv4() + ext;
//}
file.name = filename
file.name = filename;
let newname = mydir + '/' + file.name;
let resized_img = mydir + '/' + server_constants.PREFIX_IMG + filename;
@@ -1643,7 +1393,7 @@ function uploadFile(req, res, version) {
// For local: ... resolve this... sending through the static folder...
// res.sendFile(path.resolve(filename));
oldpath = file.path
oldpath = file.path;
file.path = newname;
// Move in the folder application !
@@ -1675,13 +1425,13 @@ function uploadFile(req, res, version) {
const ris = await resizer(newname, setup_image_compress);
if (ris) {
tools.delete(newname, false, () => {})
tools.delete(newname, false, () => {});
tools.move(resized_img, newname, (err) => {
})
});
}
}catch (e) {
} catch (e) {
console.error('newname', e);
}