|
|
|
|
@@ -220,8 +220,9 @@ router.post('/testServer', authenticate_noerror, (req, res) => {
|
|
|
|
|
let ris = {test};
|
|
|
|
|
|
|
|
|
|
if (req.user) {
|
|
|
|
|
tools.sendNotificationToUser(req.user._id, 'Test Server', 'Test Server OK',
|
|
|
|
|
'/', '', 'server', [])
|
|
|
|
|
tools.sendNotificationToUser(req.user._id, 'Test Server',
|
|
|
|
|
'Test Server OK',
|
|
|
|
|
'/', '', 'server', []);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return res.send(ris);
|
|
|
|
|
@@ -406,7 +407,7 @@ router.post('/setsubrec', authenticate, (req, res) => {
|
|
|
|
|
|
|
|
|
|
router.post('/gettable', authenticate, (req, res) => {
|
|
|
|
|
const params = req.body;
|
|
|
|
|
let idapp = req.user.idapp
|
|
|
|
|
let idapp = req.user.idapp;
|
|
|
|
|
const mytable = globalTables.getTableByTableName(params.table);
|
|
|
|
|
// console.log('mytable', mytable);
|
|
|
|
|
if (!mytable) {
|
|
|
|
|
@@ -423,8 +424,9 @@ router.post('/gettable', authenticate, (req, res) => {
|
|
|
|
|
console.error('gettable: ' + e.message);
|
|
|
|
|
res.status(400).send(e);
|
|
|
|
|
});
|
|
|
|
|
}catch (e) {
|
|
|
|
|
console.error(`ERROR gettable ${params.table}: `, e.message, 'params', params);
|
|
|
|
|
} catch (e) {
|
|
|
|
|
console.error(`ERROR gettable ${params.table}: `, e.message, 'params',
|
|
|
|
|
params);
|
|
|
|
|
res.status(500).send(e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -432,7 +434,7 @@ router.post('/gettable', authenticate, (req, res) => {
|
|
|
|
|
|
|
|
|
|
router.post('/pickup', authenticate, (req, res) => {
|
|
|
|
|
const params = req.body;
|
|
|
|
|
let idapp = req.user.idapp
|
|
|
|
|
let idapp = req.user.idapp;
|
|
|
|
|
let mytable = globalTables.getTableByTableName(params.table);
|
|
|
|
|
// console.log('mytable', mytable);
|
|
|
|
|
if (!mytable) {
|
|
|
|
|
@@ -496,188 +498,203 @@ router.patch('/chval', authenticate, async (req, res) => {
|
|
|
|
|
const idapp = req.user.idapp;
|
|
|
|
|
const mydata = req.body.data;
|
|
|
|
|
|
|
|
|
|
const mytable = globalTables.getTableByTableName(mydata.table);
|
|
|
|
|
const fieldsvalue = mydata.fieldsvalue;
|
|
|
|
|
const unset = mydata.unset;
|
|
|
|
|
try {
|
|
|
|
|
const mytable = globalTables.getTableByTableName(mydata.table);
|
|
|
|
|
const fieldsvalue = mydata.fieldsvalue;
|
|
|
|
|
const unset = mydata.unset;
|
|
|
|
|
|
|
|
|
|
// tools.mylogshow('PATCH CHVAL: ', id, fieldsvalue);
|
|
|
|
|
// tools.mylogshow('PATCH CHVAL: ', id, fieldsvalue);
|
|
|
|
|
|
|
|
|
|
// If I change my record...
|
|
|
|
|
if ((!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm) &&
|
|
|
|
|
!User.isEditor(req.user.perm) && !User.isTutor(req.user.perm)) &&
|
|
|
|
|
(req.user._id.toString() !== id) &&
|
|
|
|
|
!tools.ModificheConsentite(mydata.table, fieldsvalue)) {
|
|
|
|
|
// If without permissions, exit
|
|
|
|
|
return res.status(404).
|
|
|
|
|
send({code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: ''});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const camporequisiti = UserCost.FIELDS_REQUISITI.includes(
|
|
|
|
|
Object.keys(fieldsvalue)[0]);
|
|
|
|
|
|
|
|
|
|
let allData = {};
|
|
|
|
|
if (mydata.table === 'users') {
|
|
|
|
|
if (camporequisiti) {
|
|
|
|
|
allData = {};
|
|
|
|
|
allData.myuser = await User.getUserById(idapp, id);
|
|
|
|
|
if (!!allData.myuser)
|
|
|
|
|
allData.precDataUser = await User.getInfoUser(idapp,
|
|
|
|
|
allData.myuser.username);
|
|
|
|
|
else
|
|
|
|
|
allData.precDataUser = null;
|
|
|
|
|
// allData.useraportador = await ListaIngresso.getUserByInvitante_Username(idapp, allData.myuser.aportador_solidario);
|
|
|
|
|
// allData.precDataAportador = await getInfoUser(idapp, allData.myuser.aportador_solidario);
|
|
|
|
|
// If I change my record...
|
|
|
|
|
if ((!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm) &&
|
|
|
|
|
!User.isEditor(req.user.perm) && !User.isTutor(req.user.perm)) &&
|
|
|
|
|
(req.user._id.toString() !== id) &&
|
|
|
|
|
!tools.ModificheConsentite(mydata.table, fieldsvalue)) {
|
|
|
|
|
// If without permissions, exit
|
|
|
|
|
return res.status(404).
|
|
|
|
|
send({code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: ''});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let index = 0;
|
|
|
|
|
const camporequisiti = UserCost.FIELDS_REQUISITI.includes(
|
|
|
|
|
Object.keys(fieldsvalue)[0]);
|
|
|
|
|
|
|
|
|
|
let recoldnave = null;
|
|
|
|
|
|
|
|
|
|
let myuser = null;
|
|
|
|
|
let mydatamsg = {};
|
|
|
|
|
|
|
|
|
|
let flotta = null;
|
|
|
|
|
let strflotta = '';
|
|
|
|
|
|
|
|
|
|
if (shared_consts.TABLES_UPDATE_LASTMODIFIED.includes(mydata.table)) {
|
|
|
|
|
fieldsvalue.date_updated = new Date();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const numobj = tools.getNumObj(fieldsvalue);
|
|
|
|
|
if (numobj === 1 && fieldsvalue['_id']) {
|
|
|
|
|
const myrec = await mytable.findById(id);
|
|
|
|
|
const myidDel = myrec['_id'];
|
|
|
|
|
myrec['_id'] = fieldsvalue['_id'];
|
|
|
|
|
return await mytable.insertMany(myrec).then((ris) => {
|
|
|
|
|
if (ris) {
|
|
|
|
|
return mytable.deleteMany({_id: myidDel}).then((risdel) => {
|
|
|
|
|
return res.send({code: server_constants.RIS_CODE_OK, msg: ''});
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
return res.status(404).send();
|
|
|
|
|
let allData = {};
|
|
|
|
|
if (mydata.table === 'users') {
|
|
|
|
|
if (camporequisiti) {
|
|
|
|
|
allData = {};
|
|
|
|
|
allData.myuser = await User.getUserById(idapp, id);
|
|
|
|
|
if (!!allData.myuser)
|
|
|
|
|
allData.precDataUser = await User.getInfoUser(idapp,
|
|
|
|
|
allData.myuser.username);
|
|
|
|
|
else
|
|
|
|
|
allData.precDataUser = null;
|
|
|
|
|
// allData.useraportador = await ListaIngresso.getUserByInvitante_Username(idapp, allData.myuser.aportador_solidario);
|
|
|
|
|
// allData.precDataAportador = await getInfoUser(idapp, allData.myuser.aportador_solidario);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tools.refreshAllTablesInMem(idapp, mydata.table);
|
|
|
|
|
|
|
|
|
|
if (mydata.table === shared_consts.TAB_SETTINGS) {
|
|
|
|
|
if (shared_consts.KEY_TO_CRYPTED.includes(fieldsvalue.key)) {
|
|
|
|
|
fieldsvalue.crypted = true;
|
|
|
|
|
fieldsvalue.value_str = tools.cryptdata(fieldsvalue.value_str);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
let index = 0;
|
|
|
|
|
|
|
|
|
|
let recoldnave = null;
|
|
|
|
|
|
|
|
|
|
await mytable.findByIdAndUpdate(id, {$set: fieldsvalue}).then(async (rec) => {
|
|
|
|
|
// tools.mylogshow(' REC TO MODIFY: ', rec);
|
|
|
|
|
if (!rec) {
|
|
|
|
|
return res.status(404).send();
|
|
|
|
|
} else {
|
|
|
|
|
let addmsg = '';
|
|
|
|
|
let myuser = null;
|
|
|
|
|
let mydatamsg = {};
|
|
|
|
|
|
|
|
|
|
if (mydata.notifBot) {
|
|
|
|
|
// Send Notification to the BOT
|
|
|
|
|
await telegrambot.sendMsgTelegram(idapp, mydata.notifBot.un,
|
|
|
|
|
mydata.notifBot.txt);
|
|
|
|
|
if (!!addmsg)
|
|
|
|
|
await telegrambot.sendMsgTelegram(idapp, mydata.notifBot.un, addmsg);
|
|
|
|
|
let addtext = '[Msg Inviato a ' + mydata.notifBot.un + ']:' + '\n' +
|
|
|
|
|
mydata.notifBot.txt;
|
|
|
|
|
telegrambot.sendMsgTelegramToTheManagers(idapp, addtext, true);
|
|
|
|
|
let flotta = null;
|
|
|
|
|
let strflotta = '';
|
|
|
|
|
|
|
|
|
|
if (!!flotta)
|
|
|
|
|
tools.writeFlottaLog(idapp, addtext, flotta.riga, flotta.col_prima);
|
|
|
|
|
}
|
|
|
|
|
if (shared_consts.TABLES_UPDATE_LASTMODIFIED.includes(mydata.table)) {
|
|
|
|
|
fieldsvalue.date_updated = new Date();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (mydata.table === 'users') {
|
|
|
|
|
if (camporequisiti) {
|
|
|
|
|
await User.checkIfSbloccatiRequisiti(idapp, allData, id);
|
|
|
|
|
const numobj = tools.getNumObj(fieldsvalue);
|
|
|
|
|
if (numobj === 1 && fieldsvalue['_id']) {
|
|
|
|
|
const myrec = await mytable.findById(id);
|
|
|
|
|
const myidDel = myrec['_id'];
|
|
|
|
|
myrec['_id'] = fieldsvalue['_id'];
|
|
|
|
|
return await mytable.insertMany(myrec).then((ris) => {
|
|
|
|
|
if (ris) {
|
|
|
|
|
return mytable.deleteMany({_id: myidDel}).then((risdel) => {
|
|
|
|
|
return res.send({code: server_constants.RIS_CODE_OK, msg: ''});
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
return res.status(404).send();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ('aportador_solidario' in fieldsvalue) {
|
|
|
|
|
let ind_order_ingr = mydata.ind_order_ingr;
|
|
|
|
|
// SERVE SE CI METTO LE MINUSCOLE/MAIUSCOLE SBAGLIATE in invitante_username!
|
|
|
|
|
const myuserfound = await User.findByUsername(idapp,
|
|
|
|
|
fieldsvalue.aportador_solidario, false);
|
|
|
|
|
if (!!myuserfound) {
|
|
|
|
|
if (!!myuserfound._id && !myuserfound.deleted) {
|
|
|
|
|
const aportador = await User.getUsernameById(idapp,
|
|
|
|
|
myuserfound._id);
|
|
|
|
|
fieldsvalue.aportador_solidario = aportador;
|
|
|
|
|
//Aggiorna record !
|
|
|
|
|
await mytable.findByIdAndUpdate(id, {$set: fieldsvalue});
|
|
|
|
|
tools.refreshAllTablesInMem(idapp, mydata.table);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (mydata.table === shared_consts.TAB_SETTINGS) {
|
|
|
|
|
if (shared_consts.KEY_TO_CRYPTED.includes(fieldsvalue.key)) {
|
|
|
|
|
fieldsvalue.crypted = true;
|
|
|
|
|
fieldsvalue.value_str = tools.cryptdata(fieldsvalue.value_str);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await mytable.findByIdAndUpdate(id, {$set: fieldsvalue}).
|
|
|
|
|
then(async (rec) => {
|
|
|
|
|
// tools.mylogshow(' REC TO MODIFY: ', rec);
|
|
|
|
|
if (!rec) {
|
|
|
|
|
return res.status(404).send();
|
|
|
|
|
} else {
|
|
|
|
|
res.send(
|
|
|
|
|
{code: server_constants.RIS_CODE_ERR, msg: 'Non aggiornato'});
|
|
|
|
|
res.status(400).send();
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
} else if ('deleted' in fieldsvalue) {
|
|
|
|
|
let msg = '';
|
|
|
|
|
if (fieldsvalue.deleted)
|
|
|
|
|
msg = 'cancellato (nascosto)';
|
|
|
|
|
else
|
|
|
|
|
msg = 'Ripristinato';
|
|
|
|
|
let addmsg = '';
|
|
|
|
|
|
|
|
|
|
await telegrambot.sendMsgTelegramToTheManagers(idapp,
|
|
|
|
|
`L\'utente ` + tools.getNomeCognomeEUserNameByUser(rec) +
|
|
|
|
|
` è stato ${msg} da ` +
|
|
|
|
|
tools.getNomeCognomeEUserNameByUser(req.user));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (mydata.notifBot) {
|
|
|
|
|
// Send Notification to the BOT
|
|
|
|
|
await telegrambot.sendMsgTelegram(idapp, mydata.notifBot.un,
|
|
|
|
|
mydata.notifBot.txt);
|
|
|
|
|
if (!!addmsg)
|
|
|
|
|
await telegrambot.sendMsgTelegram(idapp, mydata.notifBot.un,
|
|
|
|
|
addmsg);
|
|
|
|
|
let addtext = '[Msg Inviato a ' + mydata.notifBot.un + ']:' +
|
|
|
|
|
'\n' +
|
|
|
|
|
mydata.notifBot.txt;
|
|
|
|
|
telegrambot.sendMsgTelegramToTheManagers(idapp, addtext, true);
|
|
|
|
|
|
|
|
|
|
if (tools.ModificheConsentite(mydata.table, fieldsvalue)) {
|
|
|
|
|
let msg = '';
|
|
|
|
|
if (mydata.table === 'users') {
|
|
|
|
|
if ('aportador_solidario' in fieldsvalue) {
|
|
|
|
|
const nomecognomenuovo = await User.getNameSurnameByUsername(idapp,
|
|
|
|
|
fieldsvalue.aportador_solidario);
|
|
|
|
|
const nomecognomeas = await User.getNameSurnameByUsername(idapp,
|
|
|
|
|
rec.aportador_solidario);
|
|
|
|
|
msg = `Variato l'invitante di ` +
|
|
|
|
|
tools.getNomeCognomeEUserNameByUser(rec) +
|
|
|
|
|
'\nmodificato da ' +
|
|
|
|
|
tools.getNomeCognomeEUserNameByUser(req.user) +
|
|
|
|
|
' \n' +
|
|
|
|
|
'Prima: ' + nomecognomeas + ' (' + rec.aportador_solidario +
|
|
|
|
|
')\n' +
|
|
|
|
|
'Dopo: ' + nomecognomenuovo + ' (' +
|
|
|
|
|
fieldsvalue.aportador_solidario + ') ]';
|
|
|
|
|
|
|
|
|
|
// Metti l'iniziale
|
|
|
|
|
if (!await User.AportadorOrig(id)) {
|
|
|
|
|
await mytable.findByIdAndUpdate(id,
|
|
|
|
|
{$set: {aportador_iniziale: fieldsvalue.aportador_solidario}},
|
|
|
|
|
{new: false});
|
|
|
|
|
if (!!flotta)
|
|
|
|
|
tools.writeFlottaLog(idapp, addtext, flotta.riga,
|
|
|
|
|
flotta.col_prima);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (mydata.table === 'users') {
|
|
|
|
|
if (camporequisiti) {
|
|
|
|
|
await User.checkIfSbloccatiRequisiti(idapp, allData, id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ('aportador_solidario' in fieldsvalue) {
|
|
|
|
|
let ind_order_ingr = mydata.ind_order_ingr;
|
|
|
|
|
// SERVE SE CI METTO LE MINUSCOLE/MAIUSCOLE SBAGLIATE in invitante_username!
|
|
|
|
|
const myuserfound = await User.findByUsername(idapp,
|
|
|
|
|
fieldsvalue.aportador_solidario, false);
|
|
|
|
|
if (!!myuserfound) {
|
|
|
|
|
if (!!myuserfound._id && !myuserfound.deleted) {
|
|
|
|
|
const aportador = await User.getUsernameById(idapp,
|
|
|
|
|
myuserfound._id);
|
|
|
|
|
fieldsvalue.aportador_solidario = aportador;
|
|
|
|
|
//Aggiorna record !
|
|
|
|
|
await mytable.findByIdAndUpdate(id, {$set: fieldsvalue});
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
res.send(
|
|
|
|
|
{
|
|
|
|
|
code: server_constants.RIS_CODE_ERR,
|
|
|
|
|
msg: 'Non aggiornato',
|
|
|
|
|
});
|
|
|
|
|
res.status(400).send();
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
} else if ('deleted' in fieldsvalue) {
|
|
|
|
|
let msg = '';
|
|
|
|
|
if (fieldsvalue.deleted)
|
|
|
|
|
msg = 'cancellato (nascosto)';
|
|
|
|
|
else
|
|
|
|
|
msg = 'Ripristinato';
|
|
|
|
|
|
|
|
|
|
await telegrambot.sendMsgTelegramToTheManagers(idapp,
|
|
|
|
|
`L\'utente ` + tools.getNomeCognomeEUserNameByUser(rec) +
|
|
|
|
|
` è stato ${msg} da ` +
|
|
|
|
|
tools.getNomeCognomeEUserNameByUser(req.user));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (tools.ModificheConsentite(mydata.table, fieldsvalue)) {
|
|
|
|
|
let msg = '';
|
|
|
|
|
if (mydata.table === 'users') {
|
|
|
|
|
if ('aportador_solidario' in fieldsvalue) {
|
|
|
|
|
const nomecognomenuovo = await User.getNameSurnameByUsername(
|
|
|
|
|
idapp,
|
|
|
|
|
fieldsvalue.aportador_solidario);
|
|
|
|
|
const nomecognomeas = await User.getNameSurnameByUsername(
|
|
|
|
|
idapp,
|
|
|
|
|
rec.aportador_solidario);
|
|
|
|
|
msg = `Variato l'invitante di ` +
|
|
|
|
|
tools.getNomeCognomeEUserNameByUser(rec) +
|
|
|
|
|
'\nmodificato da ' +
|
|
|
|
|
tools.getNomeCognomeEUserNameByUser(req.user) +
|
|
|
|
|
' \n' +
|
|
|
|
|
'Prima: ' + nomecognomeas + ' (' +
|
|
|
|
|
rec.aportador_solidario +
|
|
|
|
|
')\n' +
|
|
|
|
|
'Dopo: ' + nomecognomenuovo + ' (' +
|
|
|
|
|
fieldsvalue.aportador_solidario + ') ]';
|
|
|
|
|
|
|
|
|
|
// Metti l'iniziale
|
|
|
|
|
if (!await User.AportadorOrig(id)) {
|
|
|
|
|
await mytable.findByIdAndUpdate(id,
|
|
|
|
|
{$set: {aportador_iniziale: fieldsvalue.aportador_solidario}},
|
|
|
|
|
{new: false});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (msg !== '')
|
|
|
|
|
telegrambot.sendMsgTelegramToTheManagers(idapp, msg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
res.send({code: server_constants.RIS_CODE_OK, msg: ''});
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (msg !== '')
|
|
|
|
|
telegrambot.sendMsgTelegramToTheManagers(idapp, msg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
res.send({code: server_constants.RIS_CODE_OK, msg: ''});
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}).catch((e) => {
|
|
|
|
|
tools.mylogserr('Error patch USER: ', e.message);
|
|
|
|
|
}).
|
|
|
|
|
catch((e) => {
|
|
|
|
|
tools.mylogserr('Error patch USER: ', e.message);
|
|
|
|
|
res.status(400).send();
|
|
|
|
|
});
|
|
|
|
|
} catch (e) {
|
|
|
|
|
tools.mylogserr('Error chval: ', e.message);
|
|
|
|
|
res.status(400).send();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|