This commit is contained in:
Paolo Arena
2021-02-18 12:19:35 +01:00
parent 88ae9af12c
commit 14a3292da2
22 changed files with 233 additions and 122 deletions

View File

@@ -28,7 +28,7 @@ router.post('/', authenticate, (req, res) => {
// tools.mylog('INIZIO - booking');
// tools.mylog('req.body', req.body);
const myrec = _.pick(req.body, tools.allfieldBooking());
const id = myrec._id;
const id = myrec.id_bookedevent;
const fieldtochange = _.pick(myrec, tools.allfieldBookingChange());
tools.mylog('crea Booking');
@@ -45,13 +45,13 @@ router.post('/', authenticate, (req, res) => {
// console.log('trovato', trovato);
if (trovato) {
return Booking.findOneAndUpdate({ id_bookedevent: id }, { $set: fieldtochange }, {
new: true,
new: false,
upsert: true
}).then((recbooking) => {
// tools.mylog('booking:', booking);
// tools.mylog('already exist');
sendNotif(res, myrec.idapp, req.user, recbooking);
res.send({ code: server_constants.RIS_CODE_OK, msg: '', id: recbooking._id });
sendNotif(res, myrec.idapp, req.user, myrec);
res.send({ code: server_constants.RIS_CODE_OK, msg: '', id: id_bookedevent });
});
} else {
// save to database a new record
@@ -62,8 +62,8 @@ router.post('/', authenticate, (req, res) => {
Booking.findById(idobj)
.then((recbooking) => {
sendNotif(res, myrec.idapp, req.user, recbooking);
res.send({ code: server_constants.RIS_CODE_OK, msg: '', id: recbooking._id });
sendNotif(res, myrec.idapp, req.user, writeresult);
res.send({ code: server_constants.RIS_CODE_OK, msg: '', id: writeresult._id });
});
});
}

View File

@@ -70,7 +70,7 @@ const actions = require('./api/actions');
const shared_consts = require('../tools/shared_nodejs');
UserCost = {
const UserCost = {
FIELDS_REQUISITI: ['verified_email',
'profile.teleg_id',
'profile.saw_and_accepted',
@@ -191,7 +191,7 @@ router.post(process.env.LINK_UPDATE_PWD, (req, res) => {
function getTableByTableName(tablename) {
mytable = '';
let mytable = '';
if (tablename === 'users')
mytable = User;
else if (tablename === 'tessitura')
@@ -299,16 +299,17 @@ router.post('/settable', authenticate, (req, res) => {
return res.send(rec);
}).catch((e) => {
console.log(e.message);
if (e.code === 11000) {
const id = mytablerec._id;
delete mytablerec._doc['_id'];
return mytablestrutt.findByIdAndUpdate(id, { $set: mytablerec._doc }).then(async (rec) => {
return res.send(rec);
}).catch((e) => {
tools.mylog('error: ', e.message);
return res.status(400).send(e);
}).catch((err) => {
tools.mylog('error: ', err.message);
return res.status(400).send(err);
})
} else {
console.log(e.message);
}
});
@@ -374,7 +375,7 @@ 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.isTraduttrici(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.isTraduttrici(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: '' });
}
@@ -457,7 +458,7 @@ router.patch('/chval', authenticate, async (req, res) => {
const risunset = await mytable.findByIdAndUpdate(id, { $unset: unset });
if (!!risunset) {
if ('date_made_gift' in unset) {
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);
@@ -484,7 +485,7 @@ router.patch('/chval', authenticate, async (req, res) => {
await telegrambot.sendMsgTelegram(idapp, mydata.notifBot.un, mydata.notifBot.txt);
if (!!addmsg)
await telegrambot.sendMsgTelegram(idapp, mydata.notifBot.un, addmsg);
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)
@@ -513,7 +514,7 @@ router.patch('/chval', authenticate, async (req, res) => {
}*/
if ('aportador_solidario' in fieldsvalue) {
ind_order_ingr = mydata.ind_order_ingr;
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) {
@@ -530,7 +531,7 @@ router.patch('/chval', authenticate, async (req, res) => {
invitante_username: aportador
};
//Aggiorna record !
const ris = await ListaIngresso.findByIdAndUpdate(myfirstrec._id.toString(), { $set: fieldsv2 });
await ListaIngresso.findByIdAndUpdate(myfirstrec._id.toString(), { $set: fieldsv2 });
}
}
}
@@ -630,15 +631,15 @@ router.patch('/chval', authenticate, async (req, res) => {
router.patch('/askfunz', authenticate, async (req, res) => {
// const idapp = req.body.idapp;
const id = req.body.data.id;
const ind_order = req.body.data.ind_order;
const username = req.body.data.username;
// const ind_order = req.body.data.ind_order;
// const username = req.body.data.username;
const idapp = req.body.idapp;
const mydata = req.body.data;
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: '' });
}
@@ -677,12 +678,12 @@ router.patch('/askfunz', authenticate, async (req, res) => {
router.patch('/callfunz', authenticate, async (req, res) => {
// const idapp = req.body.idapp;
const id = req.body.data.id;
const ind_order = req.body.data.ind_order;
// const ind_order = req.body.data.ind_order;
const username = req.body.data.username;
const idapp = req.body.idapp;
const mydata = req.body.data;
const telegrambot = require('../telegram/telegrambot');
// const telegrambot = require('../telegram/telegrambot');
try {
let entra = false;
@@ -692,7 +693,7 @@ router.patch('/callfunz', authenticate, async (req, res) => {
}
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: '' });
}
@@ -700,29 +701,28 @@ router.patch('/callfunz', authenticate, async (req, res) => {
let myuser = await User.findOne({ idapp, username });
let rimosso = 0;
let fieldsvalue = {}
if (mydata.myfunc === shared_consts.CallFunz.SOSTITUISCI) { // SOSTITUISCI
username_da_sostituire = mydata.data.username_da_sostituire;
let username_da_sostituire = mydata.data.username_da_sostituire;
let myuservecchio = await User.findOne({ idapp, username: username_da_sostituire });
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
myusernuovo = await User.getUserShortDataByUsername(idapp, mydata.data.username);
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 (myusernuovo) {
if (!mydata.data.AddImbarco && !!mianavedasost && mianavedasost.ind_order > 0) {
if (!mydata.data.AddImbarco && mianavedasost.ind_order > 0) {
// Controlla prima se è in una Nave Temporanea, allora lo elimina dall'ultima Nave Temporanea
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) {
@@ -734,7 +734,7 @@ router.patch('/callfunz', authenticate, async (req, res) => {
let ris = await Nave.findByIdAndUpdate(mianave._id, { $set: fieldsvalue });
if (!!ris) {
rimosso++;
// rimosso++;
break; // Rimuovilo solo 1 !
}
}
@@ -742,18 +742,16 @@ router.patch('/callfunz', authenticate, async (req, res) => {
}
}
if (!!myusernuovo) {
if (!!mianavedasost && mianavedasost.ind_order >= 0) {
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);
// 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 (!eliminatoingr) {
return res.send({
code: server_constants.RIS_CODE_ERR,
msg: 'La Sostituzione non può avvenire ! Contattare Paolo. (ind_order=' + mianavedasost.ind_order + ')'
});
}
}
@@ -771,7 +769,7 @@ router.patch('/callfunz', authenticate, async (req, res) => {
if (!!rismsg) {
let messaggio = rismsg.body;
mytitle = rismsg.title;
// let mytitle = rismsg.title;
if (!!messaggio) {
await telegrambot.sendMsgTelegram(idapp, myusernuovo.username, messaggio);
}
@@ -781,7 +779,7 @@ router.patch('/callfunz', authenticate, async (req, res) => {
// Se ha gia delle altre navi, non cancellarlo!
if (!await Nave.checkIfMadeGift(idapp, myuservecchio.username)) {
if (mydata.data.deleteUser && !!mianavedasost && mianavedasost.ind_order > 0) {
if (mydata.data.deleteUser && mianavedasost.ind_order > 0) {
// Metti Deleted allo User
fieldsvalue = {
deleted: true,
@@ -846,7 +844,7 @@ router.patch('/callfunz', authenticate, async (req, res) => {
const rismsg = await telegrambot.getMsgByTipoMsg(mydatamsg, myusernuovo.lang, myusernuovo, false);
let messaggio = rismsg.body;
mytitle = rismsg.title;
let mytitle = rismsg.title;
// const myplacca = await Nave.getNavePos(idapp, navepersistente.riga, navepersistente.col);
// messaggio += tools.ACAPO + myplacca;
@@ -896,7 +894,7 @@ router.patch('/callfunz', authenticate, async (req, res) => {
} 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;
// const num_tess = 1;
/*
let listaingr = await ListaIngresso.find({ idapp, ind_order }).sort({ num_tess: 1 });
@@ -909,9 +907,9 @@ router.patch('/callfunz', authenticate, async (req, res) => {
// metti l'invitante inizialmente a Te stesso !
const invitante_username = req.body.data.invitante_username;
ris = await ListaIngresso.addUserInListaIngresso(idapp, username, invitante_username, myuser.lang, true, true);
await ListaIngresso.addUserInListaIngresso(idapp, username, invitante_username, myuser.lang, true, true);
arrimbarchi = await ListaIngresso.findAllByUsername(idapp, username);
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) {
@@ -919,7 +917,7 @@ router.patch('/callfunz', authenticate, async (req, res) => {
const myrec = await ListaIngresso.getIngrEUserByFilter(idapp, { idapp, _id: ObjectID(mydata.data.id) });
if (!!myrec) {
const myingr = 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);
@@ -931,7 +929,7 @@ router.patch('/callfunz', authenticate, async (req, res) => {
} else if (mydata.myfunc === shared_consts.CallFunz.ZOOM_GIA_PARTECIPATO) {
if (!!myuser.username) {
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);
@@ -980,9 +978,9 @@ router.get('/copyfromapptoapp/:idapporig/:idappdest', async (req, res) => {
router.delete('/delrec/:table/:id', authenticate, async (req, res) => {
const id = req.params.id;
const idapp = req.user.idapp;
// const idapp = req.user.idapp;
const tablename = req.params.table;
let notifBot = false;
// let notifBot = false;
// const idapp = req.body.idapp;
console.log('id', id, 'table', tablename);
@@ -998,8 +996,7 @@ router.delete('/delrec/:table/:id', authenticate, async (req, res) => {
let cancellato = false;
notifBot = tools.NotifyIfDelRecord(tablename);
let myrec = null;
// tools.NotifyIfDelRecord(tablename);
if (!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm)) {
if (tablename === 'users') {
@@ -1009,8 +1006,7 @@ router.delete('/delrec/:table/:id', authenticate, async (req, res) => {
date_deleted: new Date(),
};
const rec = await mytable.findByIdAndUpdate(id, { $set: fieldsvalue });
myrec = rec;
await mytable.findByIdAndUpdate(id, { $set: fieldsvalue });
cancellato = true;
}
@@ -1024,7 +1020,6 @@ router.delete('/delrec/:table/:id', authenticate, async (req, res) => {
// res.status(404).send();
return false;
}
myrec = rec;
cancellato = true;
@@ -1106,12 +1101,15 @@ router.get('/loadsite/:userId/:idapp/:sall', authenticate_noerror, (req, res) =>
const userId = req.params.userId;
const idapp = req.params.idapp;
const sall = req.params.sall;
// var category = req.params.category;
// tools.mylog('loadsite : ', req.params);
let bookedevent = [];
let msgs = [];
// let msgs = [];
const socioresidente = req.user.profile.socioresidente;
if (userId !== '0') {
// LOGGED WITH USERID
@@ -1119,7 +1117,7 @@ router.get('/loadsite/:userId/:idapp/:sall', authenticate_noerror, (req, res) =>
}
// Extract all the todos of the userId only
const eventlist = MyEvent.findAllIdApp(idapp);
const eventlist = MyEvent.findAllIdApp(socioresidente, idapp);
const operators = Operator.findAllIdApp(idapp);
const wheres = Where.findAllIdApp(idapp);
const contribtype = Contribtype.findAllIdApp(idapp);
@@ -1216,7 +1214,7 @@ router.get(process.env.LINK_CHECK_UPDATES, authenticate, async (req, res) => {
// const sall = '0';
// msgs = SendMsg.findAllByUserIdAndIdApp(userId, req.user.username, req.user.idapp);
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;
@@ -1225,7 +1223,7 @@ router.get(process.env.LINK_CHECK_UPDATES, authenticate, async (req, res) => {
if (User.isAdmin(req.user.perm)) {
// Send UsersList
// usersList = User.getUsersList(req.user.idapp)
usersList = null;
// usersList = null;
}
}
@@ -1247,8 +1245,8 @@ router.get(process.env.LINK_CHECK_UPDATES, authenticate, async (req, res) => {
});
router.post('/upload_from_other_server/:dir', authenticate, (req, res) => {
const dir = req.params.dir;
const idapp = req.user.idapp;
// const dir = req.params.dir;
// const idapp = req.user.idapp;
/*
const form = new formidable.IncomingForm();
@@ -1335,7 +1333,7 @@ router.post('/upload/:dir', authenticate, (req, res) => {
// Create Dir if doesn't exist:
tools.mkdirpath(mydir);
newname = mydir + '/' + file.name;
let newname = mydir + '/' + file.name;
console.log('move from ', file.path, 'to :', newname);
@@ -1381,7 +1379,7 @@ router.delete('/delfile', authenticate, (req, res) => {
try {
console.log('Delete file ' + relativefile);
// ++ Move in the folder application !
fullpathfile = tools.getdirByIdApp(idapp) + '/' + relativefile;
let fullpathfile = tools.getdirByIdApp(idapp) + '/' + relativefile;
tools.delete(fullpathfile, (err) => {
if (err) console.log('err', err);

View File

@@ -34,7 +34,7 @@ router.post('/', authenticate, (req, res) => {
// console.log('trovato', trovato);
if (trovato) {
return myevent.findOneAndUpdate({ id }, { $set: fieldtochange }, {
new: true,
new: false,
upsert: true
}).then((recmyevent) => {
// tools.mylog('myevent:', myevent);

View File

@@ -47,7 +47,7 @@ router.post('/', authenticate, (req, res) => {
.then(record => {
// tools.mylog('REC SAVED :', record.descr);
res.send({ record });
res.send({ record: record._doc });
/*
tools.sendNotificationToUser(project.userId, 'Project: ' + record.descr, record.descr, '/project/' + project.category, '', 'project', [])
@@ -96,8 +96,7 @@ router.patch('/:id', authenticate, (req, res) => {
return res.status(404).send();
}
if (project.userId !== String(req.user._id)) {
if (project.userId !== String(req.user._id) && project.privacywrite === server_constants.Privacy.onlyme) {
// I'm trying to write something not mine!
return res.status(404).send({ code: server_constants.RIS_CODE_TODO_CREATING_NOTMYUSER });
}
@@ -143,8 +142,6 @@ router.get('/calc/:id/:actualphase', authenticate, (req, res) => {
var id = req.params.id;
var actualphase = parseInt(req.params.actualphase);
let rec = {};
return Todo.calculateTreeTodo(actualphase, '', id, false, id, false)
.then((rec) => {
return res.send({ rec });
@@ -191,6 +188,7 @@ router.get('/:userId', authenticate, (req, res) => {
});
/*
// USATO SOLO LE PRIME VOLTE! O A RICHIESTA!
async function calcProjects(userId, obj) {
@@ -215,6 +213,7 @@ async function calcProjects(userId, obj) {
}
}
*/
// USATO SOLO LE PRIME VOLTE! O A RICHIESTA!
async function calcSingleProject(userId, myproj) {
@@ -226,7 +225,7 @@ async function calcSingleProject(userId, myproj) {
router.delete('/:id', authenticate, (req, res) => {
var id = req.params.id;
let hide = true;
const hide = true;
if (!ObjectID.isValid(id)) {
return res.status(404).send();

View File

@@ -81,34 +81,43 @@ router.patch('/:id', authenticate, (req, res) => {
return res.status(404).send();
}
Todo.findByIdAndUpdate(id, { $set: body }, { new: true })
.then((todo) => {
if (!todo) {
tools.mylogshow(' TODO NOT FOUND !: id:', id, 'body: ', body);
return res.status(404).send();
Todo.findById(id)
.then((todorec) => {
if (todorec) {
// Esiste, pertanto gli tolgo l'UserId generato in precedenza
delete body["userId"];
}
let level = 0;
return Todo.calculateTreeTodo(todo.phase, todo.userId, todo.category, true, todo.category, false)
.then(objdatacalc => {
// tools.mylogshow(' TODO TO MODIFY: ', todo.descr, todo.expiring_at);
if (todo.userId !== String(req.user._id)) {
// I'm trying to write something not mine!
return res.status(404).send({ code: server_constants.RIS_CODE_TODO_CREATING_NOTMYUSER });
Todo.findByIdAndUpdate(id, { $set: body }, { new: true })
.then((todo) => {
if (!todo) {
tools.mylogshow(' TODO NOT FOUND !: id:', id, 'body: ', body);
return res.status(404).send();
}
todo.modified = false;
let level = 0;
return Todo.calculateTreeTodo(todo.phase, todo.userId, todo.category, true, todo.category, false)
.then(objdatacalc => {
// tools.mylogshow(' TODO TO MODIFY: ', todo.descr, todo.expiring_at);
// tools.mylog('PATCH ', todo.descr, todo._id);
if (todo.userId !== String(req.user._id) && project.privacywrite === server_constants.Privacy.onlyme) {
// I'm trying to write something not mine!
return res.status(404).send({ code: server_constants.RIS_CODE_TODO_CREATING_NOTMYUSER });
}
res.send({ todo, objdatacalc });
});
todo.modified = false;
}).catch((e) => {
tools.mylogserr('Error patch TODO: ', e);
res.status(400).send();
})
// tools.mylog('PATCH ', todo.descr, todo._id);
res.send({ todo, objdatacalc });
});
}).catch((e) => {
tools.mylogserr('Error patch TODO: ', e);
res.status(400).send();
})
})
});