Conto Comunitario...

This commit is contained in:
Surya Paolo
2023-01-12 01:03:10 +01:00
parent e13fe84709
commit f7d05eb856
6 changed files with 100 additions and 87 deletions

View File

@@ -12,7 +12,7 @@
"✅ %s accepted your Friendship request !": "✅ %s ha accettato la tua richiesta di Amicizia !", "✅ %s accepted your Friendship request !": "✅ %s ha accettato la tua richiesta di Amicizia !",
"✅ You have accepted %s' Friendship request!": "✅ Hai accettato la richiesta di Amicizia di %s !", "✅ You have accepted %s' Friendship request!": "✅ Hai accettato la richiesta di Amicizia di %s !",
"HANDSHAKE_SET": "<strong>%s</strong> ha comunicato che ti conosce personalmente e ha fiducia in te.", "HANDSHAKE_SET": "<strong>%s</strong> ha comunicato che ti conosce personalmente e ha fiducia in te.",
"GROUPS_ACCEPTED": "✅ Sei stato accettato da %s a far parte del Gruppo %s (da parte di %s)", "GROUPS_ACCEPTED": "✅ Sei stato accettato a far parte del Gruppo %s (da parte di %s)",
"GROUPS_REFUSED": "❌ Ti è stato rifiutato l'accesso da %s a far parte del Gruppo %s. Se pensi sia un'errore, contatta l'amministratore del Gruppo.", "GROUPS_REFUSED": "❌ Ti è stato rifiutato l'accesso da %s a far parte del Gruppo %s. Se pensi sia un'errore, contatta l'amministratore del Gruppo.",
"GROUPS_REMOVED": "❌ l'utente %s è stato rimosso del Gruppo %s (da parte di %s)", "GROUPS_REMOVED": "❌ l'utente %s è stato rimosso del Gruppo %s (da parte di %s)",
"GROUPS_EXIT_USER": "❌ l'utente %s è uscito dal Gruppo %s", "GROUPS_EXIT_USER": "❌ l'utente %s è uscito dal Gruppo %s",

View File

@@ -380,7 +380,7 @@ AccountSchema.statics.getGroupAccounts = async function (idapp, groupname) {
{ $eq: ['$typedir', '$$typedir'] }, { $eq: ['$typedir', '$$typedir'] },
{ $eq: ['$typeid', '$$typeid'] }, { $eq: ['$typeid', '$$typeid'] },
{ $eq: ['$status', 0] }, { $eq: ['$status', 0] },
{ $eq: ['$sender', '$$username'] }, { $eq: ['$sendergroup', '$$groupname'] },
{ $eq: ['$idapp', '$$idapp'] }, { $eq: ['$idapp', '$$idapp'] },
{ $eq: ['$extrarec.circuitname', '$$circuitname'] }, { $eq: ['$extrarec.circuitname', '$$circuitname'] },
], ],

View File

