Conto Comunitario all'interno di un Circuito

This commit is contained in:
Surya Paolo
2023-01-21 19:02:19 +01:00
parent 8e7b9fb5bd
commit b9e4dbbaec
7 changed files with 403 additions and 114 deletions

View File

@@ -58,8 +58,15 @@
"CIRCUIT_REMOVED_TO_ME": "❌ Sei stato rimosso dal Circuito %s (da parte di %s)", "CIRCUIT_REMOVED_TO_ME": "❌ Sei stato rimosso dal Circuito %s (da parte di %s)",
"CIRCUIT_SENDCOINSREQ": "%s ti sta inviando <strong>%s %s</strong>.", "CIRCUIT_SENDCOINSREQ": "%s ti sta inviando <strong>%s %s</strong>.",
"CIRCUIT_SENDCOINSREQ_GROUP": "%s sta inviando <strong>%s %s</strong> al Conto Comunitario '%s'.", "CIRCUIT_SENDCOINSREQ_GROUP": "%s sta inviando <strong>%s %s</strong> al Conto Comunitario '%s'.",
"CIRCUIT_SENDCOINSREQ_FROM_GROUP": "il conto comunitario '%s' sta inviando <strong>%s %s</strong> a %s.", "CIRCUIT_SENDCOINSREQ_FROM_GROUP_TO_USER": "il conto comunitario '%s' sta inviando <strong>%s %s</strong> a %s.",
"CIRCUIT_SENDCOINSREQ_FROM_GROUP_TO_YOU": "il conto comunitario '%s' ti sta inviando <strong>%s %s</strong>",
"CIRCUIT_SENDCOINSREQ_FROM_GROUP_TO_GROUP": "il conto comunitario '%s' sta inviando <strong>%s %s</strong> al conto Comunitario %s.",
"CIRCUIT_SENDCOINSREQ_TO_ME": "Stai inviando <strong>%s %s</strong> a %s. \nIl destinatario deve accettare la transazione.", "CIRCUIT_SENDCOINSREQ_TO_ME": "Stai inviando <strong>%s %s</strong> a %s. \nIl destinatario deve accettare la transazione.",
"CIRCUIT_SENDCOINSREQ_TO_GROUP": "Stai inviando <strong>%s %s</strong> al Conto Comunitario %s. \nIl destinatario deve accettare la transazione.",
"ID_CIRCUIT_COINS_ACCEPTED_FROM_GROUP_TO_YOU": "<strong>%s %s</strong> accettati da %s (del Conto Comunitario %s).",
"ID_CIRCUIT_COINS_ACCEPTED_FROM_GROUP_TO_GROUP": "<strong>%s %s</strong> accettati da %s del Conto Comunitario %s al Conto Comunitario %s.",
"ID_CIRCUIT_COINS_ACCEPTED_FROM_ME_TO_GROUP": "<strong>%s %s</strong> accettati da %s (per il Conto Comunitario %s).",
"ID_CIRCUIT_COINS_ACCEPTED_FROM_ME_TO_YOU": "<strong>%s %s</strong> accettati da %s.",
"ID_CIRCUIT_COINS_ACCEPTED": "<strong>%s %s</strong> accettati da %s.", "ID_CIRCUIT_COINS_ACCEPTED": "<strong>%s %s</strong> accettati da %s.",
"SALDO_UPDATE": "[Saldo <strong>%s %s</strong>]", "SALDO_UPDATE": "[Saldo <strong>%s %s</strong>]",
"ID_CIRCUIT_COINS_ACCEPTED_TO_ME": "<strong>%s %s</strong> sono stati accettati da %s.", "ID_CIRCUIT_COINS_ACCEPTED_TO_ME": "<strong>%s %s</strong> sono stati accettati da %s.",

View File

