Stringi la mano (fase prima)
This commit is contained in:
@@ -1982,12 +1982,12 @@ UserSchema.statics.setFriendsCmd = async function (req, idapp, usernameOrig, use
|
|||||||
ris = await User.getInfoFriendByUsername(idapp, usernameDest);
|
ris = await User.getInfoFriendByUsername(idapp, usernameDest);
|
||||||
//}
|
//}
|
||||||
} else if (cmd === shared_consts.FRIENDSCMD.SETHANDSHAKE) {
|
} else if (cmd === shared_consts.FRIENDSCMD.SETHANDSHAKE) {
|
||||||
// Aggiungo l'Amicizia a me
|
// Aggiungo la Stretta di mano a lui
|
||||||
const foundIfAlreadyFriend = await User.findOne({
|
const foundIfAlreadyFriend = await User.findOne({
|
||||||
idapp,
|
idapp,
|
||||||
username: usernameOrig,
|
username: usernameDest,
|
||||||
'profile.handshake': {
|
'profile.handshake': {
|
||||||
$elemMatch: { username: { $eq: usernameDest } },
|
$elemMatch: { username: { $eq: usernameOrig } },
|
||||||
},
|
},
|
||||||
}, { _id: 1 }).lean();
|
}, { _id: 1 }).lean();
|
||||||
|
|
||||||
@@ -1995,29 +1995,20 @@ UserSchema.statics.setFriendsCmd = async function (req, idapp, usernameOrig, use
|
|||||||
update = {
|
update = {
|
||||||
$push: {
|
$push: {
|
||||||
'profile.handshake': {
|
'profile.handshake': {
|
||||||
username: usernameDest,
|
username: usernameOrig,
|
||||||
date: new Date(),
|
date: new Date(),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
ris = await User.updateOne({ idapp, username: usernameOrig }, update);
|
ris = await User.updateOne({ idapp, username: usernameDest }, update);
|
||||||
|
|
||||||
if (!disablenotif) {
|
if (!disablenotif) {
|
||||||
// Send a notification to the DESTINATION HANDSHAKE !
|
// Send a notification to the DESTINATION HANDSHAKE !
|
||||||
let req = tools.getReqByPar(idapp, usernameOrig);
|
let req = tools.getReqByPar(idapp, usernameOrig);
|
||||||
await SendNotif.createNewNotifToSingleUser(req, null, { usernameDest }, true, shared_consts.TypeNotifs.TYPEDIR_HANDSHAKE,
|
await SendNotif.createNewNotifToSingleUser(req, null, { usernameDest }, true, shared_consts.TypeNotifs.TYPEDIR_HANDSHAKE,
|
||||||
shared_consts.TypeNotifs.ID_HANDSHAKE_ACCEPTED_MY_REQUEST);
|
shared_consts.TypeNotifs.ID_HANDSHAKE_ACCEPTED_MY_REQUEST);
|
||||||
|
|
||||||
// Send a notification to the SENDER HANDSHAKEHIP !
|
|
||||||
req = tools.getReqByPar(idapp, usernameDest);
|
|
||||||
await SendNotif.createNewNotifToSingleUser(req, null, { usernameDest: usernameOrig }, true, shared_consts.TypeNotifs.TYPEDIR_HANDSHAKE,
|
|
||||||
shared_consts.TypeNotifs.ID_HANDSHAKE_ACCEPTED);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
update = { $pull: { 'profile.req_handshake': { username: { $in: [usernameDest] } } } };
|
|
||||||
ris = await User.updateOne({ idapp, username: usernameOrig }, update);
|
|
||||||
|
|
||||||
if (ris) {
|
if (ris) {
|
||||||
try {
|
try {
|
||||||
if (!disablenotif) {
|
if (!disablenotif) {
|
||||||
@@ -2136,12 +2127,7 @@ UserSchema.statics.setFriendsCmd = async function (req, idapp, usernameOrig, use
|
|||||||
|
|
||||||
} else if (cmd === shared_consts.FRIENDSCMD.REMOVE_FROM_MYHANDSHAKE) {
|
} else if (cmd === shared_consts.FRIENDSCMD.REMOVE_FROM_MYHANDSHAKE) {
|
||||||
|
|
||||||
// Rimuovi anche le eventuali richieste di Amicizia !
|
ris = await this.removeHandShake(idapp, usernameDest, usernameOrig); // Rimuovo l'Amicizia da lui
|
||||||
await this.removeReqHandShake(idapp, usernameDest, usernameOrig); // Rimuovo la Richiesta di Amicizia da lui
|
|
||||||
await this.removeReqHandShake(idapp, usernameOrig, usernameDest); // Rimuovo la Richiesta di Amicizia da me
|
|
||||||
|
|
||||||
await this.removeHandShake(idapp, usernameDest, usernameOrig); // Rimuovo l'Amicizia da lui
|
|
||||||
ris = await this.removeHandShake(idapp, usernameOrig, usernameDest); // Rimuovo l'Amicizia da me
|
|
||||||
|
|
||||||
} else if (cmd === shared_consts.FRIENDSCMD.CANCEL_REQ_FRIEND) {
|
} else if (cmd === shared_consts.FRIENDSCMD.CANCEL_REQ_FRIEND) {
|
||||||
|
|
||||||
@@ -2150,9 +2136,6 @@ UserSchema.statics.setFriendsCmd = async function (req, idapp, usernameOrig, use
|
|||||||
await SendNotif.createNewNotifToSingleUser(req, null, { usernameDest }, true, shared_consts.TypeNotifs.TYPEDIR_FRIENDS,
|
await SendNotif.createNewNotifToSingleUser(req, null, { usernameDest }, true, shared_consts.TypeNotifs.TYPEDIR_FRIENDS,
|
||||||
shared_consts.TypeNotifs.ID_FRIENDS_REFUSED);
|
shared_consts.TypeNotifs.ID_FRIENDS_REFUSED);
|
||||||
|
|
||||||
await this.removeReqFriend(idapp, usernameDest, usernameOrig); // Rimuovo la Richiesta di Amicizia da lui
|
|
||||||
ris = await this.removeFriend(idapp, usernameOrig, usernameDest); // Rimuovo l'Amicizia da me
|
|
||||||
|
|
||||||
} else if (cmd === shared_consts.FRIENDSCMD.CANCEL_REQ_HANDSHAKE) {
|
} else if (cmd === shared_consts.FRIENDSCMD.CANCEL_REQ_HANDSHAKE) {
|
||||||
|
|
||||||
// CREATE NOTIFICATION IN TABLE SENDNOTIF
|
// CREATE NOTIFICATION IN TABLE SENDNOTIF
|
||||||
@@ -3946,6 +3929,18 @@ UserSchema.statics.getDiffusoriUsers = async function (idapp) {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
UserSchema.statics.getBestStretteDiManoUsers = async function (idapp) {
|
||||||
|
const User = this;
|
||||||
|
|
||||||
|
const lastn = 10;
|
||||||
|
|
||||||
|
return await User.aggregate(User.getQueryUsersStretteDiMano(idapp)).then(ris => {
|
||||||
|
// console.table(ris);
|
||||||
|
return ris;
|
||||||
|
});
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
UserSchema.statics.checkUser = async function (idapp, username) {
|
UserSchema.statics.checkUser = async function (idapp, username) {
|
||||||
const User = this;
|
const User = this;
|
||||||
|
|
||||||
@@ -4152,6 +4147,102 @@ UserSchema.statics.getQueryUsersDiffusori = function (idapp) {
|
|||||||
return query;
|
return query;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
UserSchema.statics.getQueryUsersStretteDiMano = function (idapp) {
|
||||||
|
|
||||||
|
const query = [
|
||||||
|
{
|
||||||
|
$match: {
|
||||||
|
idapp,
|
||||||
|
$or: [
|
||||||
|
{
|
||||||
|
deleted: {
|
||||||
|
$exists: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
deleted: {
|
||||||
|
$exists: true,
|
||||||
|
$eq: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
$group: {
|
||||||
|
_id: "$profile.handshake",
|
||||||
|
count: {
|
||||||
|
$sum: 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
$match: { "count": { $gte: 2 } }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
$sort: {
|
||||||
|
count: -1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ $limit: 20 },
|
||||||
|
{
|
||||||
|
$lookup: {
|
||||||
|
from: "users",
|
||||||
|
let: {
|
||||||
|
username: "$_id",
|
||||||
|
idapp,
|
||||||
|
},
|
||||||
|
pipeline: [
|
||||||
|
{
|
||||||
|
$match: {
|
||||||
|
$expr: {
|
||||||
|
$and: [
|
||||||
|
{
|
||||||
|
$eq: [
|
||||||
|
"$$username",
|
||||||
|
"$username",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
$eq: [
|
||||||
|
"$$idapp",
|
||||||
|
"$idapp",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
as: "user",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ $unwind: "$user" },
|
||||||
|
{
|
||||||
|
$replaceRoot: {
|
||||||
|
newRoot: {
|
||||||
|
$mergeObjects: ["$user", "$$ROOT"],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
$project: {
|
||||||
|
_id: 0,
|
||||||
|
count: 1,
|
||||||
|
aportador_solidario: 1,
|
||||||
|
username: 1,
|
||||||
|
name: 1,
|
||||||
|
surname: 1,
|
||||||
|
lasttimeonline: 1,
|
||||||
|
idapp: 1,
|
||||||
|
"profile.img": 1,
|
||||||
|
'profile.handshake': 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
];
|
||||||
|
return query;
|
||||||
|
};
|
||||||
|
|
||||||
UserSchema.statics.getUsersRegWeekly = function (idapp, nrec) {
|
UserSchema.statics.getUsersRegWeekly = function (idapp, nrec) {
|
||||||
|
|
||||||
const query = [
|
const query = [
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ router.post('/load', async (req, res) => {
|
|||||||
lastsonline: await User.getLastOnlineUsers(idapp),
|
lastsonline: await User.getLastOnlineUsers(idapp),
|
||||||
lastssharedlink: await User.getLastSharedLink(idapp),
|
lastssharedlink: await User.getLastSharedLink(idapp),
|
||||||
diffusorilist: await User.getDiffusoriUsers(idapp),
|
diffusorilist: await User.getDiffusoriUsers(idapp),
|
||||||
|
strettelist: await User.getBestStretteDiManoUsers(idapp),
|
||||||
checkuser: await User.checkUser(idapp, username),
|
checkuser: await User.checkUser(idapp, username),
|
||||||
// navi_partite: await Nave.getNaviPartite(idapp),
|
// navi_partite: await Nave.getNaviPartite(idapp),
|
||||||
// navi_in_partenza: await Nave.getNaviInPartenza(idapp),
|
// navi_in_partenza: await Nave.getNaviInPartenza(idapp),
|
||||||
|
|||||||
@@ -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) + '<br>' + struserinfomsg;
|
domanda = printf(getstr(langdest, 'MSG_ACCEPT_NEWENTRY_INGROUP'), name);
|
||||||
|
|
||||||
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) + '<br>' + struserinfomsg;
|
domanda = i18n.__({ phrase: 'CIRCUIT_ACCEPT_NEWENTRY_BYGROUP', locale: langdest }, groupname);
|
||||||
|
|
||||||
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) + '<br>' + struserinfomsg;
|
domanda = i18n.__({ phrase: 'CIRCUIT_ACCEPT_NEWENTRY', locale: langdest }, name);
|
||||||
|
|
||||||
keyb = cl.getInlineKeyboard(myuser.lang, [
|
keyb = cl.getInlineKeyboard(myuser.lang, [
|
||||||
{
|
{
|
||||||
@@ -956,7 +956,7 @@ const MyTelegramBot = {
|
|||||||
let typeid = 0;
|
let typeid = 0;
|
||||||
let paramsObj = {};
|
let paramsObj = {};
|
||||||
|
|
||||||
const struserinfomsg = tools.getUserInfoMsg(idapp, myuser);
|
const struserinfomsg = tools.getUserShortInfoMsg(idapp, myuser);
|
||||||
|
|
||||||
if (myfunc === shared_consts.CallFunz.RICHIESTA_AMICIZIA) {
|
if (myfunc === shared_consts.CallFunz.RICHIESTA_AMICIZIA) {
|
||||||
sendnotif = true;
|
sendnotif = true;
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ const textlang = {
|
|||||||
'MSG_SEND_FROM': 'Msg Inviato da',
|
'MSG_SEND_FROM': 'Msg Inviato da',
|
||||||
'ZOOM_CONFERMATO': 'Sei stato confermato ad aver visto la Video Conferenza di Benvenuto!',
|
'ZOOM_CONFERMATO': 'Sei stato confermato ad aver visto la Video Conferenza di Benvenuto!',
|
||||||
'RICHIESTA_AMICIZIA': '🌈 Richiesta d\'Amicizia da parte di %s',
|
'RICHIESTA_AMICIZIA': '🌈 Richiesta d\'Amicizia da parte di %s',
|
||||||
'RICHIESTA_HANDSHAKE': '🌈 Richiesta Stretta di mano da parte di %s',
|
'RICHIESTA_HANDSHAKE': '🌈 Confermi che hai conosciuto personalmente e dai la tua fiducia a %s ?',
|
||||||
'ACCETTATO_SUL_GRUPPO': '✅ Sei stato accettato da %s a far parte del Gruppo %s',
|
'ACCETTATO_SUL_GRUPPO': '✅ Sei stato accettato da %s a far parte del Gruppo %s',
|
||||||
'CREATO_NUOVO_GRUPPO': '✅ Hai appena creato un nuovo Gruppo chiamato %s',
|
'CREATO_NUOVO_GRUPPO': '✅ Hai appena creato un nuovo Gruppo chiamato %s',
|
||||||
'ACCETTATO_NOTIFICA_ADMINS': '✅ l\'utente %s è stato accettato a far parte del Gruppo %s (da parte di %s)',
|
'ACCETTATO_NOTIFICA_ADMINS': '✅ l\'utente %s è stato accettato a far parte del Gruppo %s (da parte di %s)',
|
||||||
@@ -3383,6 +3383,28 @@ module.exports = {
|
|||||||
return msg;
|
return msg;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getUserShortInfoMsg: function (idapp, myuser, usernametelegram = '', name_telegram = '',
|
||||||
|
surname_telegram = '') {
|
||||||
|
|
||||||
|
let msg = '';
|
||||||
|
try {
|
||||||
|
const name = myuser.username +
|
||||||
|
(myuser.name ? ` (${myuser.name} ${myuser.surname})` : '');
|
||||||
|
const linkuserprof = this.getHostByIdApp(idapp) + '/my/' +
|
||||||
|
myuser.username;
|
||||||
|
|
||||||
|
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>Telegram: @${u_tg}`;
|
||||||
|
|
||||||
|
} catch (e) {
|
||||||
|
console.error('getUserInfoMsg', e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return msg;
|
||||||
|
},
|
||||||
|
|
||||||
getlinkRelativeRequestNewPassword: function (idapp, email, tokenforgot) {
|
getlinkRelativeRequestNewPassword: function (idapp, email, tokenforgot) {
|
||||||
const strlinkreg = process.env.LINK_UPDATE_PASSWORD +
|
const strlinkreg = process.env.LINK_UPDATE_PASSWORD +
|
||||||
`?idapp=${idapp}&email=${email}&tokenforgot=${tokenforgot}`;
|
`?idapp=${idapp}&email=${email}&tokenforgot=${tokenforgot}`;
|
||||||
|
|||||||
@@ -344,6 +344,8 @@ module.exports = {
|
|||||||
STATUS_FRIENDS_ACCEPTED: 1,
|
STATUS_FRIENDS_ACCEPTED: 1,
|
||||||
STATUS_FRIENDS_REFUSED: 2,
|
STATUS_FRIENDS_REFUSED: 2,
|
||||||
STATUS_FRIENDS_REPORTED: 3,
|
STATUS_FRIENDS_REPORTED: 3,
|
||||||
|
STATUS_HANDSHAKE_ACCEPTED: 10,
|
||||||
|
STATUS_HANDSHAKE_REFUSED: 11,
|
||||||
},
|
},
|
||||||
|
|
||||||
GroupsNotifs: {
|
GroupsNotifs: {
|
||||||
|
|||||||
Reference in New Issue
Block a user