diff --git a/src/server/populate/catgrps.js b/src/server/populate/catgrps.js index aecb443..7d76ac3 100644 --- a/src/server/populate/catgrps.js +++ b/src/server/populate/catgrps.js @@ -22,7 +22,7 @@ module.exports = { }, { _id: 6, - descr: 'Benessere e Salute', + descr: 'Benessere', }, { _id: 7, @@ -58,7 +58,7 @@ module.exports = { }, { _id: 14, - descr: 'Ecovillaggi', + descr: 'Ecovillaggi / Comunità', }, { _id: 15, @@ -68,5 +68,13 @@ module.exports = { _id: 16, descr: 'Altro', }, + { + _id: 17, + descr: 'AutoProduzione', + }, + { + _id: 18, + descr: 'Salute', + }, ], }; diff --git a/src/server/populate/skills.js b/src/server/populate/skills.js index 90a7bfa..ec97604 100644 --- a/src/server/populate/skills.js +++ b/src/server/populate/skills.js @@ -107,5 +107,8 @@ module.exports = { {_id: 105, idSector: [12], descr: 'OSS'}, {_id: 106, idSector: [10], descr: 'Badante'}, {_id: 107, idSector: [6], descr: 'Massaggi'}, + {_id: 108, idSector: [10], descr: 'Affrancamento'}, + {_id: 109, idSector: [10], descr: 'Supporto'}, + {_id: 110, idSector: [10], descr: 'Consulenza'}, ], }; diff --git a/src/server/router/index_router.js b/src/server/router/index_router.js index 9522fe5..832f420 100755 --- a/src/server/router/index_router.js +++ b/src/server/router/index_router.js @@ -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(); - }); + } }); diff --git a/src/server/router/users_router.js b/src/server/router/users_router.js index 654b3ce..6b7d5c3 100755 --- a/src/server/router/users_router.js +++ b/src/server/router/users_router.js @@ -939,6 +939,7 @@ async function eseguiDbOp(idapp, mydata, locale) { const {AdType} = require('../models/adtype'); const {AdTypeGood} = require('../models/adtypegood'); const {StatusSkill} = require('../models/statusSkill'); + const {CatGrp} = require('../models/catgrp'); await Sector.deleteMany({}); await SectorGood.deleteMany({}); @@ -949,6 +950,7 @@ async function eseguiDbOp(idapp, mydata, locale) { await AdType.deleteMany({}); await AdTypeGood.deleteMany({}); await StatusSkill.deleteMany({}); + await CatGrp.deleteMany({}); ris = await populate.popolaTabelleNuove();