@@ -173,6 +173,29 @@ MovementSchema.statics.getQueryMovsByCircuitId = async function(idapp, username,
}, },
}, },
{$unwind: '$userfrom'}, {$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: { $lookup: {
from: 'accounts', from: 'accounts',
@@ -183,26 +206,26 @@ MovementSchema.statics.getQueryMovsByCircuitId = async function(idapp, username,
}, },
{$unwind: '$accto'}, {$unwind: '$accto'},
{ {
'$lookup': { $lookup: {
'from': 'circuits', from: 'circuits',
'localField': 'accfrom.circuitId', localField: 'accfrom.circuitId',
'foreignField': '_id', foreignField: '_id',
'as': 'circuitfrom', as: 'circuitfrom',
}, },
}, },
{ {
'$unwind': '$circuitfrom', $unwind: '$circuitfrom',
}, },
{ {
'$lookup': { $lookup: {
'from': 'circuits', from: 'circuits',
'localField': 'accto.circuitId', localField: 'accto.circuitId',
'foreignField': '_id', foreignField: '_id',
'as': 'circuitto', as: 'circuitto',
}, },
}, },
{ {
'$unwind': '$circuitto', $unwind: '$circuitto',
}, },
{ {
$lookup: { $lookup: {
@@ -227,6 +250,29 @@ MovementSchema.statics.getQueryMovsByCircuitId = async function(idapp, username,
}, },
}, },
{$unwind: '$userto'}, {$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: $project:
{ {
@@ -240,6 +286,8 @@ MovementSchema.statics.getQueryMovsByCircuitId = async function(idapp, username,
'userfrom.profile.img': 1, 'userfrom.profile.img': 1,
'userto.username': 1, 'userto.username': 1,
'userto.profile.img': 1, 'userto.profile.img': 1,
'groupfrom.groupname': 1,
'groupto.groupname': 1,
}, },
}, },
@@ -304,6 +352,34 @@ MovementSchema.statics.getQueryAllUsersMovsByCircuitId = async function(idapp, c
preserveNullAndEmptyArrays: true, 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: { $lookup: {
from: 'accounts', from: 'accounts',
@@ -377,6 +453,34 @@ MovementSchema.statics.getQueryAllUsersMovsByCircuitId = async function(idapp, c
preserveNullAndEmptyArrays: true, 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: $project:
{ {
@@ -390,7 +494,9 @@ MovementSchema.statics.getQueryAllUsersMovsByCircuitId = async function(idapp, c
'userfrom.profile.img': 1, 'userfrom.profile.img': 1,
'userto.username': 1, 'userto.username': 1,
'userto.profile.img': 1, 'userto.profile.img': 1,
}, 'groupfrom.groupname': 1,
'groupto.groupname': 1,
},
}, },
]; ];

View File

@@ -0,0 +1 @@
<div class="landing" data-v-313f9fef=""><section data-v-313f9fef=""><div class="row justify-between items-start q-col-gutter-sm" data-v-313f9fef=""><div class="col-12" data-v-313f9fef=""><div class="feature-item" data-v-313f9fef="" style="margin-top: 0px !important;"><div class="text-big" data-v-313f9fef="" style="margin: 0px !important; padding: 2px !important;">Come posso sostenere il progetto <b>Riso.app</b>?</div><p class="feat-descr" data-v-313f9fef=""></p><ul class="mylist" style="padding-left: 20px;"><li>📱<b>Condividendo la APP</b> a tutti coloro che vogliono far parte insieme della crescita e sviluppo di una Nuova Era.</li><li>👥 Aiutando a creare Gruppi Territoriali nella vostra città, impegnandosi a realizzare progetti per il Bene Comune, in onore ai principi Amorevoli e di condivisione.</li><li>🌱 Sostenendo le persone attorno a voi, e rispettando la nostra vera Casa: Madre Natura e Tutti gli Esseri Viventi. ❤️</li><li>👨🏻‍💻 Con una <b>piccola donazione</b> per le spese dei Server, manutenzione e per i continui sviluppi e miglioramenti.</li></ul>1) Tramite <b><a href="https://paypal.me/paoloarena" target="_blank"><font size="4">Paypal</font></a></b><br>2) Tramite <b><a href="https://www.satispay.com/app/match/link/money-box/S6Y-SVN--62712D42-35B0-4BB9-8511-410C2AB8CD45" target="_blank"><font size="4">Satispay</font></a></b><br>In alternativa scegli tu una forma di scambio (auto-produzioni di cibo) da donare (per info: <a href="https://t.me/surya1977" target="_blank">Surya Paolo</a>)<br><span style="color: red; font-size: 2rem;"></span>&nbsp;<br>Grazie Mille per l'Aiuto ed il Supporto<br><p></p></div><div class="feature-item" data-v-313f9fef="" style="margin-top: 0px !important;"><br></div></div></div></section></div>

View File

@@ -39,6 +39,9 @@ const sendNotifSchema = new Schema({
type: String, type: String,
default: '', default: '',
}, },
descr: {
type: String,
},
sendergroup: { // mittente sendergroup: { // mittente
type: String, type: String,
default: '', default: '',
@@ -50,9 +53,6 @@ const sendNotifSchema = new Schema({
title: { title: {
type: String, type: String,
}, },
descr: {
type: String,
},
openUrl: { openUrl: {
type: String, type: String,
}, },
@@ -142,6 +142,9 @@ sendNotifSchema.statics.getRecNotif = function (id) {
sendNotifSchema.statics.findAllNotifByUsernameIdAndIdApp = function (username, lastdataread, idapp) { sendNotifSchema.statics.findAllNotifByUsernameIdAndIdApp = function (username, lastdataread, idapp) {
const SendNotif = this; const SendNotif = this;
if (!lastdataread)
lastdataread = 0;
return SendNotif.find({ return SendNotif.find({
$and: [ $and: [
{ idapp }, { 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; const numchars = 80;
let newdescr = ''; let newdescr = '';
let mydescr = ''; let mydescr = '';
let myidrec = ''; let myidrec = '';
let userorig = recnotif.sender; let sender = recnotif.sender;
let tag = ''; let tag = '';
try { try {
@@ -185,18 +188,18 @@ sendNotifSchema.statics.getDescrAndLinkByRecNotif = async function (recnotif) {
tag = 'newservice'; tag = 'newservice';
} }
} else if (recnotif.typedir === shared_consts.TypeNotifs.TYPEDIR_FRIENDS) { } 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) { if (recnotif.typeid === shared_consts.TypeNotifs.ID_FRIENDS_NEW_REC) {
newdescr = i18n.__('<strong>%s</strong> asked you for Friendship', userorig, mydescr); newdescr = i18n.__('<strong>%s</strong> asked you for Friendship', sender, mydescr);
tag = 'newfriend'; tag = 'newfriend';
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_FRIENDS_ACCEPTED) { } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_FRIENDS_ACCEPTED) {
newdescr = i18n.__('<strong>%s</strong> accepted your Friendship', userorig, mydescr); newdescr = i18n.__('<strong>%s</strong> accepted your Friendship', sender, mydescr);
tag = 'acceptedfriend'; tag = 'acceptedfriend';
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_FRIENDS_ACCEPTED_MY_REQUEST) { } 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'; tag = 'acceptedfriend';
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_FRIENDS_REFUSED) { } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_FRIENDS_REFUSED) {
newdescr = i18n.__('<strong>%s</strong> refused your Friendship', userorig, mydescr); newdescr = i18n.__('<strong>%s</strong> refused your Friendship', sender, mydescr);
tag = 'refusedfriend'; tag = 'refusedfriend';
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_FRIENDS_REPORTED) { } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_FRIENDS_REPORTED) {
tag = 'reportuser'; tag = 'reportuser';
@@ -204,7 +207,7 @@ sendNotifSchema.statics.getDescrAndLinkByRecNotif = async function (recnotif) {
newdescr = i18n.__('FRIEND_REPORTED_YOU', recnotif.paramsObj.username_worked); newdescr = i18n.__('FRIEND_REPORTED_YOU', recnotif.paramsObj.username_worked);
recnotif.openUrl = '/my/' + recnotif.paramsObj.username_worked; recnotif.openUrl = '/my/' + recnotif.paramsObj.username_worked;
} else if (recnotif.paramsObj.isAdmin) { } 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; recnotif.openUrl = '/my/' + recnotif.paramsObj.usernameDest;
} else { } else {
recnotif.openUrl = '/my/' + recnotif.paramsObj.username_action; 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) { } 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) { if (recnotif.typeid === shared_consts.TypeNotifs.ID_HANDSHAKE_ACCEPTED) {
newdescr = i18n.__('HANDSHAKE_SET', userorig, mydescr); newdescr = i18n.__('HANDSHAKE_SET', sender, mydescr);
tag = 'acceptedhandshake'; tag = 'acceptedhandshake';
} }
} else if (recnotif.typedir === shared_consts.TypeNotifs.TYPEDIR_GROUPS) { } else if (recnotif.typedir === shared_consts.TypeNotifs.TYPEDIR_GROUPS) {
tag = 'group'; tag = 'group';
recnotif.openUrl = '/grp/' + recnotif.paramsObj.groupnameDest; recnotif.openUrl = '/grp/' + recnotif.paramsObj.groupnameDest;
if (recnotif.typeid === shared_consts.TypeNotifs.ID_GROUP_NEW_REC) { 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) { } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_GROUP_ACCEPTED) {
if (recnotif.paramsObj.isAdmin) { if (recnotif.paramsObj.isAdmin) {
newdescr = i18n.__('ACCETTATO_NOTIFICA_ADMINS', userorig, recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action); newdescr = i18n.__('ACCETTATO_NOTIFICA_ADMINS', sender, recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action);
recnotif.openUrl = '/my/' + userorig; recnotif.openUrl = '/my/' + sender;
} else { } else {
newdescr = i18n.__('GROUPS_ACCEPTED', recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action); newdescr = i18n.__('GROUPS_ACCEPTED', recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action);
} }
tag = 'addgroup'; tag = 'addgroup';
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_GROUP_REMOVED) { } 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); 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); newdescr = i18n.__('GROUPS_REMOVED_TO_ME', recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action);
} else if (userorig === recnotif.paramsObj.username_action) { } else if (sender === recnotif.paramsObj.username_action) {
newdescr = i18n.__('GROUPS_EXIT_USER', userorig, recnotif.paramsObj.groupnameDest); newdescr = i18n.__('GROUPS_EXIT_USER', sender, recnotif.paramsObj.groupnameDest);
recnotif.openUrl = '/my/' + userorig; recnotif.openUrl = '/my/' + sender;
} else { } 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'; tag = 'remgroup';
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_GROUP_REFUSED) { } 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'; tag = 'refgroup';
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_GROUP_REQUEST_TO_ENTER) { } 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'; tag = 'reqgroups';
// sendnotifPush = false; // non lo rimandare 2 volte ! // sendnotifPush = false; // non lo rimandare 2 volte !
// telegrambot.askConfirmationUser(idapp, shared_consts.CallFunz.RICHIESTA_GRUPPO, myuser, singleadmin.username, groupname, group._id); // 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) { } 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'; tag = 'blockgroups';
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_GROUP_DELETE_USER) { } 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'; tag = 'deletegroup';
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_GROUP_ADDED_ADMIN_OFMYGROUP) { } 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); newdescr = i18n.__('GROUPS_ADDED_ADMIN_GROUP_YOU', recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action);
} else { } else {
newdescr = i18n.__('GROUPS_ADDED_ADMIN_GROUP', userorig, recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action); newdescr = i18n.__('GROUPS_ADDED_ADMIN_GROUP', sender, recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action);
recnotif.openUrl = '/my/' + userorig; recnotif.openUrl = '/my/' + sender;
} }
tag = 'addadmingrp'; tag = 'addadmingrp';
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_GROUP_REMOVED_ADMIN_OFMYGROUP) { } 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); newdescr = i18n.__('GROUPS_REMOVED_ADMIN_GROUP_YOU', recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action);
} else { } else {
newdescr = i18n.__('GROUPS_REMOVED_ADMIN_GROUP', userorig, recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action); newdescr = i18n.__('GROUPS_REMOVED_ADMIN_GROUP', sender, recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action);
recnotif.openUrl = '/my/' + userorig; recnotif.openUrl = '/my/' + sender;
} }
tag = 'removeadmingrp'; tag = 'removeadmingrp';
} }
@@ -279,20 +282,20 @@ sendNotifSchema.statics.getDescrAndLinkByRecNotif = async function (recnotif) {
tag = 'circuit'; tag = 'circuit';
recnotif.openUrl = '/circuit/' + recnotif.paramsObj.path; recnotif.openUrl = '/circuit/' + recnotif.paramsObj.path;
if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_NEW_REC) { 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) { } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_ACCEPTED) {
if (recnotif.paramsObj.isAdmin) { if (recnotif.paramsObj.isAdmin) {
if (recnotif.extrarec.groupname) { if (recnotif.extrarec.groupname) {
newdescr = i18n.__('ACCETTATO_NOTIFICA_ADMINS_CIRCUIT_MYGROUP', recnotif.extrarec.groupname, recnotif.paramsObj.circuitnameDest, newdescr = i18n.__('ACCETTATO_NOTIFICA_ADMINS_CIRCUIT_MYGROUP', recnotif.extrarec.groupname, recnotif.paramsObj.circuitnameDest,
recnotif.paramsObj.username_action); recnotif.paramsObj.username_action);
} else { } 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.paramsObj.username_action);
} }
recnotif.openUrl = '/my/' + userorig; recnotif.openUrl = '/my/' + sender;
} else { } 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); newdescr = i18n.__('CIRCUIT_ACCEPTED', recnotif.paramsObj.username_action, recnotif.paramsObj.circuitnameDest, tools.getHostByIdApp(recnotif.idapp) + recnotif.openUrl);
} else { } else {
newdescr = i18n.__('CIRCUIT_ACCEPTED_YOU', recnotif.paramsObj.usernameDest, recnotif.paramsObj.circuitnameDest); newdescr = i18n.__('CIRCUIT_ACCEPTED_YOU', recnotif.paramsObj.usernameDest, recnotif.paramsObj.circuitnameDest);
@@ -300,21 +303,21 @@ sendNotifSchema.statics.getDescrAndLinkByRecNotif = async function (recnotif) {
} }
tag = 'addcircuit'; tag = 'addcircuit';
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_REMOVED) { } 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); 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); newdescr = i18n.__('CIRCUIT_REMOVED_TO_ME', recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.username_action);
} else if (userorig === recnotif.paramsObj.username_action) { } else if (sender === recnotif.paramsObj.username_action) {
newdescr = i18n.__('CIRCUIT_EXIT_USER', userorig, recnotif.paramsObj.circuitnameDest); newdescr = i18n.__('CIRCUIT_EXIT_USER', sender, recnotif.paramsObj.circuitnameDest);
recnotif.openUrl = '/my/' + userorig; recnotif.openUrl = '/my/' + sender;
} else { } 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'; tag = 'remcircuit';
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_REFUSED) { } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_REFUSED) {
if (recnotif.paramsObj.isAdmin) { 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 { } else {
newdescr = i18n.__('CIRCUIT_REFUSED', recnotif.paramsObj.username_action, recnotif.paramsObj.circuitnameDest); 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, newdescr = i18n.__('CIRCUIT_REQUEST_TO_ENTER_WITH_GROUP', recnotif.extrarec.groupname, recnotif.paramsObj.circuitnameDest,
recnotif.paramsObj.singleadmin_username); recnotif.paramsObj.singleadmin_username);
} else { } 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); recnotif.paramsObj.singleadmin_username);
} }
tag = 'reqcircuits'; tag = 'reqcircuits';
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_DELETE_USER) { } 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'; tag = 'deletecircuit';
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_ADDED_ADMIN) { } 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); newdescr = i18n.__('CIRCUIT_ADDED_ADMIN_YOU', recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.username_action);
} else { } else {
newdescr = i18n.__('CIRCUIT_ADDED_ADMIN', userorig, recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.username_action); newdescr = i18n.__('CIRCUIT_ADDED_ADMIN', sender, recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.username_action);
recnotif.openUrl = '/my/' + userorig; recnotif.openUrl = '/my/' + sender;
} }
tag = 'addadmingrp'; tag = 'addadmingrp';
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_REMOVED_ADMIN) { } 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); newdescr = i18n.__('CIRCUIT_REMOVED_ADMIN_YOU', recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.username_action);
} else { } else {
newdescr = i18n.__('CIRCUIT_REMOVED_ADMIN', userorig, recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.username_action); newdescr = i18n.__('CIRCUIT_REMOVED_ADMIN', sender, recnotif.paramsObj.circuitnameDest, recnotif.paramsObj.username_action);
recnotif.openUrl = '/my/' + userorig; recnotif.openUrl = '/my/' + sender;
} }
tag = 'removeadmincircuit'; tag = 'removeadmincircuit';
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ) { } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ) {
if (recnotif.paramsObj.extrarec.groupdest) { 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(), 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); 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) { } 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 { } 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(), 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); recnotif.paramsObj.extrarec.symbol);
@@ -363,20 +368,60 @@ sendNotifSchema.statics.getDescrAndLinkByRecNotif = async function (recnotif) {
recnotif.openUrl = '/circuit/' + recnotif.paramsObj.path; //++Todo: dove lo mando ? recnotif.openUrl = '/circuit/' + recnotif.paramsObj.path; //++Todo: dove lo mando ?
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ_SENT) { } 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 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'; tag = 'sendcoin';
recnotif.openUrl = '/circuit/' + recnotif.paramsObj.path; //++Todo: dove lo mando ? recnotif.openUrl = '/circuit/' + recnotif.paramsObj.path; //++Todo: dove lo mando ?
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_COINS_ACCEPTED) { } 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, 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.username_action) + `\n` + i18n.__('SALDO_UPDATE', recnotif.paramsObj.extrarec.saldoDest, recnotif.paramsObj.extrarec.symbol);
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'; tag = 'sendcoin';
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_COINS_ACCEPTED_SENT) { } 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(), 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, destinatario) + `\n` + i18n.__('SALDO_UPDATE', recnotif.paramsObj.extrarec.saldoOrig,
recnotif.paramsObj.extrarec.symbol); recnotif.paramsObj.extrarec.symbol);
@@ -386,10 +431,10 @@ sendNotifSchema.statics.getDescrAndLinkByRecNotif = async function (recnotif) {
recnotif.paramsObj.username_action); recnotif.paramsObj.username_action);
tag = 'sendcoin'; tag = 'sendcoin';
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_COINS_REFUSED_SENT) { } 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, newdescr = i18n.__('ID_CIRCUIT_COINS_REFUSED_TO_ME', recnotif.paramsObj.extrarec.qty.toString(), recnotif.paramsObj.extrarec.symbol,
destinatario); destinatario);
tag = 'sendcoin'; 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); check = tools.checkUserOk(myrecnotif.sendergroup, user ? myrecnotif.sendergroup : req.user.username, res);
if (check.exit) return check.ret; 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) if (!myrecout)
return null; 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; const SendNotif = this;
try { try {
if (!myrecnotif.openUrl) { if (!myrecnotif.openUrl) {
// If not exist, then I set openUrl and description // If not exist, then I set openUrl and description
myrecnotif = await this.getDescrAndLinkByRecNotif(myrecnotif); myrecnotif = await this.getDescrAndLinkByRecNotif(myrecnotif, userorig);
} }
let newstatus = 0; let newstatus = 0;
@@ -568,17 +613,23 @@ sendNotifSchema.statics.updateStatusAndDescr = async function (myrecnotif, onlys
typeidsearch = shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ_SENT; typeidsearch = shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ_SENT;
if (myrecnotif.paramsObj.extrarec.hasOwnProperty('notifIdToUpdate')) if (myrecnotif.paramsObj.extrarec.hasOwnProperty('notifIdToUpdate'))
idnotiftosearch = myrecnotif.paramsObj.extrarec.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; newstatus = shared_consts.CircuitsNotif.STATUS_COINS_ACCEPTED_SENT;
} else if (myrecnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_COINS_REFUSED_SENT) { } else if (myrecnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_COINS_REFUSED_SENT) {
typeidsearch = shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ_SENT; typeidsearch = shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ_SENT;
if (myrecnotif.paramsObj.extrarec.hasOwnProperty('notifIdToUpdate')) if (myrecnotif.paramsObj.extrarec.hasOwnProperty('notifIdToUpdate'))
idnotiftosearch = myrecnotif.paramsObj.extrarec.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; newstatus = shared_consts.CircuitsNotif.STATUS_COINS_REFUSED_SENT;
} }
} }
if (newstatus) { if (newstatus) {
const fields_to_update = { let fields_to_update = {
status: newstatus, status: newstatus,
read: false, read: false,
descr: myrecnotif.descr, descr: myrecnotif.descr,
@@ -603,17 +654,26 @@ sendNotifSchema.statics.updateStatusAndDescr = async function (myrecnotif, onlys
_id: idnotiftosearch, _id: idnotiftosearch,
status: 0, 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(); // 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 SendNotif = this;
const { myrecout, save } = await SendNotif.updateStatusAndDescr(myrecnotif, true); const { myrecout, save } = await SendNotif.updateStatusAndDescr(myrecnotif, true, req.user.username);
if (!myrecout) if (!myrecout)
return null; return null;
@@ -818,7 +878,7 @@ sendNotifSchema.statics.sendToTheDestinations = async function (myrecnotifpass,
myrecnotifpass.myrectableorig = myrectableorig; myrecnotifpass.myrectableorig = myrectableorig;
} }
myrecnotifpass = await this.getDescrAndLinkByRecNotif(myrecnotifpass); myrecnotifpass = await this.getDescrAndLinkByRecNotif(myrecnotifpass, req.user.username);
delete myrecnotifpass._doc['_id']; delete myrecnotifpass._doc['_id'];
for (const user of userlist) { for (const user of userlist) {
@@ -886,7 +946,7 @@ sendNotifSchema.statics.sendToSingleUserDest = async function (myrecnotif, req,
: myrecnotif.dest; : myrecnotif.dest;
if (onlysave) { if (onlysave) {
return await SendNotif.saveNotif(myrecnotif); return await SendNotif.saveNotif(myrecnotif, req);
} else { } else {
return await SendNotif.saveAndSendNotif(myrecnotif, req, res, null); return await SendNotif.saveAndSendNotif(myrecnotif, req, res, null);
} }

View File

@@ -2608,6 +2608,7 @@ UserSchema.statics.setCircuitCmd = async function (idapp, usernameOrig, circuitn
} }
outres.recnotif = await SendNotif.getRecNotif(extrarec.notifId); outres.recnotif = await SendNotif.getRecNotif(extrarec.notifId);
outres.arrrecnotif = await SendNotif.findAllNotifByUsernameIdAndIdApp(username_action, extrarec.lastdr, idapp);
} else { } else {
outres.cansend = false; outres.cansend = false;

View File

@@ -867,13 +867,14 @@ module.exports = {
}, },
getReqByPar(idapp, usernameOrig) { getReqByPar(idapp, usernameOrig, groupOrig) {
return { return {
body: { body: {
idapp: idapp, idapp: idapp,
}, },
user: { user: {
username: usernameOrig, username: usernameOrig,
groupOrig,
}, },
}; };
}, },
@@ -1034,7 +1035,7 @@ module.exports = {
}, },
sendNotifCircuitByUsername: async function ( sendNotifCircuitByUsername: async function (
cmd, idapp, usernameOrig, usernameDest, username_action, cmd, idapp, usernameOrig, groupOrig, usernameDest, groupDest, username_action,
circuitname, path, myreccircuit, isAdmin, username_worked, extrarec) { circuitname, path, myreccircuit, isAdmin, username_worked, extrarec) {
const { SendNotif } = require('../models/sendnotif'); const { SendNotif } = require('../models/sendnotif');
@@ -1042,7 +1043,9 @@ module.exports = {
const telegrambot = require('../telegram/telegrambot'); const telegrambot = require('../telegram/telegrambot');
const { MyGroup } = require('../models/mygroup'); 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 }, const user = await User.findOne({ idapp, username: usernameDest },
{ _id: 1, lang: 1 }); { _id: 1, lang: 1 });
@@ -1051,6 +1054,7 @@ module.exports = {
if (user) { if (user) {
lang = user.lang; lang = user.lang;
} }
let ris = null;
try { try {
let paramsObj = { let paramsObj = {
@@ -1114,25 +1118,99 @@ module.exports = {
if (sendnotif && typeid > 0) { if (sendnotif && typeid > 0) {
// Check if is group: // 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 { } else {
// CREATE NOTIFICATION IN TABLE SENDNOTIF // 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) { } catch (e) {
console.log(e.message); console.log(e.message);
} }
@@ -1179,6 +1257,7 @@ module.exports = {
sendNotificationByCircuit: async function (idapp, usernameOrig, circuitname, cmd, value, telegram, username_action, extrarec) { sendNotificationByCircuit: async function (idapp, usernameOrig, circuitname, cmd, value, telegram, username_action, extrarec) {
const { Circuit } = require('../models/circuit'); 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(); const circuit = await Circuit.findOne({ idapp, name: circuitname }, { _id: 1, admins: 1, createdBy: 1, path: 1 }).lean();
if (!circuit) if (!circuit)
@@ -1195,41 +1274,75 @@ module.exports = {
if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REQ || cmd === shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT || cmd === if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REQ || cmd === shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT || cmd ===
shared_consts.CIRCUITCMD.SENDCOINS_REFUSE) { 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; let recnotif = null;
if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REQ) { 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, username_action, circuitname, circuit.path, null,
false, '', extrarec); false, '', extrarec);
if (res) {
recnotif = res.recnotif;
arrris = res.arrris;
}
} else if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT) { } 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, username_action, circuitname, circuit.path, null,
false, '', extrarec); false, '', extrarec);
} else if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REFUSE) { } 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, username_action, circuitname, circuit.path, null,
false, '', extrarec); false, '', extrarec);
} }
if (recnotif) if (recnotif)
extrarec.notifIdToUpdate = recnotif._id; 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); 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 = ''; extrarec.notifIdToUpdate = '';
if (ris) if (ris.recnotif)
inviato = true; inviato = true;
// ++Todo: Inviare anche agli Admin ?! // ++Todo: Inviare anche agli Admin ?!
} else { } else {
const groupOrig = '' //++Todo: extrarec.groupOrig
for (const singleadmin of circuit.admins) { for (const singleadmin of circuit.admins) {
try { try {
if (singleadmin.username) { if (singleadmin.username) {
if (usernameOrig === singleadmin.username) if (usernameOrig === singleadmin.username)
giainviato = true; 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); circuit.path, circuit, true, '', extrarec);
inviato = true; inviato = true;
} }
@@ -1240,15 +1353,15 @@ module.exports = {
if (!giainviato && cmd !== shared_consts.CIRCUITCMD.REQ) { if (!giainviato && cmd !== shared_consts.CIRCUITCMD.REQ) {
// SEND TO THE USER DEST THE NOTIFICATION // 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, null,
false, '', extrarec); false, '', extrarec);
if (ris) if (ris.recnotif)
inviato = true; inviato = true;
} }
} }
return { ris, inviato }; return { ris: ris.recnotif, inviato };
} catch (e) { } catch (e) {
console.error('sendNotificationByCircuit: ', e); console.error('sendNotificationByCircuit: ', e);

View File

@@ -355,6 +355,7 @@ module.exports = {
}, },
CircuitsNotif: { CircuitsNotif: {
STATUS_NONE: 0,
STATUS_NEW: 51, STATUS_NEW: 51,
STATUS_ACCEPTED: 53, STATUS_ACCEPTED: 53,
STATUS_REFUSED: 54, STATUS_REFUSED: 54,