diff --git a/src/server/router/index_router.js b/src/server/router/index_router.js index 6d6077f..3c9185a 100755 --- a/src/server/router/index_router.js +++ b/src/server/router/index_router.js @@ -1,7 +1,7 @@ const express = require('express'); const router = express.Router(), - fs = require('fs'), - path = require('path'); + fs = require('fs'), + path = require('path'); const jwt = require('jsonwebtoken'); @@ -9,54 +9,55 @@ const telegrambot = require('../telegram/telegrambot'); const sendemail = require('../sendemail'); -const { authenticate, authenticate_noerror } = require('../middleware/authenticate'); +const {authenticate, authenticate_noerror} = require( + '../middleware/authenticate'); -const { ObjectID } = require('mongodb'); -const { ListaIngresso } = require('../models/listaingresso'); -const { Graduatoria } = require('../models/graduatoria'); +const {ObjectID} = require('mongodb'); +const {ListaIngresso} = require('../models/listaingresso'); +const {Graduatoria} = require('../models/graduatoria'); -const mongoose = require('mongoose').set('debug', false) +const mongoose = require('mongoose').set('debug', false); const cfgserver = mongoose.model('cfgserver'); const ftp = require('../ftp/FTPClient'), - formidable = require('formidable'), - folder = path.join(__dirname, 'upload'); + formidable = require('formidable'), + folder = path.join(__dirname, 'upload'); if (!fs.existsSync(folder)) { - fs.mkdirSync(folder) + fs.mkdirSync(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 {User} = require('../models/user'); +const {Nave} = require('../models/nave'); +const {Flotta} = require('../models/flotta'); +const {NavePersistente} = require('../models/navepersistente'); // const { ExtraList } = require('../models/extralist'); -const { Booking } = require('../models/booking'); -const { Operator } = require('../models/operator'); -const { Where } = require('../models/where'); -const { MyEvent } = require('../models/myevent'); -const { Contribtype } = require('../models/contribtype'); -const { PaymentType } = require('../models/paymenttype'); -const { Discipline } = require('../models/discipline'); -const { Skill } = require('../models/skill'); -const { MySkill } = require('../models/myskill'); -const { StatusSkill } = require('../models/statusSkill'); -const { City } = require('../models/city'); -const { Sector } = require('../models/sector'); -const { Level } = require('../models/level'); -const { Newstosent } = require('../models/newstosent'); -const { MyPage } = require('../models/mypage'); -const { CalZoom } = require('../models/calzoom'); -const { Gallery } = require('../models/gallery'); -const { TemplEmail } = require('../models/templemail'); -const { OpzEmail } = require('../models/opzemail'); -const { MailingList } = require('../models/mailinglist'); -const { Settings } = require('../models/settings'); -const { SendMsg } = require('../models/sendmsg'); -const { Permission } = require('../models/permission'); -const { MsgTemplate } = require('../models/msg_template'); +const {Booking} = require('../models/booking'); +const {Operator} = require('../models/operator'); +const {Where} = require('../models/where'); +const {MyEvent} = require('../models/myevent'); +const {Contribtype} = require('../models/contribtype'); +const {PaymentType} = require('../models/paymenttype'); +const {Discipline} = require('../models/discipline'); +const {Skill} = require('../models/skill'); +const {MySkill} = require('../models/myskill'); +const {StatusSkill} = require('../models/statusSkill'); +const {City} = require('../models/city'); +const {Sector} = require('../models/sector'); +const {Level} = require('../models/level'); +const {Newstosent} = require('../models/newstosent'); +const {MyPage} = require('../models/mypage'); +const {CalZoom} = require('../models/calzoom'); +const {Gallery} = require('../models/gallery'); +const {TemplEmail} = require('../models/templemail'); +const {OpzEmail} = require('../models/opzemail'); +const {MailingList} = require('../models/mailinglist'); +const {Settings} = require('../models/settings'); +const {SendMsg} = require('../models/sendmsg'); +const {Permission} = require('../models/permission'); +const {MsgTemplate} = require('../models/msg_template'); const Product = require('../models/product'); const Producer = require('../models/producer'); const Cart = require('../models/cart'); @@ -67,7 +68,7 @@ const ShareWithUs = require('../models/sharewithus'); const Site = require('../models/site'); const IscrittiConacreis = require('../models/iscrittiConacreis'); const Group = require('../models/group'); -const { Todo } = require('../models/todo'); +const {Todo} = require('../models/todo'); const Hours = require('../models/hours'); const Order = require('../models/order'); const Cash = require('../models/cash'); @@ -82,7 +83,8 @@ const actions = require('./api/actions'); const shared_consts = require('../tools/shared_nodejs'); const UserCost = { - FIELDS_REQUISITI: ['verified_email', + FIELDS_REQUISITI: [ + 'verified_email', 'profile.teleg_id', 'profile.saw_and_accepted', 'profile.revolut', @@ -90,7 +92,7 @@ const UserCost = { 'profile.advcash_id', 'profile.link_payment', 'profile.email_paypal', - 'profile.paymenttypes'] + 'profile.paymenttypes'], }; router.post(process.env.LINKVERIF_REG, (req, res) => { @@ -110,7 +112,7 @@ router.post(process.env.LINKVERIF_REG, (req, res) => { if (user.verified_email) { res.send({ code: server_constants.RIS_CODE_EMAIL_ALREADY_VERIFIED, - msg: tools.getres__("L'Email è già stata Verificata", res) + msg: tools.getres__('L\'Email è già stata Verificata', res), }); } else { user.verified_email = true; @@ -119,7 +121,8 @@ router.post(process.env.LINKVERIF_REG, (req, res) => { //console.log("TROVATOOOOOO!"); res.send({ code: server_constants.RIS_CODE_EMAIL_VERIFIED, - msg: tools.getres__('EMAIL', res) + ' ' + tools.getres__('VERIF', res) + msg: tools.getres__('EMAIL', res) + ' ' + + tools.getres__('VERIF', res), }); }); } @@ -131,37 +134,40 @@ router.post(process.env.LINKVERIF_REG, (req, res) => { }); - // Faccio richiesta di una Nuova Password router.post(process.env.LINK_REQUEST_NEWPASSWORD, (req, res) => { const body = _.pick(req.body, ['idapp', 'email']); const idapp = body.idapp; const email = body.email.toLowerCase().trim(); - console.log("POST " + process.env.LINK_REQUEST_NEWPASSWORD + " idapp= " + idapp + " email = " + email); + console.log( + 'POST ' + process.env.LINK_REQUEST_NEWPASSWORD + ' idapp= ' + idapp + + ' email = ' + email); User.findByEmail(idapp, email).then(async (user) => { if (!user) { await tools.snooze(5000); - return res.status(200).send({ code: server_constants.RIS_CODE_EMAIL_NOT_EXIST, msg: '' }); + return res.status(200). + send({code: server_constants.RIS_CODE_EMAIL_NOT_EXIST, msg: ''}); } else { // Creo il tokenforgot - user.tokenforgot = jwt.sign(user._id.toHexString(), process.env.SIGNCODE).toString(); + user.tokenforgot = jwt.sign(user._id.toHexString(), process.env.SIGNCODE). + toString(); user.date_tokenforgot = new Date(); user.lasttimeonline = new Date(); user.save().then(async () => { - await sendemail.sendEmail_RequestNewPassword(res.locale, user, user.email, user.idapp, user.tokenforgot); - res.send({ code: server_constants.RIS_CODE_OK, msg: '' }); + await sendemail.sendEmail_RequestNewPassword(res.locale, user, + user.email, user.idapp, user.tokenforgot); + res.send({code: server_constants.RIS_CODE_OK, msg: ''}); }); } }).catch((e) => { console.log(e.message); res.status(400).send(); - res.send({ code: server_constants.RIS_CODE_ERR, msg: e }); + res.send({code: server_constants.RIS_CODE_ERR, msg: e}); }); }); - // Invio la Nuova Password richiesta dal reset! // Ritorna il token per poter effettuare le chiamate... router.post(process.env.LINK_UPDATE_PWD, (req, res) => { @@ -170,14 +176,15 @@ router.post(process.env.LINK_UPDATE_PWD, (req, res) => { const email = body.email.toLowerCase().trim(); const tokenforgot = body.tokenforgot; const password = body.password; - const msg = "Richiesta Nuova Password: idapp= " + idapp + " email = " + email; + const msg = 'Richiesta Nuova Password: idapp= ' + idapp + ' email = ' + email; console.log(msg); // telegrambot.sendMsgTelegramToTheManagers(body.idapp, msg); User.findByLinkTokenforgot(idapp, email, tokenforgot).then((user) => { if (!user) { - return res.send({ code: server_constants.RIS_CODE_TOKEN_RESETPASSWORD_NOT_FOUND }); + return res.send( + {code: server_constants.RIS_CODE_TOKEN_RESETPASSWORD_NOT_FOUND}); } else { // aggiorna la nuova password user.password = password; @@ -189,9 +196,10 @@ router.post(process.env.LINK_UPDATE_PWD, (req, res) => { // Salva lo User user.save().then(() => { - res.header('x-auth', token).send({ code: server_constants.RIS_CODE_OK }); // Ritorna il token di ritorno + res.header('x-auth', token). + send({code: server_constants.RIS_CODE_OK}); // Ritorna il token di ritorno }); - }) + }); } }).catch((e) => { console.log(e.message); @@ -207,7 +215,7 @@ function getTableByTableName(tablename) { mytable = User; else if (tablename === 'tessitura') mytable = Tessitura; - // else if (tablename === 'extralist') + // else if (tablename === 'extralist') // mytable = ExtraList; else if (tablename === 'bookings') mytable = Booking; @@ -300,7 +308,7 @@ function getTableByTableName(tablename) { else if (tablename === 'levels') mytable = Level; - return mytable + return mytable; } router.post('/settable', authenticate, (req, res) => { @@ -310,16 +318,15 @@ router.post('/settable', authenticate, (req, res) => { mydata.idapp = req.user.idapp; - if (shared_consts.TABLES_ID_NUMBER.includes(params.table)) { - if (mydata["_id"] === undefined) { + if (mydata['_id'] === undefined) { mydata._id = 1; } } else if (params.table === 'hours') { } else { - if (mydata["_id"] === undefined) { - mydata._id = new ObjectID() + if (mydata['_id'] === undefined) { + mydata._id = new ObjectID(); } } @@ -327,35 +334,35 @@ router.post('/settable', authenticate, (req, res) => { mydata.userId = req.user._id; } - - let mytablerec = new mytable(mydata); + let mytablerec = new mytable(mydata); // console.log('mytablerec', mytablerec); const mytablestrutt = getTableByTableName(params.table); - return mytablerec.save() - .then(rec => { - // tools.mylog('rec', rec); - return res.send(rec); + return mytablerec.save().then(rec => { + // tools.mylog('rec', rec); + return res.send(rec); - }).catch((e) => { - if (e.code === 11000) { - const id = mytablerec._id; - delete mytablerec._doc['_id']; - const myfields = mytablerec._doc; - if (!myfields.userId) { - myfields.userId = req.user._id.toString(); - } - return mytablestrutt.findByIdAndUpdate(id, { $set: myfields }).then(async (rec) => { - return res.send(rec); - }).catch((err) => { - tools.mylog('error: ', err.message); - return res.status(400).send(err); - }) - } else { - console.log(e.message); + }).catch((e) => { + if (e.code === 11000) { + const id = mytablerec._id; + delete mytablerec._doc['_id']; + const myfields = mytablerec._doc; + if (!myfields.userId) { + myfields.userId = req.user._id.toString(); } - }); + return mytablestrutt.findByIdAndUpdate(id, {$set: myfields}). + then(async (rec) => { + return res.send(rec); + }). + catch((err) => { + tools.mylog('error: ', err.message); + return res.status(400).send(err); + }); + } else { + console.log(e.message); + } + }); }); @@ -371,8 +378,7 @@ router.post('/setsubrec', authenticate, (req, res) => { const mytablestrutt = getTableByTableName(params.table); - const rec = mytablestrutt.createNewSubRecord(mydata.idapp, req) -.then(rec => { + const rec = mytablestrutt.createNewSubRecord(mydata.idapp, req).then(rec => { // tools.mylog('rec', rec); return res.send(rec); @@ -382,29 +388,30 @@ router.post('/setsubrec', authenticate, (req, res) => { return res.send(rec); - return mytablerec.save() - .then(rec => { - // tools.mylog('rec', rec); - return res.send(rec); + return mytablerec.save().then(rec => { + // tools.mylog('rec', rec); + return res.send(rec); - }).catch((e) => { - if (e.code === 11000) { - const id = mytablerec._id; - delete mytablerec._doc['_id']; - const myfields = mytablerec._doc; - if (!myfields.userId) { - myfields.userId = req.user._id.toString(); - } - return mytablestrutt.findByIdAndUpdate(id, { $set: myfields }).then(async (rec) => { - return res.send(rec); - }).catch((err) => { - tools.mylog('error: ', err.message); - return res.status(400).send(err); - }) - } else { - console.log(e.message); + }).catch((e) => { + if (e.code === 11000) { + const id = mytablerec._id; + delete mytablerec._doc['_id']; + const myfields = mytablerec._doc; + if (!myfields.userId) { + myfields.userId = req.user._id.toString(); } - }); + return mytablestrutt.findByIdAndUpdate(id, {$set: myfields}). + then(async (rec) => { + return res.send(rec); + }). + catch((err) => { + tools.mylog('error: ', err.message); + return res.status(400).send(err); + }); + } else { + console.log(e.message); + } + }); }); @@ -432,17 +439,15 @@ router.post('/getpage', async (req, res) => { const idapp = req.body.idapp; const mypath = params.path; - return MyPage.findOne({ idapp, path: mypath }) - .then((ris) => { - return res.send({ mypage: ris }); - }).catch((e) => { - console.log(e.message); - res.status(400).send(e); - }); + return MyPage.findOne({idapp, path: mypath}).then((ris) => { + return res.send({mypage: ris}); + }).catch((e) => { + console.log(e.message); + res.status(400).send(e); + }); }); - router.patch('/setlang', authenticate, async (req, res) => { const username = req.body.data.username; const idapp = req.body.idapp; @@ -451,17 +456,17 @@ router.patch('/setlang', authenticate, async (req, res) => { const lang = mydata.lang; const fieldsvalue = { - lang + lang, }; if (!!lang) { const rec = await User.findByUsername(idapp, username, false); let ris = null; if (!!rec) - ris = await User.findByIdAndUpdate(rec.id, { $set: fieldsvalue }); + ris = await User.findByIdAndUpdate(rec.id, {$set: fieldsvalue}); if (!!ris) { - return res.send({ code: server_constants.RIS_CODE_OK, msg: '' }); + return res.send({code: server_constants.RIS_CODE_OK, msg: ''}); } res.status(400).send(); @@ -469,7 +474,6 @@ router.patch('/setlang', authenticate, async (req, res) => { }); - router.patch('/chval', authenticate, async (req, res) => { // const idapp = req.body.idapp; const id = req.body.data.id; @@ -483,12 +487,17 @@ router.patch('/chval', authenticate, async (req, res) => { // 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 ((!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: '' }); + return res.status(404). + send({code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: ''}); } - const camporequisiti = UserCost.FIELDS_REQUISITI.includes(Object.keys(fieldsvalue)[0]); + const camporequisiti = UserCost.FIELDS_REQUISITI.includes( + Object.keys(fieldsvalue)[0]); let allData = {}; if (mydata.table === 'users') { @@ -496,7 +505,8 @@ router.patch('/chval', authenticate, async (req, res) => { allData = {}; allData.myuser = await User.getUserById(idapp, id); if (!!allData.myuser) - allData.precDataUser = await User.getInfoUser(idapp, allData.myuser.username); + allData.precDataUser = await User.getInfoUser(idapp, + allData.myuser.username); else allData.precDataUser = null; // allData.useraportador = await ListaIngresso.getUserByInvitante_Username(idapp, allData.myuser.aportador_solidario); @@ -516,21 +526,22 @@ router.patch('/chval', authenticate, async (req, res) => { if (mydata.table === 'navi') { if (!!id) { - recoldnave = await mytable.findOne({ _id: ObjectID(id) }); + recoldnave = await mytable.findOne({_id: ObjectID(id)}); let mypos = { idapp, riga: recoldnave.riga, col: recoldnave.col, - numup: 3 + numup: 3, }; tools.getRigaColByPosUp(mypos); mydatamsg = { - navemediatore: { riga: mypos.riga, col: mypos.col }, + navemediatore: {riga: mypos.riga, col: mypos.col}, }; if (!!fieldsvalue.riga) { - flotta = await Flotta.getFlottaByRigaColDonatore(idapp, fieldsvalue.riga, fieldsvalue.col); + flotta = await Flotta.getFlottaByRigaColDonatore(idapp, + fieldsvalue.riga, fieldsvalue.col); if (!!flotta) { strflotta = Flotta.getStrFlotta(flotta); } @@ -543,14 +554,13 @@ router.patch('/chval', authenticate, async (req, res) => { fieldsvalue.date_updated = new Date(); } - await mytable.findByIdAndUpdate(id, { $set: fieldsvalue }).then(async (rec) => { + 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 = ''; - if (mydata.table === 'navi' && ('made_gift' in fieldsvalue)) { if (fieldsvalue['made_gift'] && !rec.received_gift) { @@ -558,30 +568,35 @@ router.patch('/chval', authenticate, async (req, res) => { if (!!myuser) { mydatamsg.tipomsg = tools.TipoMsg.SEND_MSG_DONO_RICEVUTO_CORRETTAMENTE; - const rismsg = await telegrambot.getMsgByTipoMsg(mydatamsg, myuser.lang, myuser, false); + const rismsg = await telegrambot.getMsgByTipoMsg(mydatamsg, + myuser.lang, myuser, false); addmsg = rismsg.body; } } - await mytable.findByIdAndUpdate(id, { $set: { received_gift: true } }); + await mytable.findByIdAndUpdate(id, {$set: {received_gift: true}}); } if (!!unset) { - const risunset = await mytable.findByIdAndUpdate(id, { $unset: unset }); + const risunset = await mytable.findByIdAndUpdate(id, {$unset: unset}); if (!!risunset) { if ('date_made_gift' in unset) { - let addtext = strflotta + ` E' stato annullato l'invio del dono di ${myuser.name} ${myuser.surname} (${myuser.username}) da parte di ${req.user.name} ${req.user.surname} - [Posiz: ${fieldsvalue.riga}.${fieldsvalue.col}]`; + let addtext = strflotta + + ` E' stato annullato l'invio del dono di ${myuser.name} ${myuser.surname} (${myuser.username}) da parte di ${req.user.name} ${req.user.surname} - [Posiz: ${fieldsvalue.riga}.${fieldsvalue.col}]`; telegrambot.sendMsgTelegramToTheManagers(idapp, addtext, false); - tools.writeFlottaLog(idapp, addtext, flotta.riga, flotta.col_prima); + tools.writeFlottaLog(idapp, addtext, flotta.riga, + flotta.col_prima); if (!!recoldnave) { if (!!recoldnave.date_made_gift) { // Se l'utente aveva confermato il Dono, allora gli mando un msg che non è stato ricevuto ... mydatamsg.tipomsg = tools.TipoMsg.SEND_MSG_DONO_NON_RICEVUTO; - const rismsg = await telegrambot.getMsgByTipoMsg(mydatamsg, myuser.lang, myuser, false); + const rismsg = await telegrambot.getMsgByTipoMsg(mydatamsg, + myuser.lang, myuser, false); let mymsg = rismsg.body; if (!!mymsg) { - await telegrambot.sendMsgTelegram(idapp, myuser.username, mymsg); + await telegrambot.sendMsgTelegram(idapp, myuser.username, + mymsg); } } } @@ -594,10 +609,12 @@ router.patch('/chval', authenticate, async (req, res) => { if (mydata.notifBot) { // Send Notification to the BOT - await telegrambot.sendMsgTelegram(idapp, mydata.notifBot.un, mydata.notifBot.txt); + 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; + let addtext = '[Msg Inviato a ' + mydata.notifBot.un + ']:' + '\n' + + mydata.notifBot.txt; telegrambot.sendMsgTelegramToTheManagers(idapp, addtext, true); if (!!flotta) @@ -628,27 +645,32 @@ router.patch('/chval', authenticate, async (req, res) => { 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); + 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); + const aportador = await User.getUsernameById(idapp, + myuserfound._id); fieldsvalue.aportador_solidario = aportador; //Aggiorna record ! - await mytable.findByIdAndUpdate(id, { $set: fieldsvalue }); + await mytable.findByIdAndUpdate(id, {$set: fieldsvalue}); - const myfirstrec = await ListaIngresso.findOne({ username: rec.username, ind_order: ind_order_ingr }); + const myfirstrec = await ListaIngresso.findOne( + {username: rec.username, ind_order: ind_order_ingr}); if (!!myfirstrec) { if (!!myfirstrec._id && !myfirstrec.deleted) { let fieldsv2 = { - invitante_username: aportador + invitante_username: aportador, }; //Aggiorna record ! - await ListaIngresso.findByIdAndUpdate(myfirstrec._id.toString(), { $set: fieldsv2 }); + await ListaIngresso.findByIdAndUpdate( + myfirstrec._id.toString(), {$set: fieldsv2}); } } } } else { - res.send({ code: server_constants.RIS_CODE_ERR, msg: 'Non aggiornato' }); + res.send( + {code: server_constants.RIS_CODE_ERR, msg: 'Non aggiornato'}); res.status(400).send(); return false; } @@ -659,19 +681,23 @@ router.patch('/chval', authenticate, async (req, res) => { else msg = 'Ripristinato'; - await telegrambot.sendMsgTelegramToTheManagers(idapp, `L\'utente ${rec.name} ${rec.surname} (${rec.username}) è stato ${msg} da ${req.user.name} ${req.user.surname}`); + await telegrambot.sendMsgTelegramToTheManagers(idapp, + `L\'utente ${rec.name} ${rec.surname} (${rec.username}) è stato ${msg} da ${req.user.name} ${req.user.surname}`); } } if (mydata.table === 'listaingressos') { if ('invitante_username' in fieldsvalue) { // SERVE SE CI METTO LE MINUSCOLE/MAIUSCOLE SBAGLIATE in invitante_username! - const myuserfound = await User.findByUsername(idapp, fieldsvalue.invitante_username, false); + const myuserfound = await User.findByUsername(idapp, + fieldsvalue.invitante_username, false); if (!!myuserfound) { if (!!myuserfound._id && !myuserfound.deleted) { - fieldsvalue.invitante_username = await User.getUsernameById(idapp, myuserfound._id); + fieldsvalue.invitante_username = await User.getUsernameById(idapp, + myuserfound._id); //Aggiorna record ! - const ris = await mytable.findByIdAndUpdate(id, { $set: fieldsvalue }); + const ris = await mytable.findByIdAndUpdate(id, + {$set: fieldsvalue}); if (!!ris) { /*let fieldsv2 = { aportador_solidario: fieldsvalue.invitante_username @@ -692,8 +718,8 @@ router.patch('/chval', authenticate, async (req, res) => { // Aggiornalo anche in Graduatorie await Graduatoria.findOneAndUpdate({ idapp, - idListaIngresso: id - }, { $set: { note: fieldsvalue.note } }, { new: false }) + idListaIngresso: id, + }, {$set: {note: fieldsvalue.note}}, {new: false}); } } @@ -701,25 +727,35 @@ router.patch('/chval', authenticate, async (req, res) => { 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 ` + rec.name + ' ' + rec.surname + '\nmodificato da ' + req.user.name + ' ' + req.user.surname + ' \n' + - 'Prima: ' + nomecognomeas + ' (' + rec.aportador_solidario + ')\n' + - 'Dopo: ' + nomecognomenuovo + ' (' + fieldsvalue.aportador_solidario + ') ]'; + const nomecognomenuovo = await User.getNameSurnameByUsername(idapp, + fieldsvalue.aportador_solidario); + const nomecognomeas = await User.getNameSurnameByUsername(idapp, + rec.aportador_solidario); + msg = `Variato l'invitante di ` + rec.name + ' ' + rec.surname + + '\nmodificato da ' + req.user.name + ' ' + req.user.surname + + ' \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 }); + await mytable.findByIdAndUpdate(id, + {$set: {aportador_iniziale: fieldsvalue.aportador_solidario}}, + {new: false}); } } } else if (mydata.table === 'navi') { if ('made_gift' in fieldsvalue) { if (!!fieldsvalue.riga) { - const navepers = await Nave.ricalcolaNave(idapp, null, fieldsvalue.riga, fieldsvalue.col, true, index); + const navepers = await Nave.ricalcolaNave(idapp, null, + fieldsvalue.riga, fieldsvalue.col, true, index); if (!!navepers) - await NavePersistente.aggiornaFlottaByNavePersistente(idapp, navepers); + await NavePersistente.aggiornaFlottaByNavePersistente(idapp, + navepers); } } } @@ -728,15 +764,14 @@ router.patch('/chval', authenticate, async (req, res) => { telegrambot.sendMsgTelegramToTheManagers(idapp, msg); } - res.send({ code: server_constants.RIS_CODE_OK, msg: '' }); + res.send({code: server_constants.RIS_CODE_OK, msg: ''}); } }).catch((e) => { tools.mylogserr('Error patch USER: ', e.message); res.status(400).send(); - }) - + }); }); @@ -751,9 +786,11 @@ router.patch('/askfunz', authenticate, async (req, res) => { let entra = false; if (!entra) { // If I change my record... - if ((!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm) && !User.isTutor(req.user.perm)) && (req.user._id.toString() !== id)) { + if ((!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm) && + !User.isTutor(req.user.perm)) && (req.user._id.toString() !== id)) { // If without permissions, exit - return res.status(404).send({ code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: '' }); + return res.status(404). + send({code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: ''}); } } @@ -761,7 +798,7 @@ router.patch('/askfunz', authenticate, async (req, res) => { const userfree = await Graduatoria.getFirstUserGradFree(idapp); if (!!userfree) - return res.send({ code: server_constants.RIS_CODE_OK, out: userfree }); + return res.send({code: server_constants.RIS_CODE_OK, out: userfree}); /*} else if (mydata.myfunc === shared_consts.CallFunz.GET_VALBYTABLE) { const mytable = getTableByTableName(mydata.table); const coltoshow = { @@ -783,7 +820,7 @@ router.patch('/askfunz', authenticate, async (req, res) => { return res.send({ code: server_constants.RIS_CODE_OK });*/ } - return res.send({ code: server_constants.RIS_CODE_ERR }); + return res.send({code: server_constants.RIS_CODE_ERR}); }); @@ -800,33 +837,39 @@ router.patch('/callfunz', authenticate, async (req, res) => { try { let entra = false; if (mydata.myfunc === shared_consts.CallFunz.AGGIUNGI_NUOVO_IMBARCO || - mydata.myfunc === shared_consts.CallFunz.CANCELLA_IMBARCO) { - entra = true + mydata.myfunc === shared_consts.CallFunz.CANCELLA_IMBARCO) { + entra = true; } if (!entra) { // If I change my record... - if ((!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm) && !User.isTutor(req.user.perm)) && (req.user._id.toString() !== id)) { + if ((!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm) && + !User.isTutor(req.user.perm)) && (req.user._id.toString() !== id)) { // If without permissions, exit - return res.status(404).send({ code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: '' }); + return res.status(404). + send({code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: ''}); } } - let myuser = await User.findOne({ idapp, username }); + let myuser = await User.findOne({idapp, username}); - let fieldsvalue = {} + 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 myuservecchio = await User.findOne( + {idapp, username: username_da_sostituire}); - let mianavedasost = await Nave.findOne({ idapp, riga: mydata.data.riga, col: mydata.data.col }); + 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); + let myusernuovo = await User.getUserShortDataByUsername(idapp, + mydata.data.username); + let navepersistente = await NavePersistente.findByRigaColByDonatore( + idapp, mydata.data.riga, mydata.data.col, 0); if (myusernuovo) { @@ -834,17 +877,20 @@ router.patch('/callfunz', authenticate, async (req, res) => { // Controlla prima se è in una Nave Temporanea, allora lo elimina dall'ultima Nave Temporanea - let miaarrnavi = await Nave.getArrPosizioniByUsername(idapp, username); + 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); + let persistente = await NavePersistente.findByRigaColByDonatore( + idapp, mianave.riga, mianave.col, 0); if (persistente.provvisoria) { fieldsvalue = { - ind_order: -1 + ind_order: -1, }; - let ris = await Nave.findByIdAndUpdate(mianave._id, { $set: fieldsvalue }); + let ris = await Nave.findByIdAndUpdate(mianave._id, + {$set: fieldsvalue}); if (!!ris) { // rimosso++; break; // Rimuovilo solo 1 ! @@ -857,12 +903,14 @@ router.patch('/callfunz', authenticate, async (req, res) => { 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); + 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 + ')' + msg: 'La Sostituzione non può avvenire ! Contattare Paolo. (ind_order=' + + mianavedasost.ind_order + ')', }); } } @@ -872,18 +920,24 @@ router.patch('/callfunz', authenticate, async (req, res) => { const mydatamsg = { tipomsg: tools.TipoMsg.SEND_MSG_A_UTENTE_SOSTITUITO, - navemediatore: { riga: navepersistente.riga, col: navepersistente.col }, + navemediatore: { + riga: navepersistente.riga, + col: navepersistente.col, + }, }; - mydatamsg.flotta = await Flotta.getFlottaByNavePersistente(idapp, navepersistente); + mydatamsg.flotta = await Flotta.getFlottaByNavePersistente(idapp, + navepersistente); - const rismsg = await telegrambot.getMsgByTipoMsg(mydatamsg, myuservecchio.lang, myuservecchio, false); + 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); + await telegrambot.sendMsgTelegram(idapp, myusernuovo.username, + messaggio); } } } @@ -898,19 +952,21 @@ router.patch('/callfunz', authenticate, async (req, res) => { 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} )`); + 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 }); + myingr = await ListaIngresso.findOne( + {idapp, added: false, username: myusernuovo.username}); if (!!myingr) { ind_order = myingr.ind_order; @@ -919,7 +975,9 @@ router.patch('/callfunz', authenticate, async (req, res) => { await myingr.save(); } else { // Crea un nuovo Ingresso - myingr = await ListaIngresso.addUserInListaIngresso(idapp, myuser.username, myuser.username, myuser.lang, false, true, null, null, true); + myingr = await ListaIngresso.addUserInListaIngresso(idapp, + myuser.username, myuser.username, myuser.lang, false, true, + null, null, true); ind_order = myingr.ind_order; await myingr.save(); @@ -929,81 +987,101 @@ router.patch('/callfunz', authenticate, async (req, res) => { // Togliolo dalla Graduatoria! await Graduatoria.findOneAndUpdate({ idapp, - idListaIngresso: myingr._id - }, { $set: { ind_order: -1 } }, { new: false }); + idListaIngresso: myingr._id, + }, {$set: {ind_order: -1}}, {new: false}); // Aggiorna la Nave con il Nuovo fieldsvalue = { - ind_order + 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 { + 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 }, - }; + const mydatamsg = { + tipomsg: tools.TipoMsg.SEND_MSG_EFFETTUA_IL_DONO, + navemediatore: { + riga: navepersistente.riga, + col: navepersistente.col, + }, + }; - mydatamsg.flotta = await Flotta.getFlottaByNavePersistente(idapp, navepersistente); + mydatamsg.flotta = await Flotta.getFlottaByNavePersistente(idapp, + navepersistente); - const rismsg = await telegrambot.getMsgByTipoMsg(mydatamsg, myusernuovo.lang, myusernuovo, false); + const rismsg = await telegrambot.getMsgByTipoMsg(mydatamsg, + myusernuovo.lang, myusernuovo, false); - let messaggio = rismsg.body; - let mytitle = rismsg.title; + let messaggio = rismsg.body; + let mytitle = rismsg.title; - // const myplacca = await Nave.getNavePos(idapp, navepersistente.riga, navepersistente.col); - // messaggio += tools.ACAPO + myplacca; + // const myplacca = await Nave.getNavePos(idapp, navepersistente.riga, navepersistente.col); + // messaggio += tools.ACAPO + myplacca; - let testostaff = ''; - if (mydata.notifBot) - testostaff = mydata.notifBot.txt; + let testostaff = ''; + if (mydata.notifBot) + testostaff = mydata.notifBot.txt; - const mymsg = testostaff + ' ' + myusernuovo.name + ' ' + myusernuovo.surname + ' [da ' + dachi + ']' + tools.ACAPO + 'Inviato messaggio: ' + messaggio; + const mymsg = testostaff + ' ' + myusernuovo.name + ' ' + + myusernuovo.surname + ' [da ' + dachi + ']' + tools.ACAPO + + 'Inviato messaggio: ' + messaggio; - if (mydata.data.notifBot) { + if (mydata.data.notifBot) { - await telegrambot.sendMsgTelegram(idapp, myusernuovo.username, messaggio); + 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); + if (mydata.data.inviaemail) { + await sendemail.sendEmail_ByText(myusernuovo.lang, + myusernuovo.email, myusernuovo, idapp, { + emailbody: messaggio, + emailtitle: mytitle, + }); } - 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: '' }); + 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); } - }).catch((e) => { - tools.mylogserr('Error patch USER: ', e.message); - res.status(400).send(); - }) + 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) { + } 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; @@ -1019,39 +1097,46 @@ router.patch('/callfunz', authenticate, async (req, res) => { // 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); + 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 }); + 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) }); + const myrec = await ListaIngresso.getIngrEUserByFilter(idapp, + {idapp, _id: ObjectID(mydata.data.id)}); if (!!myrec) { - await ListaIngresso.find({ _id: mydata.data.id }); + await ListaIngresso.find({_id: mydata.data.id}); - const risdel = await ListaIngresso.eliminaListaIngresso(idapp, mydata.ind_order, req, mydata.data.num_tess); + 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: '' }); + return res.send({code: server_constants.RIS_CODE_OK, msg: ''}); } } } else if (mydata.myfunc === shared_consts.CallFunz.ZOOM_GIA_PARTECIPATO) { if (!!myuser.username) { - let FormDaMostrare = telegrambot.getFormDaMostrare(idapp, mydata.myfunc, myuser); + let FormDaMostrare = telegrambot.getFormDaMostrare(idapp, mydata.myfunc, + myuser); - await telegrambot.sendMsgTelegramToTheManagers(idapp, `L\'utente ${myuser.name} ${myuser.surname} (${myuser.username}) ha detto di aver già visto lo Zoom di Benvenuto`, false, FormDaMostrare); + await telegrambot.sendMsgTelegramToTheManagers(idapp, + `L\'utente ${myuser.name} ${myuser.surname} (${myuser.username}) ha detto di aver già visto lo Zoom di Benvenuto`, + false, FormDaMostrare); - const ris = await User.findByIdAndUpdate(myuser.id, { $set: { 'profile.ask_zoom_partecipato': true } }); + const ris = await User.findByIdAndUpdate(myuser.id, + {$set: {'profile.ask_zoom_partecipato': true}}); if (ris) - return res.send({ code: server_constants.RIS_CODE_OK, msg: '' }); + return res.send({code: server_constants.RIS_CODE_OK, msg: ''}); } } - return res.send({ code: server_constants.RIS_CODE_ERR }); + return res.send({code: server_constants.RIS_CODE_ERR}); } catch (e) { console.log(e.message); @@ -1099,11 +1184,14 @@ router.delete('/delrec/:table/:id', authenticate, async (req, res) => { const mytable = getTableByTableName(tablename); - const fields = { 'ALL': 1 }; + const fields = {'ALL': 1}; - if ((!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm)) && (tablename !== 'extralist') && !tools.ModificheConsentite(tablename, fields, id, req.user)) { + if ((!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm)) && + (tablename !== 'extralist') && + !tools.ModificheConsentite(tablename, fields, id, req.user)) { // If without permissions, exit - return res.status(404).send({ code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: '' }); + return res.status(404). + send({code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: ''}); } let cancellato = false; @@ -1118,7 +1206,7 @@ router.delete('/delrec/:table/:id', authenticate, async (req, res) => { date_deleted: new Date(), }; - await mytable.findByIdAndUpdate(id, { $set: fieldsvalue }); + await mytable.findByIdAndUpdate(id, {$set: fieldsvalue}); cancellato = true; } @@ -1145,21 +1233,19 @@ router.delete('/delrec/:table/:id', authenticate, async (req, res) => { }); } - if (cancellato) { // Do extra things after deleted //let ris2 = await actions.doOtherlasThingsAfterDeleted(tablename, myrec, notifBot, req); if (!!ris) { - return res.send({ code: server_constants.RIS_CODE_OK, msg: '' }); + return res.send({code: server_constants.RIS_CODE_OK, msg: ''}); } } - res.send({ code: server_constants.RIS_CODE_ERR, msg: '' }); + res.send({code: server_constants.RIS_CODE_ERR, msg: ''}); return ris; }); - router.post('/duprec/:table/:id', authenticate, (req, res) => { const id = req.params.id; const tablename = req.params.table; @@ -1170,12 +1256,14 @@ router.post('/duprec/:table/:id', authenticate, (req, res) => { const mytable = getTableByTableName(tablename); if (!req.user) { - return res.status(404).send({ code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: '' }); + return res.status(404). + send({code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: ''}); } if (!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm)) { // If without permissions, exit - return res.status(404).send({ code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: '' }); + return res.status(404). + send({code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: ''}); } return mytable.findById(id).then((mydata) => { @@ -1183,28 +1271,29 @@ router.post('/duprec/:table/:id', authenticate, (req, res) => { const datadup = tools.CloneRecordToNew(mydata); const mynewrec = new mytable(datadup); - return mynewrec.save() - .then((rec) => { - if (!rec) { - return res.status(404).send(); - } + return mynewrec.save().then((rec) => { + if (!rec) { + return res.status(404).send(); + } - tools.mylog('DUPLICATED ', rec); + tools.mylog('DUPLICATED ', rec); + + // Do extra things after deleted + return actions.doOtherThingsAfterDuplicated(tablename, rec). + then(({myrec}) => { + // ... + mytable.findById(myrec._id).then((record) => { + return res.send( + {code: server_constants.RIS_CODE_OK, record, msg: ''}); + }); - // Do extra things after deleted - return actions.doOtherThingsAfterDuplicated(tablename, rec).then(({ myrec }) => { - // ... - mytable.findById(myrec._id).then((record) => { - return res.send({ code: server_constants.RIS_CODE_OK, record, msg: '' }); }); - }); - - }).catch((e) => { - console.error(e.message); - res.status(400).send(); - }); - }) + }).catch((e) => { + console.error(e.message); + res.status(400).send(); + }); + }); }); @@ -1212,13 +1301,14 @@ router.get('/loadsite/:userId/:idapp', authenticate_noerror, (req, res) => { load(req, res, '0'); }); -router.get('/loadsite/:userId/:idapp/:vers', authenticate_noerror, (req, res) => { - let versionstr = req.params.vers; +router.get('/loadsite/:userId/:idapp/:vers', authenticate_noerror, + (req, res) => { + let versionstr = req.params.vers; - let version = tools.getVersionint(versionstr); + let version = tools.getVersionint(versionstr); - load(req, res, version); -}); + load(req, res, version); + }); function load(req, res, version) { const userId = req.params.userId; @@ -1230,7 +1320,8 @@ function load(req, res, version) { let sall = '0'; if (!!req.user) { - sall = (User.isAdmin(req.user.perm) || User.isManager(req.user.perm) || User.isEditor(req.user.perm)) ? '1' : '0' + sall = (User.isAdmin(req.user.perm) || User.isManager(req.user.perm) || + User.isEditor(req.user.perm)) ? '1' : '0'; } // var category = req.params.category; @@ -1294,88 +1385,113 @@ function load(req, res, version) { cart = Cart.getCartByUserId(req.user.id, idapp); if (User.isManager(req.user.perm)) { // Prende Tutti gli Ordini ! - orderscart = OrdersCart.getOrdersCartByUserId("ALL", idapp, 0); + orderscart = OrdersCart.getOrdersCartByUserId('ALL', idapp, 0); } else { orderscart = OrdersCart.getOrdersCartByUserId(req.user.id, idapp, 0); } } + return Promise.all([ + bookedevent, + eventlist, + operators, + wheres, + contribtype, + settings, + permissions, + disciplines, + newstosent, + mailinglist, + mypage, + gallery, + paymenttype, + calcstat, + calzoom, + producers, + cart, + storehouses, + departments, + orderscart, + groups, + resps, + workers, + internalpages, + levels, + skills, + sectors, + statusSkills, + cities]).then((arrdata) => { + // console.table(arrdata); + const myuser = req.user; + if (myuser) { + myuser.password = ''; + myuser._doc.calcstat = arrdata[13]; + } + if (version < 91) { + res.send({ + bookedevent: arrdata[0], + eventlist: arrdata[1], + operators: arrdata[2], + wheres: arrdata[3], + contribtype: arrdata[4], + settings: arrdata[5], + permissions: arrdata[6], + disciplines: arrdata[7], + newstosent: arrdata[8], + mailinglist: arrdata[9], + mypage: arrdata[10], + gallery: arrdata[11], + paymenttypes: arrdata[12], + calzoom: arrdata[14], + producers: arrdata[15], + cart: arrdata[16], + storehouses: arrdata[17], + departments: arrdata[18], + orders: arrdata[19], + groups: arrdata[20], + resps: arrdata[21], + workers: arrdata[22], + myuser, + internalpages: arrdata[23], + }); + } else { + res.send({ + bookedevent: arrdata[0], + eventlist: arrdata[1], + operators: arrdata[2], + wheres: arrdata[3], + contribtype: arrdata[4], + settings: arrdata[5], + permissions: arrdata[6], + disciplines: arrdata[7], + newstosent: arrdata[8], + mailinglist: arrdata[9], + mypage: arrdata[10], + gallery: arrdata[11], + paymenttypes: arrdata[12], + calzoom: arrdata[14], + producers: arrdata[15], + cart: arrdata[16], + storehouses: arrdata[17], + departments: arrdata[18], + orders: arrdata[19], + groups: arrdata[20], + resps: arrdata[21], + workers: arrdata[22], + myuser, + internalpages: arrdata[23], + levels: arrdata[24], + skills: arrdata[25], + sectors: arrdata[26], + statusSkills: arrdata[27], + cities: arrdata[28], + }); + } - return Promise.all([bookedevent, eventlist, operators, wheres, contribtype, settings, permissions, disciplines, newstosent, mailinglist, mypage, gallery, paymenttype, calcstat, calzoom, producers, cart, storehouses, departments, orderscart, groups, resps, workers, internalpages, - levels, skills, sectors, statusSkills, cities ]) - .then((arrdata) => { - // console.table(arrdata); - const myuser = req.user; - if (myuser) { - myuser.password = ''; - myuser._doc.calcstat = arrdata[13]; - } - if (version < 91) { - res.send({ - bookedevent: arrdata[0], - eventlist: arrdata[1], - operators: arrdata[2], - wheres: arrdata[3], - contribtype: arrdata[4], - settings: arrdata[5], - permissions: arrdata[6], - disciplines: arrdata[7], - newstosent: arrdata[8], - mailinglist: arrdata[9], - mypage: arrdata[10], - gallery: arrdata[11], - paymenttypes: arrdata[12], - calzoom: arrdata[14], - producers: arrdata[15], - cart: arrdata[16], - storehouses: arrdata[17], - departments: arrdata[18], - orders: arrdata[19], - groups: arrdata[20], - resps: arrdata[21], - workers: arrdata[22], - myuser, - internalpages: arrdata[23] - }); - } else { - res.send({ - bookedevent: arrdata[0], - eventlist: arrdata[1], - operators: arrdata[2], - wheres: arrdata[3], - contribtype: arrdata[4], - settings: arrdata[5], - permissions: arrdata[6], - disciplines: arrdata[7], - newstosent: arrdata[8], - mailinglist: arrdata[9], - mypage: arrdata[10], - gallery: arrdata[11], - paymenttypes: arrdata[12], - calzoom: arrdata[14], - producers: arrdata[15], - cart: arrdata[16], - storehouses: arrdata[17], - departments: arrdata[18], - orders: arrdata[19], - groups: arrdata[20], - resps: arrdata[21], - workers: arrdata[22], - myuser, - internalpages: arrdata[23], - levels: arrdata[24], - skills: arrdata[25], - sectors: arrdata[26], - statusSkills: arrdata[27], - cities: arrdata[28] - }); - } - - }) - .catch((e) => { - console.log(e.message); - res.status(400).send(e); - }); + }).catch((e) => { + console.log(e.message); + res.status(400).send(e); + }); } @@ -1389,7 +1505,7 @@ router.get(process.env.LINK_CHECK_UPDATES, authenticate, async (req, res) => { return res.status(404).send(); } - await cfgserver.find({ idapp }).then((arrcfgrec) => { + await cfgserver.find({idapp}).then((arrcfgrec) => { if (!arrcfgrec) return res.status(404).send(); @@ -1399,32 +1515,33 @@ router.get(process.env.LINK_CHECK_UPDATES, authenticate, async (req, res) => { // const sall = '0'; // msgs = SendMsg.findAllByUserIdAndIdApp(userId, req.user.username, req.user.idapp); - let last_msgs = SendMsg.findLastGroupByUserIdAndIdApp(userId, req.user.username, req.user.idapp); + let last_msgs = SendMsg.findLastGroupByUserIdAndIdApp(userId, + req.user.username, req.user.idapp); let usersList = null; if (req.user) { // If User is Admin, then send user Lists - if (User.isAdmin(req.user.perm) || User.isEditor(req.user.perm) || User.isManager(req.user.perm)) { + 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; } } - return Promise.all([usersList, last_msgs]) - .then((arrdata) => { - // console.table(arrdata); - return res.send({ - cfgServer: arrcfgrec, - usersList: arrdata[0], - last_msgs: arrdata[1], - }); + return Promise.all([usersList, last_msgs]).then((arrdata) => { + // console.table(arrdata); + return res.send({ + cfgServer: arrcfgrec, + usersList: arrdata[0], + last_msgs: arrdata[1], }); + }); }).catch((e) => { console.log(e.message); - res.status(400).send({ code: server_constants.RIS_CODE_ERR, msg: e }); + res.status(400).send({code: server_constants.RIS_CODE_ERR, msg: e}); }); }); @@ -1490,7 +1607,6 @@ router.post('/upload_from_other_server/:dir', authenticate, (req, res) => { } */ - }); function uploadFile(req, res, version) { @@ -1514,11 +1630,11 @@ function uploadFile(req, res, version) { form.uploadDir = folder + '/' + dir; try { - form.on('fileBegin', async function (name, file) { + form.on('fileBegin', async function(name, file) { file.path = folder + '/' + file.name; }); - form.on('file', async function (name, file) { + form.on('file', async function(name, file) { try { console.log('Uploaded ' + file.name); const mydir = tools.getdirByIdApp(idapp) + dirmain + '/upload/' + dir; @@ -1556,17 +1672,15 @@ function uploadFile(req, res, version) { }); } catch (e) { - console.log('Error', e) + console.log('Error', e); } } - router.post('/upload/:dir', authenticate, (req, res) => { uploadFile(req, res, 0); }); - router.post('/uploadnew/:vers/:dir/', authenticate, (req, res) => { let versionstr = req.params.vers; let version = tools.getVersionint(versionstr); @@ -1575,22 +1689,37 @@ router.post('/uploadnew/:vers/:dir/', authenticate, (req, res) => { }); +router.delete('/delfile/:vers', authenticate, (req, res) => { + let versionstr = req.params.vers; + let version = tools.getVersionint(versionstr); + deleteFile(req, res, version); +}); router.delete('/delfile', authenticate, (req, res) => { + deleteFile(req, res, 0); +}); + +function deleteFile(req, res, version) { const relativefile = req.query.filename; const idapp = req.user.idapp; try { + let dirmain = ''; + if (version > 0) { + if (process.env.PROD !== 1) { + dirmain = '/public'; + } + } try { console.log('Delete file ' + relativefile); // ++ Move in the folder application ! - let fullpathfile = tools.getdirByIdApp(idapp) + '/' + relativefile; + let fullpathfile = tools.getdirByIdApp(idapp) + dirmain + '/' + relativefile; tools.delete(fullpathfile, (err) => { if (err) console.log('err', err); if (err === undefined || err.errno === -2) - res.send({ code: server_constants.RIS_CODE_OK, msg: '' }); + res.send({code: server_constants.RIS_CODE_OK, msg: ''}); }); } catch (e) { @@ -1598,10 +1727,9 @@ router.delete('/delfile', authenticate, (req, res) => { res.status(400).send(); } } catch (e) { - console.log('Error', e) + console.log('Error', e); } -}); - +} module.exports = router;