@@ -227,7 +227,7 @@ sendNotifSchema.statics.getDescrAndLinkByRecNotif = async function (recnotif) {
newdescr = i18n.__('ACCETTATO_NOTIFICA_ADMINS', userorig, recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action); newdescr = i18n.__('ACCETTATO_NOTIFICA_ADMINS', userorig, recnotif.paramsObj.groupnameDest, recnotif.paramsObj.username_action);
recnotif.openUrl = '/my/' + userorig; recnotif.openUrl = '/my/' + userorig;
} else { } else {
newdescr = i18n.__('GROUPS_ACCEPTED', userorig, 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) {

View File

@@ -1656,9 +1656,11 @@ UserSchema.statics.getUserProfileByUsername = async function (
'useraport.profile.img': 1, 'useraport.profile.img': 1,
}; };
} }
let regexpusername = new RegExp(`^${username}$`, 'i');
const myfind = { const myfind = {
idapp, username, idapp, username: { $regex: regexpusername },
$or: [{ deleted: { $exists: false } }, { deleted: { $exists: true, $eq: false } }], $or: [{ deleted: { $exists: false } }, { deleted: { $exists: true, $eq: false } }],
}; };
@@ -4536,6 +4538,12 @@ UserSchema.statics.addExtraInfo = async function (idapp, recUser, recUserSave) {
const circuitobj = await Circuit.getCircuitsByUsername(idapp, recUser.username, recUser); const circuitobj = await Circuit.getCircuitsByUsername(idapp, recUser.username, recUser);
const useraccounts = await Account.getUserAccounts(idapp, recUser.username); const useraccounts = await Account.getUserAccounts(idapp, recUser.username);
for (const group of listManageGroups) {
const myaccounts = await Account.getGroupAccounts(idapp, group.groupname);
if (myaccounts && myaccounts.length > 0)
group.account = myaccounts[0]
}
recUser.profile = { ...recUser.profile, ...circuitobj, useraccounts }; recUser.profile = { ...recUser.profile, ...circuitobj, useraccounts };

View File

@@ -879,7 +879,7 @@ const MyTelegramBot = {
} }
} else if (myfunc === shared_consts.CallFunz.RICHIESTA_GRUPPO) { } else if (myfunc === shared_consts.CallFunz.RICHIESTA_GRUPPO) {
domanda = printf(getstr(langdest, 'MSG_ACCEPT_NEWENTRY_INGROUP'), name); domanda = printf(getstr(langdest, 'MSG_ACCEPT_NEWENTRY_INGROUP'), name) + '<br>' + struserinfomsg;
keyb = cl.getInlineKeyboard(myuser.lang, [ keyb = cl.getInlineKeyboard(myuser.lang, [
{ {
@@ -894,7 +894,7 @@ const MyTelegramBot = {
} else if (myfunc === shared_consts.CallFunz.RICHIESTA_CIRCUIT) { } else if (myfunc === shared_consts.CallFunz.RICHIESTA_CIRCUIT) {
if (groupname) { if (groupname) {
domanda = i18n.__({ phrase: 'CIRCUIT_ACCEPT_NEWENTRY_BYGROUP', locale: langdest }, groupname); domanda = i18n.__({ phrase: 'CIRCUIT_ACCEPT_NEWENTRY_BYGROUP', locale: langdest }, groupname) + '<br>' + struserinfomsg;
keyb = cl.getInlineKeyboard(myuser.lang, [ keyb = cl.getInlineKeyboard(myuser.lang, [
{ {
@@ -909,7 +909,7 @@ const MyTelegramBot = {
}, },
]); ]);
} else { } else {
domanda = i18n.__({ phrase: 'CIRCUIT_ACCEPT_NEWENTRY', locale: langdest }, name); domanda = i18n.__({ phrase: 'CIRCUIT_ACCEPT_NEWENTRY', locale: langdest }, name) + '<br>' + struserinfomsg;
keyb = cl.getInlineKeyboard(myuser.lang, [ keyb = cl.getInlineKeyboard(myuser.lang, [
{ {
@@ -1312,7 +1312,7 @@ async function sendMsgTelegramToTheAdmin(idapp, text, msg) {
async function setVerifiedReg(idapp, lang, usernameorig, usernameDest) { async function setVerifiedReg(idapp, lang, usernameorig, usernameDest) {
try { try {
await User.setVerifiedByAportador(idapp, usernameorig, true); await User.setVerifiedByAportador(idapp, usernameorig, true);
await User.setFriendsCmd(null, idapp, usernameorig, usernameDest, shared_consts.FRIENDSCMD.SETFRIEND); // await User.setFriendsCmd(null, idapp, usernameorig, usernameDest, shared_consts.FRIENDSCMD.SETFRIEND);
const msgDest = printf(getstr(lang, 'MSG_APORTADOR_CONFIRMED'), const msgDest = printf(getstr(lang, 'MSG_APORTADOR_CONFIRMED'),
`${usernameorig}`, usernameDest); `${usernameorig}`, usernameDest);
@@ -4000,7 +4000,7 @@ if (true) {
if (changed) { if (changed) {
const req = tools.getReqByPar(user.idapp, username_action); const req = tools.getReqByPar(user.idapp, username_action);
await User.setFriendsCmd(req, user.idapp, data.username, userDest.username, shared_consts.FRIENDSCMD.SETFRIEND, null, true); // await User.setFriendsCmd(req, user.idapp, data.username, userDest.username, shared_consts.FRIENDSCMD.SETFRIEND, null, true);
await User.setaportador_solidario(user.idapp, data.username, userDest.username); await User.setaportador_solidario(user.idapp, data.username, userDest.username);

View File

@@ -1047,89 +1047,90 @@ module.exports = {
const user = await User.findOne({ idapp, username: usernameDest }, const user = await User.findOne({ idapp, username: usernameDest },
{ _id: 1, lang: 1 }); { _id: 1, lang: 1 });
let lang = 'it';
if (user) {
lang = user.lang;
}
try { try {
if (user) { let paramsObj = {
usernameDest,
circuitnameDest: circuitname,
path,
username_action: username_action,
singleadmin_username: usernameDest,
extrarec,
options: 0,
lang,
isAdmin,
username_worked,
};
let lang = user.lang; let sendnotif = true;
let paramsObj = { let typedir = shared_consts.TypeNotifs.TYPEDIR_CIRCUITS;
usernameDest, let typeid = 0;
circuitnameDest: circuitname, let onlysave = false;
path, let numuserincircuit = await User.countUsersInCircuit(idapp, circuitname);
username_action: username_action,
singleadmin_username: usernameDest,
extrarec,
options: 0,
lang,
isAdmin,
username_worked,
};
let sendnotif = true; if (cmd) {
let typedir = shared_consts.TypeNotifs.TYPEDIR_CIRCUITS; if (cmd === shared_consts.CIRCUITCMD.SET) {
let typeid = 0; if (myreccircuit && myreccircuit.createdBy === usernameDest && numuserincircuit <= 1) {
let onlysave = false; typeid = shared_consts.TypeNotifs.ID_CIRCUIT_NEW_REC;
let numuserincircuit = await User.countUsersInCircuit(idapp, circuitname); } else {
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_ACCEPTED;
if (cmd) {
if (cmd === shared_consts.CIRCUITCMD.SET) {
if (myreccircuit && myreccircuit.createdBy === usernameDest && numuserincircuit <= 1) {
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_NEW_REC;
} else {
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_ACCEPTED;
}
} else if (cmd === shared_consts.CIRCUITCMD.REFUSE_REQ) {
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_REFUSED;
} else if (cmd === shared_consts.CIRCUITCMD.REMOVE_FROM_MYLIST) {
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_REMOVED;
} else if (cmd === shared_consts.CIRCUITCMD.REQ) {
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_REQUEST_TO_ENTER;
// paramsObj.options = MessageOptions.Notify_OnlyToNotifinApp + MessageOptions.Notify_ByBotTelegram;
const myuserdata = await User.getUserShortDataByUsername(idapp, username_action);
telegrambot.askConfirmationUser(idapp, shared_consts.CallFunz.RICHIESTA_CIRCUIT, myuserdata, usernameDest, circuitname,
myreccircuit._id, '', extrarec.groupname);
onlysave = false;
} else if (cmd === shared_consts.CIRCUITCMD.ADDADMIN) {
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_ADDED_ADMIN;
} else if (cmd === shared_consts.CIRCUITCMD.REMOVEADMIN) {
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_REMOVED_ADMIN;
} else if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REQ) {
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ;
} else if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REQ_SENT) {
// Crea l'ID di Transazione
paramsObj.idTransaction = new ObjectId();
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ_SENT;
} else if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT) {
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_COINS_ACCEPTED;
} else if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT_SENT) {
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;
} else if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REFUSE_SENT) {
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_COINS_REFUSED_SENT;
} }
} else if (cmd === shared_consts.CIRCUITCMD.REFUSE_REQ) {
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_REFUSED;
} else if (cmd === shared_consts.CIRCUITCMD.REMOVE_FROM_MYLIST) {
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_REMOVED;
} else if (cmd === shared_consts.CIRCUITCMD.REQ) {
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_REQUEST_TO_ENTER;
// paramsObj.options = MessageOptions.Notify_OnlyToNotifinApp + MessageOptions.Notify_ByBotTelegram;
const myuserdata = await User.getUserShortDataByUsername(idapp, username_action);
telegrambot.askConfirmationUser(idapp, shared_consts.CallFunz.RICHIESTA_CIRCUIT, myuserdata, usernameDest, circuitname,
myreccircuit._id, '', extrarec.groupname);
onlysave = false;
} else if (cmd === shared_consts.CIRCUITCMD.ADDADMIN) {
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_ADDED_ADMIN;
} else if (cmd === shared_consts.CIRCUITCMD.REMOVEADMIN) {
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_REMOVED_ADMIN;
} else if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REQ) {
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ;
} else if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REQ_SENT) {
// Crea l'ID di Transazione
paramsObj.idTransaction = new ObjectId();
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ_SENT;
} else if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT) {
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_COINS_ACCEPTED;
} else if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT_SENT) {
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;
} else if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REFUSE_SENT) {
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_COINS_REFUSED_SENT;
} }
if (sendnotif && typeid > 0) { }
// Check if is group:
if (extrarec.groupdest) {
let arrusers = await MyGroup.getListAdminsByGroupName(idapp, extrarec.groupdest); if (sendnotif && typeid > 0) {
// Check if is group:
if (extrarec.groupdest) {
let ris = null; let arrusers = await MyGroup.getListAdminsByGroupName(idapp, extrarec.groupdest);
for (let i = 0; i < arrusers.length; i++) { let ris = null;
paramsObj.usernameDest = arrusers[i].username;
ris = await SendNotif.createNewNotifToSingleUser(req, null, paramsObj, onlysave, typedir, typeid); for (let i = 0; i < arrusers.length; i++) {
if (!ris) { paramsObj.usernameDest = arrusers[i].username;
console.error('Errore createNewNotifToSingleUser! ', paramsObj.usernameDest, "dest ->", extrarec.groupdest) ris = await SendNotif.createNewNotifToSingleUser(req, null, paramsObj, onlysave, typedir, typeid);
} if (!ris) {
console.error('Errore createNewNotifToSingleUser! ', paramsObj.usernameDest, "dest ->", extrarec.groupdest)
} }
} else {
// CREATE NOTIFICATION IN TABLE SENDNOTIF
return await SendNotif.createNewNotifToSingleUser(req, null, paramsObj, onlysave, typedir, typeid);
} }
} else {
// CREATE NOTIFICATION IN TABLE SENDNOTIF
return await SendNotif.createNewNotifToSingleUser(req, null, paramsObj, onlysave, typedir, typeid);
} }
} }
} catch (e) { } catch (e) {
@@ -1211,9 +1212,9 @@ module.exports = {
if (recnotif) if (recnotif)
extrarec.notifIdToUpdate = recnotif._id; extrarec.notifIdToUpdate = recnotif._id;
ris = await this.sendNotifCircuitByUsername(cmd, idapp, usernameOrig, extrarec.dest, username_action, circuitname, circuit.path, ris = await this.sendNotifCircuitByUsername(cmd, idapp, usernameOrig, extrarec.dest, username_action, circuitname, circuit.path,
null, null, false, '', extrarec);
false, '', extrarec);
extrarec.notifIdToUpdate = ''; extrarec.notifIdToUpdate = '';
@@ -3367,7 +3368,7 @@ module.exports = {
const linkuserprof = this.getHostByIdApp(idapp) + '/my/' + const linkuserprof = this.getHostByIdApp(idapp) + '/my/' +
myuser.username; myuser.username;
msg = `<br>Username: <b>${name}</b><br>Profilo su APP: ${linkuserprof}<br>Email: ${myuser.email}`; msg = `<br>👉🏻 <a href="${linkuserprof}">${name}</a> (email: ${myuser.email})`;
let u_tg = myuser.profile && myuser.profile.hasOwnProperty('username_telegram') ? myuser.profile.username_telegram : usernametelegram; let u_tg = myuser.profile && myuser.profile.hasOwnProperty('username_telegram') ? myuser.profile.username_telegram : usernametelegram;
let name_tg = myuser.profile && myuser.profile.hasOwnProperty('firstname_telegram') let name_tg = myuser.profile && myuser.profile.hasOwnProperty('firstname_telegram')
@@ -3377,8 +3378,12 @@ module.exports = {
? myuser.profile.lastname_telegram ? myuser.profile.lastname_telegram
: surname_telegram; : surname_telegram;
let namesurnametg = '';
if (name_tg || surname_tg)
namesurnametg = ` [${name_tg} ${surname_tg}]`;;
if (u_tg) { if (u_tg) {
msg += `<br>Profilo su Telegram [${name_tg} ${surname_tg}]:<br>https://t.me/${u_tg}`; msg += `<br><br>https://t.me/${u_tg}`;
} }
} catch (e) { } catch (e) {
console.error('getUserInfoMsg', e); console.error('getUserInfoMsg', e);
@@ -3396,8 +3401,8 @@ module.exports = {
(myuser.name ? ` (${myuser.name} ${myuser.surname})` : ''); (myuser.name ? ` (${myuser.name} ${myuser.surname})` : '');
const linkuserprof = this.getHostByIdApp(idapp) + '/my/' + const linkuserprof = this.getHostByIdApp(idapp) + '/my/' +
myuser.username; myuser.username;
let u_tg = myuser.profile && myuser.profile.hasOwnProperty('username_telegram') ? myuser.profile.username_telegram : usernametelegram; let u_tg = myuser.profile && myuser.profile.hasOwnProperty('username_telegram') ? myuser.profile.username_telegram : usernametelegram;
msg = `<br>Vedi Profilo sulla APP di <a href="${linkuserprof}">${name}</a>`; msg = `<br>Vedi Profilo sulla APP di <a href="${linkuserprof}">${name}</a>`;
msg += `<br>Telegram: @${u_tg}`; msg += `<br>Telegram: @${u_tg}`;