diff --git a/src/server/locales/it.json b/src/server/locales/it.json index 9dd725d..cac4965 100644 --- a/src/server/locales/it.json +++ b/src/server/locales/it.json @@ -58,8 +58,15 @@ "CIRCUIT_REMOVED_TO_ME": "❌ Sei stato rimosso dal Circuito %s (da parte di %s)", "CIRCUIT_SENDCOINSREQ": "%s ti sta inviando %s %s.", "CIRCUIT_SENDCOINSREQ_GROUP": "%s sta inviando %s %s al Conto Comunitario '%s'.", - "CIRCUIT_SENDCOINSREQ_FROM_GROUP": "il conto comunitario '%s' sta inviando %s %s a %s.", + "CIRCUIT_SENDCOINSREQ_FROM_GROUP_TO_USER": "il conto comunitario '%s' sta inviando %s %s a %s.", + "CIRCUIT_SENDCOINSREQ_FROM_GROUP_TO_YOU": "il conto comunitario '%s' ti sta inviando %s %s", + "CIRCUIT_SENDCOINSREQ_FROM_GROUP_TO_GROUP": "il conto comunitario '%s' sta inviando %s %s al conto Comunitario %s.", "CIRCUIT_SENDCOINSREQ_TO_ME": "Stai inviando %s %s a %s. \nIl destinatario deve accettare la transazione.", + "CIRCUIT_SENDCOINSREQ_TO_GROUP": "Stai inviando %s %s al Conto Comunitario %s. \nIl destinatario deve accettare la transazione.", + "ID_CIRCUIT_COINS_ACCEPTED_FROM_GROUP_TO_YOU": "%s %s accettati da %s (del Conto Comunitario %s).", + "ID_CIRCUIT_COINS_ACCEPTED_FROM_GROUP_TO_GROUP": "%s %s accettati da %s del Conto Comunitario %s al Conto Comunitario %s.", + "ID_CIRCUIT_COINS_ACCEPTED_FROM_ME_TO_GROUP": "%s %s accettati da %s (per il Conto Comunitario %s).", + "ID_CIRCUIT_COINS_ACCEPTED_FROM_ME_TO_YOU": "%s %s accettati da %s.", "ID_CIRCUIT_COINS_ACCEPTED": "%s %s accettati da %s.", "SALDO_UPDATE": "[Saldo %s %s]", "ID_CIRCUIT_COINS_ACCEPTED_TO_ME": "%s %s sono stati accettati da %s.", diff --git a/src/server/models/movement.js b/src/server/models/movement.js index 3b9ce3a..0beec11 100755 --- a/src/server/models/movement.js +++ b/src/server/models/movement.js @@ -173,6 +173,29 @@ MovementSchema.statics.getQueryMovsByCircuitId = async function(idapp, username, }, }, {$unwind: '$userfrom'}, + { + $lookup: { + from: 'mygroups', + let: {groupname: '$accfrom.groupname', idapp: '$accfrom.idapp'}, + pipeline: [ + { + $match: + { + $expr: + { + $and: + [ + {$eq: ['$$groupname', '$groupname']}, + {$eq: ['$$idapp', '$idapp']}, + ], + }, + }, + }, + ], + as: 'groupfrom', + }, + }, + {$unwind: '$groupfrom'}, { $lookup: { from: 'accounts', @@ -183,26 +206,26 @@ MovementSchema.statics.getQueryMovsByCircuitId = async function(idapp, username, }, {$unwind: '$accto'}, { - '$lookup': { - 'from': 'circuits', - 'localField': 'accfrom.circuitId', - 'foreignField': '_id', - 'as': 'circuitfrom', + $lookup: { + from: 'circuits', + localField: 'accfrom.circuitId', + foreignField: '_id', + as: 'circuitfrom', }, }, { - '$unwind': '$circuitfrom', + $unwind: '$circuitfrom', }, { - '$lookup': { - 'from': 'circuits', - 'localField': 'accto.circuitId', - 'foreignField': '_id', - 'as': 'circuitto', + $lookup: { + from: 'circuits', + localField: 'accto.circuitId', + foreignField: '_id', + as: 'circuitto', }, }, { - '$unwind': '$circuitto', + $unwind: '$circuitto', }, { $lookup: { @@ -227,6 +250,29 @@ MovementSchema.statics.getQueryMovsByCircuitId = async function(idapp, username, }, }, {$unwind: '$userto'}, + { + $lookup: { + from: 'mygroups', + let: {groupname: '$accto.groupname', idapp: '$accto.idapp'}, + pipeline: [ + { + $match: + { + $expr: + { + $and: + [ + {$eq: ['$$groupname', '$groupname']}, + {$eq: ['$$idapp', '$idapp']}, + ], + }, + }, + }, + ], + as: 'groupto', + }, + }, + {$unwind: '$groupto'}, { $project: { @@ -240,6 +286,8 @@ MovementSchema.statics.getQueryMovsByCircuitId = async function(idapp, username, 'userfrom.profile.img': 1, 'userto.username': 1, 'userto.profile.img': 1, + 'groupfrom.groupname': 1, + 'groupto.groupname': 1, }, }, @@ -304,6 +352,34 @@ MovementSchema.statics.getQueryAllUsersMovsByCircuitId = async function(idapp, c preserveNullAndEmptyArrays: true, }, }, + { + $lookup: { + from: 'mygroups', + let: {groupname: '$accfrom.groupname', idapp: '$accfrom.idapp'}, + pipeline: [ + { + $match: + { + $expr: + { + $and: + [ + {$eq: ['$$groupname', '$groupname']}, + {$eq: ['$$idapp', '$idapp']}, + ], + }, + }, + }, + ], + as: 'groupfrom', + }, + }, + { + $unwind: { + path: '$groupfrom', + preserveNullAndEmptyArrays: true, + }, + }, { $lookup: { from: 'accounts', @@ -377,6 +453,34 @@ MovementSchema.statics.getQueryAllUsersMovsByCircuitId = async function(idapp, c preserveNullAndEmptyArrays: true, }, }, + { + $lookup: { + from: 'mygroups', + let: {groupname: '$accto.groupname', idapp: '$accto.idapp'}, + pipeline: [ + { + $match: + { + $expr: + { + $and: + [ + {$eq: ['$$groupname', '$groupname']}, + {$eq: ['$$idapp', '$idapp']}, + ], + }, + }, + }, + ], + as: 'groupto', + }, + }, + { + $unwind: { + path: '$groupto', + preserveNullAndEmptyArrays: true, + }, + }, { $project: { @@ -390,7 +494,9 @@ MovementSchema.statics.getQueryAllUsersMovsByCircuitId = async function(idapp, c 'userfrom.profile.img': 1, 'userto.username': 1, 'userto.profile.img': 1, - }, + 'groupfrom.groupname': 1, + 'groupto.groupname': 1, + }, }, ]; diff --git a/src/server/models/prova.htm b/src/server/models/prova.htm new file mode 100644 index 0000000..3e80c02 --- /dev/null +++ b/src/server/models/prova.htm @@ -0,0 +1 @@ +
Come posso sostenere il progetto Riso.app?

  • πŸ“±Condividendo la APP a tutti coloro che vogliono far parte insieme della crescita e sviluppo di una Nuova Era.
  • πŸ‘₯ Aiutando a creare Gruppi Territoriali nella vostra cittΓ , impegnandosi a realizzare progetti per il Bene Comune, in onore ai principi Amorevoli e di condivisione.
  • 🌱 Sostenendo le persone attorno a voi, e rispettando la nostra vera Casa: Madre Natura e Tutti gli Esseri Viventi. ❀️
  • πŸ‘¨πŸ»β€πŸ’» Con una piccola donazione per le spese dei Server, manutenzione e per i continui sviluppi e miglioramenti.
1) Tramite Paypal
2) Tramite Satispay
In alternativa scegli tu una forma di scambio (auto-produzioni di cibo) da donare (per info: Surya Paolo)
❀ 
Grazie Mille per l'Aiuto ed il Supporto


\ No newline at end of file diff --git a/src/server/models/sendnotif.js b/src/server/models/sendnotif.js index 9b91854..182961e 100755 --- a/src/server/models/sendnotif.js +++ b/src/server/models/sendnotif.js @@ -39,6 +39,9 @@ const sendNotifSchema = new Schema({ type: String, default: '', }, + descr: { + type: String, + }, sendergroup: { // mittente type: String, default: '', @@ -50,9 +53,6 @@ const sendNotifSchema = new Schema({ title: { type: String, }, - descr: { - type: String, - }, openUrl: { type: String, }, @@ -142,6 +142,9 @@ sendNotifSchema.statics.getRecNotif = function (id) { sendNotifSchema.statics.findAllNotifByUsernameIdAndIdApp = function (username, lastdataread, idapp) { const SendNotif = this; + if (!lastdataread) + lastdataread = 0; + return SendNotif.find({ $and: [ { idapp }, @@ -159,13 +162,13 @@ sendNotifSchema.statics.findAllNotifByUsernameIdAndIdApp = function (username, l }; -sendNotifSchema.statics.getDescrAndLinkByRecNotif = async function (recnotif) { +sendNotifSchema.statics.getDescrAndLinkByRecNotif = async function (recnotif, userorig) { const numchars = 80; let newdescr = ''; let mydescr = ''; let myidrec = ''; - let userorig = recnotif.sender; + let sender = recnotif.sender; let tag = ''; try { @@ -185,18 +188,18 @@ sendNotifSchema.statics.getDescrAndLinkByRecNotif = async function (recnotif) { tag = 'newservice'; } } else if (recnotif.typedir === shared_consts.TypeNotifs.TYPEDIR_FRIENDS) { - recnotif.openUrl = '/my/' + userorig; + recnotif.openUrl = '/my/' + sender; if (recnotif.typeid === shared_consts.TypeNotifs.ID_FRIENDS_NEW_REC) { - newdescr = i18n.__('%s asked you for Friendship', userorig, mydescr); + newdescr = i18n.__('%s asked you for Friendship', sender, mydescr); tag = 'newfriend'; } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_FRIENDS_ACCEPTED) { - newdescr = i18n.__('%s accepted your Friendship', userorig, mydescr); + newdescr = i18n.__('%s accepted your Friendship', sender, mydescr); tag = 'acceptedfriend'; } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_FRIENDS_ACCEPTED_MY_REQUEST) { - newdescr = i18n.__('βœ… You have accepted %s\' Friendship request!', userorig, mydescr); + newdescr = i18n.__('βœ… You have accepted %s\' Friendship request!', sender, mydescr); tag = 'acceptedfriend'; } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_FRIENDS_REFUSED) { - newdescr = i18n.__('%s refused your Friendship', userorig, mydescr); + newdescr = i18n.__('%s refused your Friendship', sender, mydescr); tag = 'refusedfriend'; } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_FRIENDS_REPORTED) { tag = 'reportuser'; @@ -204,7 +207,7 @@ sendNotifSchema.statics.getDescrAndLinkByRecNotif = async function (recnotif) { newdescr = i18n.__('FRIEND_REPORTED_YOU', recnotif.paramsObj.username_worked); recnotif.openUrl = '/my/' + recnotif.paramsObj.username_worked; } else if (recnotif.paramsObj.isAdmin) { - newdescr = i18n.__('FRIEND_REPORTED', recnotif.paramsObj.usernameDest, userorig); + newdescr = i18n.__('FRIEND_REPORTED', recnotif.paramsObj.usernameDest, sender); recnotif.openUrl = '/my/' + recnotif.paramsObj.usernameDest; } else { recnotif.openUrl = '/my/' + recnotif.paramsObj.username_action; @@ -212,66 +215,66 @@ sendNotifSchema.statics.getDescrAndLinkByRecNotif = async function (recnotif) { } } } else if (recnotif.typedir === shared_consts.TypeNotifs.TYPEDIR_HANDSHAKE) { - recnotif.openUrl = '/my/' + userorig; + recnotif.openUrl = '/my/' + sender; if (recnotif.typeid === shared_consts.TypeNotifs.ID_HANDSHAKE_ACCEPTED) { - newdescr = i18n.__('HANDSHAKE_SET', userorig, mydescr); + newdescr = i18n.__('HANDSHAKE_SET', sender, mydescr); tag = 'acceptedhandshake'; } } else if (recnotif.typedir === shared_consts.TypeNotifs.TYPEDIR_GROUPS) { tag = 'group'; recnotif.openUrl = '/grp/' + recnotif.paramsObj.groupnameDest; if (recnotif.typeid === shared_consts.TypeNotifs.ID_GROUP_NEW_REC) { - newdescr = i18n.__('GROUP_CREATED', userorig, recnotif.paramsObj.groupnameDest); + newdescr = i18n.__('GROUP_CREATED', sender, recnotif.paramsObj.groupnameDest); } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_GROUP_ACCEPTED) { if (recnotif.paramsObj.isAdmin) { - newdescr = i18n.__('ACCETTATO_NOTIFICA_ADMINS', userorig, recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action); - recnotif.openUrl = '/my/' + userorig; + newdescr = i18n.__('ACCETTATO_NOTIFICA_ADMINS', sender, recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action); + recnotif.openUrl = '/my/' + sender; } else { newdescr = i18n.__('GROUPS_ACCEPTED', recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action); } tag = 'addgroup'; } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_GROUP_REMOVED) { - if (recnotif.paramsObj.username_action === recnotif.paramsObj.usernameDest && userorig === recnotif.paramsObj.usernameDest) { + if (recnotif.paramsObj.username_action === recnotif.paramsObj.usernameDest && sender === recnotif.paramsObj.usernameDest) { newdescr = i18n.__('GROUPS_EXIT_USER_TO_ME', recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action); - } else if (userorig === recnotif.paramsObj.usernameDest) { + } else if (sender === recnotif.paramsObj.usernameDest) { newdescr = i18n.__('GROUPS_REMOVED_TO_ME', recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action); - } else if (userorig === recnotif.paramsObj.username_action) { - newdescr = i18n.__('GROUPS_EXIT_USER', userorig, recnotif.paramsObj.groupnameDest); - recnotif.openUrl = '/my/' + userorig; + } else if (sender === recnotif.paramsObj.username_action) { + newdescr = i18n.__('GROUPS_EXIT_USER', sender, recnotif.paramsObj.groupnameDest); + recnotif.openUrl = '/my/' + sender; } else { - newdescr = i18n.__('GROUPS_REMOVED', userorig, recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action); + newdescr = i18n.__('GROUPS_REMOVED', sender, recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action); } tag = 'remgroup'; } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_GROUP_REFUSED) { - newdescr = i18n.__('GROUPS_REFUSED', userorig, recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action); + newdescr = i18n.__('GROUPS_REFUSED', sender, recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action); tag = 'refgroup'; } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_GROUP_REQUEST_TO_ENTER) { - newdescr = i18n.__('GROUP_REQUEST_TO_ENTER', userorig, recnotif.paramsObj.groupnameDest, recnotif.paramsObj.singleadmin_username); + newdescr = i18n.__('GROUP_REQUEST_TO_ENTER', sender, recnotif.paramsObj.groupnameDest, recnotif.paramsObj.singleadmin_username); tag = 'reqgroups'; // sendnotifPush = false; // non lo rimandare 2 volte ! // telegrambot.askConfirmationUser(idapp, shared_consts.CallFunz.RICHIESTA_GRUPPO, myuser, singleadmin.username, groupname, group._id); } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_GROUP_BLOCK_USER) { - newdescr = i18n.__('RICHIESTA_BLOCCO_GRUPPO', userorig, recnotif.paramsObj.groupnameDest, recnotif.paramsObj.singleadmin_username); + newdescr = i18n.__('RICHIESTA_BLOCCO_GRUPPO', sender, recnotif.paramsObj.groupnameDest, recnotif.paramsObj.singleadmin_username); tag = 'blockgroups'; } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_GROUP_DELETE_USER) { - newdescr = i18n.__('GRUPPO_ELIMINATO', userorig, recnotif.paramsObj.username_action); + newdescr = i18n.__('GRUPPO_ELIMINATO', sender, recnotif.paramsObj.username_action); tag = 'deletegroup'; } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_GROUP_ADDED_ADMIN_OFMYGROUP) { - if (userorig === recnotif.paramsObj.usernameDest) { + if (sender === recnotif.paramsObj.usernameDest) { newdescr = i18n.__('GROUPS_ADDED_ADMIN_GROUP_YOU', recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action); } else { - newdescr = i18n.__('GROUPS_ADDED_ADMIN_GROUP', userorig, recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action); - recnotif.openUrl = '/my/' + userorig; + newdescr = i18n.__('GROUPS_ADDED_ADMIN_GROUP', sender, recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action); + recnotif.openUrl = '/my/' + sender; } tag = 'addadmingrp'; } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_GROUP_REMOVED_ADMIN_OFMYGROUP) { - if (userorig === recnotif.paramsObj.usernameDest) { + if (sender === recnotif.paramsObj.usernameDest) { newdescr = i18n.__('GROUPS_REMOVED_ADMIN_GROUP_YOU', recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action); } else { - newdescr = i18n.__('GROUPS_REMOVED_ADMIN_GROUP', userorig, recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action); - recnotif.openUrl = '/my/' + userorig; + newdescr = i18n.__('GROUPS_REMOVED_ADMIN_GROUP', sender, recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action); + recnotif.openUrl = '/my/' + sender; } tag = 'removeadmingrp'; } @@ -279,20 +282,20 @@ sendNotifSchema.statics.getDescrAndLinkByRecNotif = async function (recnotif) { tag = 'circuit'; recnotif.openUrl = '/circuit/' + recnotif.paramsObj.path; if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_NEW_REC) { - newdescr = i18n.__('CIRCUIT_CREATED', userorig, recnotif.paramsObj.circuitnameDest); + newdescr = i18n.__('CIRCUIT_CREATED', sender, recnotif.paramsObj.circuitnameDest); } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_ACCEPTED) { if (recnotif.paramsObj.isAdmin) { if (recnotif.extrarec.groupname) { newdescr = i18n.__('ACCETTATO_NOTIFICA_ADMINS_CIRCUIT_MYGROUP', recnotif.extrarec.groupname, recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.username_action); } else { - newdescr = i18n.__('ACCETTATO_NOTIFICA_ADMINS_CIRCUIT', userorig, recnotif.paramsObj.circuitnameDest, + newdescr = i18n.__('ACCETTATO_NOTIFICA_ADMINS_CIRCUIT', sender, recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.username_action); } - recnotif.openUrl = '/my/' + userorig; + recnotif.openUrl = '/my/' + sender; } else { - if (userorig === recnotif.paramsObj.usernameDest) { + if (sender === recnotif.paramsObj.usernameDest) { newdescr = i18n.__('CIRCUIT_ACCEPTED', recnotif.paramsObj.username_action, recnotif.paramsObj.circuitnameDest, tools.getHostByIdApp(recnotif.idapp) + recnotif.openUrl); } else { newdescr = i18n.__('CIRCUIT_ACCEPTED_YOU', recnotif.paramsObj.usernameDest, recnotif.paramsObj.circuitnameDest); @@ -300,21 +303,21 @@ sendNotifSchema.statics.getDescrAndLinkByRecNotif = async function (recnotif) { } tag = 'addcircuit'; } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_REMOVED) { - if (recnotif.paramsObj.username_action === recnotif.paramsObj.usernameDest && userorig === recnotif.paramsObj.usernameDest) { + if (recnotif.paramsObj.username_action === recnotif.paramsObj.usernameDest && sender === recnotif.paramsObj.usernameDest) { newdescr = i18n.__('CIRCUIT_EXIT_USER_TO_ME', recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.username_action); - } else if (userorig === recnotif.paramsObj.usernameDest) { + } else if (sender === recnotif.paramsObj.usernameDest) { newdescr = i18n.__('CIRCUIT_REMOVED_TO_ME', recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.username_action); - } else if (userorig === recnotif.paramsObj.username_action) { - newdescr = i18n.__('CIRCUIT_EXIT_USER', userorig, recnotif.paramsObj.circuitnameDest); - recnotif.openUrl = '/my/' + userorig; + } else if (sender === recnotif.paramsObj.username_action) { + newdescr = i18n.__('CIRCUIT_EXIT_USER', sender, recnotif.paramsObj.circuitnameDest); + recnotif.openUrl = '/my/' + sender; } else { - newdescr = i18n.__('CIRCUIT_REMOVED', userorig, recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.username_action); + newdescr = i18n.__('CIRCUIT_REMOVED', sender, recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.username_action); } tag = 'remcircuit'; } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_REFUSED) { if (recnotif.paramsObj.isAdmin) { - newdescr = i18n.__('CIRCUIT_REFUSED_TO_ME', userorig, recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.username_action); + newdescr = i18n.__('CIRCUIT_REFUSED_TO_ME', sender, recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.username_action); } else { newdescr = i18n.__('CIRCUIT_REFUSED', recnotif.paramsObj.username_action, recnotif.paramsObj.circuitnameDest); } @@ -324,36 +327,38 @@ sendNotifSchema.statics.getDescrAndLinkByRecNotif = async function (recnotif) { newdescr = i18n.__('CIRCUIT_REQUEST_TO_ENTER_WITH_GROUP', recnotif.extrarec.groupname, recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.singleadmin_username); } else { - newdescr = i18n.__('CIRCUIT_REQUEST_TO_ENTER', userorig, recnotif.paramsObj.circuitnameDest, + newdescr = i18n.__('CIRCUIT_REQUEST_TO_ENTER', sender, recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.singleadmin_username); } tag = 'reqcircuits'; } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_DELETE_USER) { - newdescr = i18n.__('CIRCUIT_ELIMINATO', userorig, recnotif.paramsObj.username_action); + newdescr = i18n.__('CIRCUIT_ELIMINATO', sender, recnotif.paramsObj.username_action); tag = 'deletecircuit'; } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_ADDED_ADMIN) { - if (userorig === recnotif.paramsObj.usernameDest) { + if (sender === recnotif.paramsObj.usernameDest) { newdescr = i18n.__('CIRCUIT_ADDED_ADMIN_YOU', recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.username_action); } else { - newdescr = i18n.__('CIRCUIT_ADDED_ADMIN', userorig, recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.username_action); - recnotif.openUrl = '/my/' + userorig; + newdescr = i18n.__('CIRCUIT_ADDED_ADMIN', sender, recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.username_action); + recnotif.openUrl = '/my/' + sender; } tag = 'addadmingrp'; } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_REMOVED_ADMIN) { - if (userorig === recnotif.paramsObj.usernameDest) { + if (sender === recnotif.paramsObj.usernameDest) { newdescr = i18n.__('CIRCUIT_REMOVED_ADMIN_YOU', recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.username_action); } else { - newdescr = i18n.__('CIRCUIT_REMOVED_ADMIN', userorig, recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.username_action); - recnotif.openUrl = '/my/' + userorig; + newdescr = i18n.__('CIRCUIT_REMOVED_ADMIN', sender, recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.username_action); + recnotif.openUrl = '/my/' + sender; } tag = 'removeadmincircuit'; } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ) { if (recnotif.paramsObj.extrarec.groupdest) { newdescr = i18n.__('CIRCUIT_SENDCOINSREQ_GROUP', tools.getAhref(recnotif.paramsObj.username_action, await tools.getLinkUserTelegram(recnotif.idapp, recnotif.paramsObj.username_action)), recnotif.paramsObj.extrarec.qty.toString(), recnotif.paramsObj.extrarec.symbol, recnotif.paramsObj.extrarec.groupdest); + } else if (recnotif.paramsObj.extrarec.grouporig && (sender === recnotif.paramsObj.usernameDest)) { + newdescr = i18n.__('CIRCUIT_SENDCOINSREQ_FROM_GROUP_TO_YOU', recnotif.paramsObj.extrarec.grouporig, recnotif.paramsObj.extrarec.qty.toString(), recnotif.paramsObj.extrarec.symbol, recnotif.paramsObj.extrarec.dest); } else if (recnotif.paramsObj.extrarec.grouporig) { - newdescr = i18n.__('CIRCUIT_SENDCOINSREQ_FROM_GROUP', recnotif.paramsObj.extrarec.grouporig, recnotif.paramsObj.extrarec.qty.toString(), recnotif.paramsObj.extrarec.symbol, recnotif.paramsObj.usernameDest); + newdescr = i18n.__('CIRCUIT_SENDCOINSREQ_FROM_GROUP_TO_USER', recnotif.paramsObj.extrarec.grouporig, recnotif.paramsObj.extrarec.qty.toString(), recnotif.paramsObj.extrarec.symbol, recnotif.paramsObj.extrarec.dest); } else { newdescr = i18n.__('CIRCUIT_SENDCOINSREQ', tools.getAhref(recnotif.paramsObj.username_action, await tools.getLinkUserTelegram(recnotif.idapp, recnotif.paramsObj.username_action)), recnotif.paramsObj.extrarec.qty.toString(), recnotif.paramsObj.extrarec.symbol); @@ -363,20 +368,60 @@ sendNotifSchema.statics.getDescrAndLinkByRecNotif = async function (recnotif) { recnotif.openUrl = '/circuit/' + recnotif.paramsObj.path; //++Todo: dove lo mando ? } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ_SENT) { let mydest = recnotif.paramsObj.extrarec.groupdest ? recnotif.paramsObj.extrarec.groupdest : recnotif.paramsObj.extrarec.dest; + let myorig = recnotif.paramsObj.extrarec.grouporig; + + if (myorig) { + if (recnotif.paramsObj.extrarec.groupdest) { + newdescr = i18n.__('CIRCUIT_SENDCOINSREQ_FROM_GROUP_TO_GROUP', myorig, recnotif.paramsObj.extrarec.qty.toString(), + recnotif.paramsObj.extrarec.symbol, mydest); + } else { + newdescr = i18n.__('CIRCUIT_SENDCOINSREQ_FROM_GROUP_TO_USER', myorig, recnotif.paramsObj.extrarec.qty.toString(), + recnotif.paramsObj.extrarec.symbol, mydest); + } + } else { + if (recnotif.paramsObj.extrarec.groupdest) { + newdescr = i18n.__('CIRCUIT_SENDCOINSREQ_TO_GROUP', recnotif.paramsObj.extrarec.qty.toString(), + recnotif.paramsObj.extrarec.symbol, mydest); + } else { + newdescr = i18n.__('CIRCUIT_SENDCOINSREQ_TO_ME', recnotif.paramsObj.extrarec.qty.toString(), + recnotif.paramsObj.extrarec.symbol, mydest); + } + } - newdescr = i18n.__('CIRCUIT_SENDCOINSREQ_TO_ME', recnotif.paramsObj.extrarec.qty.toString(), - recnotif.paramsObj.extrarec.symbol, mydest); tag = 'sendcoin'; recnotif.openUrl = '/circuit/' + recnotif.paramsObj.path; //++Todo: dove lo mando ? } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_COINS_ACCEPTED) { newdescr = i18n.__('ID_CIRCUIT_COINS_ACCEPTED', recnotif.paramsObj.extrarec.qty.toString(), recnotif.paramsObj.extrarec.symbol, - recnotif.paramsObj.username_action) + `\n` + i18n.__('SALDO_UPDATE', recnotif.paramsObj.extrarec.saldoDest, - recnotif.paramsObj.extrarec.symbol - ); + recnotif.paramsObj.username_action) + `\n` + i18n.__('SALDO_UPDATE', recnotif.paramsObj.extrarec.saldoDest, recnotif.paramsObj.extrarec.symbol); + + let mydest = recnotif.paramsObj.extrarec.groupdest ? recnotif.paramsObj.extrarec.groupdest : recnotif.paramsObj.extrarec.dest; + let myorig = recnotif.paramsObj.extrarec.grouporig; + + if (myorig) { + if (recnotif.paramsObj.extrarec.groupdest) { + newdescr = i18n.__('ID_CIRCUIT_COINS_ACCEPTED_FROM_GROUP_TO_GROUP', recnotif.paramsObj.extrarec.qty.toString(), recnotif.paramsObj.extrarec.symbol, + recnotif.paramsObj.username_action, myorig, recnotif.paramsObj.extrarec.groupdest) + `\n` + i18n.__('SALDO_UPDATE', recnotif.paramsObj.extrarec.saldoDest, recnotif.paramsObj.extrarec.symbol); + } else { + newdescr = i18n.__('ID_CIRCUIT_COINS_ACCEPTED_FROM_GROUP_TO_YOU', recnotif.paramsObj.extrarec.qty.toString(), recnotif.paramsObj.extrarec.symbol, + recnotif.paramsObj.username_action, myorig) + `\n` + i18n.__('SALDO_UPDATE', recnotif.paramsObj.extrarec.saldoDest, recnotif.paramsObj.extrarec.symbol); + } + } else { + if (recnotif.paramsObj.extrarec.groupdest) { + newdescr = i18n.__('ID_CIRCUIT_COINS_ACCEPTED_FROM_ME_TO_GROUP', recnotif.paramsObj.extrarec.qty.toString(), recnotif.paramsObj.extrarec.symbol, + recnotif.paramsObj.username_action, recnotif.paramsObj.extrarec.groupdest) + `\n` + i18n.__('SALDO_UPDATE', recnotif.paramsObj.extrarec.saldoDest, recnotif.paramsObj.extrarec.symbol); + } else { + newdescr = i18n.__('ID_CIRCUIT_COINS_ACCEPTED_FROM_ME_TO_YOU', recnotif.paramsObj.extrarec.qty.toString(), recnotif.paramsObj.extrarec.symbol, + recnotif.paramsObj.username_action) + `\n` + i18n.__('SALDO_UPDATE', recnotif.paramsObj.extrarec.saldoDest, recnotif.paramsObj.extrarec.symbol); + } + } + tag = 'sendcoin'; } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_COINS_ACCEPTED_SENT) { - const destinatario = recnotif.paramsObj.extrarec.dest ? recnotif.paramsObj.extrarec.dest : recnotif.paramsObj.extrarec.groupdest; - + let destinatario = recnotif.paramsObj.extrarec.dest ? recnotif.paramsObj.extrarec.dest : recnotif.paramsObj.extrarec.groupdest; + if (!destinatario) { + destinatario = recnotif.paramsObj.username_action + } + newdescr = i18n.__('ID_CIRCUIT_COINS_ACCEPTED_TO_ME', recnotif.paramsObj.extrarec.qty.toString(), recnotif.paramsObj.extrarec.symbol, destinatario) + `\n` + i18n.__('SALDO_UPDATE', recnotif.paramsObj.extrarec.saldoOrig, recnotif.paramsObj.extrarec.symbol); @@ -386,10 +431,10 @@ sendNotifSchema.statics.getDescrAndLinkByRecNotif = async function (recnotif) { recnotif.paramsObj.username_action); tag = 'sendcoin'; } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_COINS_REFUSED_SENT) { - const destinatario = recnotif.paramsObj.extrarec.dest ? recnotif.paramsObj.extrarec.dest : recnotif.paramsObj.extrarec.groupdest; - + let destinatario = recnotif.paramsObj.extrarec.dest ? recnotif.paramsObj.extrarec.dest : recnotif.paramsObj.extrarec.groupdest; + newdescr = i18n.__('ID_CIRCUIT_COINS_REFUSED_TO_ME', recnotif.paramsObj.extrarec.qty.toString(), recnotif.paramsObj.extrarec.symbol, - destinatario); + destinatario); tag = 'sendcoin'; } } @@ -461,7 +506,7 @@ sendNotifSchema.statics.saveAndSendNotif = async function (myrecnotif, req, res, check = tools.checkUserOk(myrecnotif.sendergroup, user ? myrecnotif.sendergroup : req.user.username, res); if (check.exit) return check.ret; - const { myrecout, save } = await SendNotif.updateStatusAndDescr(myrecnotif, false); + const { myrecout, save } = await SendNotif.updateStatusAndDescr(myrecnotif, false, req.user.username); if (!myrecout) return null; @@ -491,13 +536,13 @@ sendNotifSchema.statics.saveAndSendNotif = async function (myrecnotif, req, res, }; -sendNotifSchema.statics.updateStatusAndDescr = async function (myrecnotif, onlysave) { +sendNotifSchema.statics.updateStatusAndDescr = async function (myrecnotif, onlysave, userorig) { const SendNotif = this; try { if (!myrecnotif.openUrl) { // If not exist, then I set openUrl and description - myrecnotif = await this.getDescrAndLinkByRecNotif(myrecnotif); + myrecnotif = await this.getDescrAndLinkByRecNotif(myrecnotif, userorig); } let newstatus = 0; @@ -568,17 +613,23 @@ sendNotifSchema.statics.updateStatusAndDescr = async function (myrecnotif, onlys typeidsearch = shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ_SENT; if (myrecnotif.paramsObj.extrarec.hasOwnProperty('notifIdToUpdate')) idnotiftosearch = myrecnotif.paramsObj.extrarec.notifIdToUpdate; + if (myrecnotif.paramsObj.extrarec.hasOwnProperty('idStatusToSent')) + idnotiftosearch = myrecnotif.paramsObj.extrarec.idStatusToSent; + newstatus = shared_consts.CircuitsNotif.STATUS_COINS_ACCEPTED_SENT; } else if (myrecnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_COINS_REFUSED_SENT) { typeidsearch = shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ_SENT; if (myrecnotif.paramsObj.extrarec.hasOwnProperty('notifIdToUpdate')) idnotiftosearch = myrecnotif.paramsObj.extrarec.notifIdToUpdate; + if (myrecnotif.paramsObj.extrarec.hasOwnProperty('idStatusToSent')) + idnotiftosearch = myrecnotif.paramsObj.extrarec.idStatusToSent; + newstatus = shared_consts.CircuitsNotif.STATUS_COINS_REFUSED_SENT; } } if (newstatus) { - const fields_to_update = { + let fields_to_update = { status: newstatus, read: false, descr: myrecnotif.descr, @@ -603,17 +654,26 @@ sendNotifSchema.statics.updateStatusAndDescr = async function (myrecnotif, onlys _id: idnotiftosearch, status: 0, }; + + fields_to_update = { + status: newstatus, + read: false, + descr: myrecnotif.descr, + datenotif: new Date(), + }; + + + // Cerca il record e se lo trova lo aggiorna + const myrec = await SendNotif.findOneAndUpdate(query, { $set: fields_to_update }, { + new: false, + returnNewDocument: true, + }); + + if (myrec) { + return { myrecout: myrec, save: true }; + } } - // Cerca il record e se lo trova lo aggiorna - const myrec = await SendNotif.findOneAndUpdate(query, { $set: fields_to_update }, { - new: true, - returnNewDocument: true, - }); - - if (myrec) { - return { myrecout: myrec, save: false }; - } } // myrecnotif._id = new ObjectID(); @@ -661,11 +721,11 @@ sendNotifSchema.statics.checkIfCoinsAlreadySent = async function (notifId) { }; -sendNotifSchema.statics.saveNotif = async function (myrecnotif) { +sendNotifSchema.statics.saveNotif = async function (myrecnotif, req) { const SendNotif = this; - const { myrecout, save } = await SendNotif.updateStatusAndDescr(myrecnotif, true); + const { myrecout, save } = await SendNotif.updateStatusAndDescr(myrecnotif, true, req.user.username); if (!myrecout) return null; @@ -818,7 +878,7 @@ sendNotifSchema.statics.sendToTheDestinations = async function (myrecnotifpass, myrecnotifpass.myrectableorig = myrectableorig; } - myrecnotifpass = await this.getDescrAndLinkByRecNotif(myrecnotifpass); + myrecnotifpass = await this.getDescrAndLinkByRecNotif(myrecnotifpass, req.user.username); delete myrecnotifpass._doc['_id']; for (const user of userlist) { @@ -886,7 +946,7 @@ sendNotifSchema.statics.sendToSingleUserDest = async function (myrecnotif, req, : myrecnotif.dest; if (onlysave) { - return await SendNotif.saveNotif(myrecnotif); + return await SendNotif.saveNotif(myrecnotif, req); } else { return await SendNotif.saveAndSendNotif(myrecnotif, req, res, null); } diff --git a/src/server/models/user.js b/src/server/models/user.js index 6e3d397..0f3b2ff 100755 --- a/src/server/models/user.js +++ b/src/server/models/user.js @@ -2608,6 +2608,7 @@ UserSchema.statics.setCircuitCmd = async function (idapp, usernameOrig, circuitn } outres.recnotif = await SendNotif.getRecNotif(extrarec.notifId); + outres.arrrecnotif = await SendNotif.findAllNotifByUsernameIdAndIdApp(username_action, extrarec.lastdr, idapp); } else { outres.cansend = false; diff --git a/src/server/tools/general.js b/src/server/tools/general.js index 4f72632..5d6b1bf 100755 --- a/src/server/tools/general.js +++ b/src/server/tools/general.js @@ -867,13 +867,14 @@ module.exports = { }, - getReqByPar(idapp, usernameOrig) { + getReqByPar(idapp, usernameOrig, groupOrig) { return { body: { idapp: idapp, }, user: { username: usernameOrig, + groupOrig, }, }; }, @@ -1034,7 +1035,7 @@ module.exports = { }, sendNotifCircuitByUsername: async function ( - cmd, idapp, usernameOrig, usernameDest, username_action, + cmd, idapp, usernameOrig, groupOrig, usernameDest, groupDest, username_action, circuitname, path, myreccircuit, isAdmin, username_worked, extrarec) { const { SendNotif } = require('../models/sendnotif'); @@ -1042,7 +1043,9 @@ module.exports = { const telegrambot = require('../telegram/telegrambot'); const { MyGroup } = require('../models/mygroup'); - const req = this.getReqByPar(idapp, usernameOrig); + const req = this.getReqByPar(idapp, usernameOrig, groupOrig); + + let arrris = []; const user = await User.findOne({ idapp, username: usernameDest }, { _id: 1, lang: 1 }); @@ -1051,6 +1054,7 @@ module.exports = { if (user) { lang = user.lang; } + let ris = null; try { let paramsObj = { @@ -1114,25 +1118,99 @@ module.exports = { if (sendnotif && typeid > 0) { // Check if is group: - if (extrarec.groupdest) { + if (groupDest && ( + (cmd !== shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT_SENT) && + (cmd !== shared_consts.CIRCUITCMD.SENDCOINS_REFUSE_SENT) + )) { - let arrusers = await MyGroup.getListAdminsByGroupName(idapp, extrarec.groupdest); + let arrusers = await MyGroup.getListAdminsByGroupName(idapp, groupDest); - let ris = null; + let notiftoUpdate = ''; + let findrecnotif = await SendNotif.findOne({ _id: paramsObj.extrarec.notifId }).lean(); + notiftoUpdate = findrecnotif ? findrecnotif.extrarec.notifIdToUpdate : ''; + // arrnotiftoUpdate = findrecnotif ? findrecnotif.extrarec.arrnotifIdToUpdate : ''; + if (findrecnotif) { + let arrrec = []; + + if (notiftoUpdate) + arrrec = await SendNotif.find({ 'extrarec.notifIdToUpdate': notiftoUpdate }); + // if (arrnotiftoUpdate) + // arrrec = await SendNotif.find({'extrarec.notifIdToUpdate': notiftoUpdate}); + + + for (let rec of arrrec) { + paramsObj.usernameDest = rec.dest; + if ((cmd === shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT) || (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REFUSE)) { + try { + paramsObj.extrarec.notifId = rec._id; + } catch (e) { + } + } + + ris = await SendNotif.createNewNotifToSingleUser(req, null, paramsObj, onlysave, typedir, typeid); + if (!ris) { + console.error('Errore createNewNotifToSingleUser! ', paramsObj.usernameDest, "dest ->", groupDest) + } else { + arrris.push(ris._id); + } - for (let i = 0; i < arrusers.length; i++) { - paramsObj.usernameDest = arrusers[i].username; - ris = await SendNotif.createNewNotifToSingleUser(req, null, paramsObj, onlysave, typedir, typeid); - if (!ris) { - console.error('Errore createNewNotifToSingleUser! ', paramsObj.usernameDest, "dest ->", extrarec.groupdest) } + + } else { + + for (let i = 0; i < arrusers.length; i++) { + paramsObj.usernameDest = arrusers[i].username; + + ris = await SendNotif.createNewNotifToSingleUser(req, null, paramsObj, onlysave, typedir, typeid); + if (!ris) { + console.error('Errore createNewNotifToSingleUser! ', paramsObj.usernameDest, "dest ->", groupDest) + } else { + arrris.push(ris._id); + } + } + } } else { // CREATE NOTIFICATION IN TABLE SENDNOTIF - return await SendNotif.createNewNotifToSingleUser(req, null, paramsObj, onlysave, typedir, typeid); + ris = await SendNotif.createNewNotifToSingleUser(req, null, paramsObj, onlysave, typedir, typeid); + + if ((cmd === shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT) || + (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REFUSE)) { + + if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT) { + typeid = shared_consts.TypeNotifs.ID_CIRCUIT_COINS_ACCEPTED_SENT; + } else if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REFUSE) { + typeid = shared_consts.TypeNotifs.ID_CIRCUIT_COINS_REFUSED_SENT; + } + + let notiftoUpdate = ''; + let findrecnotif = await SendNotif.findOne({ _id: paramsObj.extrarec.notifId }).lean(); + notiftoUpdate = findrecnotif ? findrecnotif.extrarec.notifIdToUpdate : ''; + arrnotiftoUpdate = findrecnotif ? findrecnotif.extrarec.arrnotifIdToUpdate : ''; + if (findrecnotif && notiftoUpdate && arrnotiftoUpdate) { + + for (let myid of arrnotiftoUpdate) { + let rec = await SendNotif.findOne({ _id: myid }).lean(); + if (rec && rec.status === 0) { + paramsObj.usernameDest = rec.dest; + paramsObj.extrarec.idStatusToSent = rec._id; + + + ris = await SendNotif.createNewNotifToSingleUser(req, null, paramsObj, onlysave, typedir, typeid); + if (!ris) { + console.error('Errore createNewNotifToSingleUser! ', paramsObj.usernameDest, "dest ->", groupDest) + } + } + + } + } + + } } } + + return { recnotif: ris, arrris }; } catch (e) { console.log(e.message); } @@ -1179,6 +1257,7 @@ module.exports = { sendNotificationByCircuit: async function (idapp, usernameOrig, circuitname, cmd, value, telegram, username_action, extrarec) { const { Circuit } = require('../models/circuit'); + const { SendNotif } = require('../models/sendnotif'); const circuit = await Circuit.findOne({ idapp, name: circuitname }, { _id: 1, admins: 1, createdBy: 1, path: 1 }).lean(); if (!circuit) @@ -1195,41 +1274,75 @@ module.exports = { if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REQ || cmd === shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT || cmd === shared_consts.CIRCUITCMD.SENDCOINS_REFUSE) { + let extrarecorig = { ...extrarec }; + let temp = '' + temp = extrarecorig.groupdest + extrarecorig.groupdest = extrarecorig.grouporig + groupOrig = extrarec.grouporig + // extrarecorig.grouporig = temp + + let arrris = []; let recnotif = null; + if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REQ) { - recnotif = await this.sendNotifCircuitByUsername(shared_consts.CIRCUITCMD.SENDCOINS_REQ_SENT, idapp, extrarec.dest, usernameOrig, + // msg al Mittente (o mittenti del 'groupOrig') "Stai inviando X RIS" + let res = await this.sendNotifCircuitByUsername(shared_consts.CIRCUITCMD.SENDCOINS_REQ_SENT, idapp, extrarec.dest, extrarec.groupdest, usernameOrig, groupOrig, username_action, circuitname, circuit.path, null, false, '', extrarec); + + if (res) { + recnotif = res.recnotif; + arrris = res.arrris; + } } else if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT) { - await this.sendNotifCircuitByUsername(shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT_SENT, idapp, extrarec.dest, usernameOrig, + // msg ai MITTENTI: "X RIS sono stati accettati da Destinatario" + await this.sendNotifCircuitByUsername(shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT_SENT, idapp, extrarec.dest, extrarec.groupdest, usernameOrig, groupOrig, username_action, circuitname, circuit.path, null, false, '', extrarec); } else if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REFUSE) { - await this.sendNotifCircuitByUsername(shared_consts.CIRCUITCMD.SENDCOINS_REFUSE_SENT, idapp, extrarec.dest, usernameOrig, + await this.sendNotifCircuitByUsername(shared_consts.CIRCUITCMD.SENDCOINS_REFUSE_SENT, idapp, extrarec.dest, extrarec.groupdest, usernameOrig, groupOrig, username_action, circuitname, circuit.path, null, false, '', extrarec); } if (recnotif) extrarec.notifIdToUpdate = recnotif._id; + if (arrris) + extrarec.arrnotifIdToUpdate = arrris; - ris = await this.sendNotifCircuitByUsername(cmd, idapp, usernameOrig, extrarec.dest, username_action, circuitname, circuit.path, + let usernametoOrigUse = usernameOrig + if (extrarec.groupname) { + usernametoOrigUse = '' + } + ris = await this.sendNotifCircuitByUsername(cmd, idapp, usernametoOrigUse, groupOrig, extrarec.dest, extrarec.groupdest, username_action, circuitname, circuit.path, null, false, '', extrarec); + if (arrris && ris && ris.recnotif) { + for (const rec of arrris) { + let obj = { + 'extrarec.notifIdToUpdate': ris.recnotif._id + }; + + await SendNotif.findOneAndUpdate({ _id: rec._id }, { $set: obj }, { new: false }); + } + } + extrarec.notifIdToUpdate = ''; - if (ris) + if (ris.recnotif) inviato = true; // ++Todo: Inviare anche agli Admin ?! } else { + const groupOrig = '' //++Todo: extrarec.groupOrig + for (const singleadmin of circuit.admins) { try { if (singleadmin.username) { if (usernameOrig === singleadmin.username) giainviato = true; - await this.sendNotifCircuitByUsername(cmd, idapp, usernameOrig, singleadmin.username, username_action, circuitname, + await this.sendNotifCircuitByUsername(cmd, idapp, usernameOrig, groupOrig, singleadmin.username, '', username_action, circuitname, circuit.path, circuit, true, '', extrarec); inviato = true; } @@ -1240,15 +1353,15 @@ module.exports = { if (!giainviato && cmd !== shared_consts.CIRCUITCMD.REQ) { // SEND TO THE USER DEST THE NOTIFICATION - ris = await this.sendNotifCircuitByUsername(cmd, idapp, usernameOrig, usernameOrig, username_action, circuitname, circuit.path, + ris = await this.sendNotifCircuitByUsername(cmd, idapp, usernameOrig, groupOrig, usernameOrig, '', username_action, circuitname, circuit.path, null, false, '', extrarec); - if (ris) + if (ris.recnotif) inviato = true; } } - return { ris, inviato }; + return { ris: ris.recnotif, inviato }; } catch (e) { console.error('sendNotificationByCircuit: ', e); diff --git a/src/server/tools/shared_nodejs.js b/src/server/tools/shared_nodejs.js index 5743a2e..d8816ec 100755 --- a/src/server/tools/shared_nodejs.js +++ b/src/server/tools/shared_nodejs.js @@ -355,6 +355,7 @@ module.exports = { }, CircuitsNotif: { + STATUS_NONE: 0, STATUS_NEW: 51, STATUS_ACCEPTED: 53, STATUS_REFUSED: 54,