- Gruppi (3) - lista degli utenti del gruppo
This commit is contained in:
@@ -342,7 +342,7 @@ const UserSchema = new mongoose.Schema({
|
||||
username: {type: String},
|
||||
date: {type: Date},
|
||||
}], // username
|
||||
groups: [
|
||||
mygroups: [
|
||||
{
|
||||
_id: false,
|
||||
groupname: {type: String},
|
||||
@@ -1314,7 +1314,7 @@ UserSchema.statics.removeFriend = async function(idapp, username, usernameDest)
|
||||
// Rimuovo il Gruppo
|
||||
UserSchema.statics.removeFromMyGroups = async function(idapp, username, groupnameDest) {
|
||||
return User.updateOne({idapp, username},
|
||||
{$pull: {'profile.groups': {groupname: {$in: [groupnameDest]}}}});
|
||||
{$pull: {'profile.mygroups': {groupname: {$in: [groupnameDest]}}}});
|
||||
};
|
||||
|
||||
// Rimuovo la Richiesta di Amicizia
|
||||
@@ -1463,11 +1463,11 @@ UserSchema.statics.setGroupsCmd = async function(idapp, usernameOrig, groupnameD
|
||||
let update = {};
|
||||
try {
|
||||
if (cmd === shared_consts.GROUPSCMD.SETGROUP) {
|
||||
// Aggiungo l'Amicizia a me
|
||||
// Controllo se è stato già inserito
|
||||
const foundIfAlreadyGroup = await User.findOne({
|
||||
idapp,
|
||||
username: usernameOrig,
|
||||
'profile.groups': {
|
||||
'profile.mygroups': {
|
||||
$elemMatch: {groupname: {$eq: groupnameDest}},
|
||||
},
|
||||
});
|
||||
@@ -1475,7 +1475,7 @@ UserSchema.statics.setGroupsCmd = async function(idapp, usernameOrig, groupnameD
|
||||
if (!foundIfAlreadyGroup) {
|
||||
update = {
|
||||
$push: {
|
||||
'profile.groups': {
|
||||
'profile.mygroups': {
|
||||
groupname: groupnameDest,
|
||||
date: new Date(),
|
||||
},
|
||||
@@ -1483,8 +1483,11 @@ UserSchema.statics.setGroupsCmd = async function(idapp, usernameOrig, groupnameD
|
||||
};
|
||||
ris = await User.updateOne({idapp, username: usernameOrig}, update);
|
||||
|
||||
update = {$pull: {'profile.req_groups': {groupname: {$in: [groupnameDest]}}}};
|
||||
ris = await User.updateOne({idapp, username: usernameOrig}, update);
|
||||
// Elimina la richiesta:
|
||||
update = {$pull: {req_users: {username: {$in: [usernameOrig]}}}};
|
||||
ris = await MyGroup.updateOne({idapp, groupname: groupnameDest}, update);
|
||||
} else {
|
||||
ris = false;
|
||||
}
|
||||
|
||||
if (ris) {
|
||||
@@ -1495,7 +1498,7 @@ UserSchema.statics.setGroupsCmd = async function(idapp, usernameOrig, groupnameD
|
||||
const foundIfAlreadyAskGroup = await MyGroup.findOne({
|
||||
idapp,
|
||||
groupname: groupnameDest,
|
||||
'req_groups': {
|
||||
'req_users': {
|
||||
$elemMatch: { username: {$eq: usernameOrig}},
|
||||
},
|
||||
});
|
||||
@@ -1504,31 +1507,33 @@ UserSchema.statics.setGroupsCmd = async function(idapp, usernameOrig, groupnameD
|
||||
if (!foundIfAlreadyAskGroup) {
|
||||
update = {
|
||||
$push: {
|
||||
'profile.req_groups': {
|
||||
'req_users': {
|
||||
username: usernameOrig,
|
||||
date: new Date(),
|
||||
},
|
||||
},
|
||||
};
|
||||
ris = await User.updateOne({idapp, username: groupnameDest}, update);
|
||||
ris = await MyGroup.updateOne({idapp, groupname: groupnameDest}, update);
|
||||
}
|
||||
if (ris) {
|
||||
// Invia una notifica alla persona
|
||||
tools.sendNotificationByGroupName(idapp, groupnameDest, cmd, true);
|
||||
tools.sendNotificationByGroupname(idapp, groupnameDest, cmd, true);
|
||||
}
|
||||
} else {
|
||||
if (foundIfAlreadyAskGroup) {
|
||||
ris = await this.removeFromMyGroups(idapp, groupnameDest, usernameOrig); // Rimuovo l'Amicizia da me
|
||||
ris = await this.removeFromMyGroups(idapp, usernameOrig, groupnameDest); // Rimuovo il Gruppo da me
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (ris) {
|
||||
ris = await User.getInfoAskGroupByUsername(idapp, groupnameDest);
|
||||
ris = await MyGroup.getInfoGroupByGroupname(idapp, groupnameDest);
|
||||
}
|
||||
|
||||
} else if (cmd === shared_consts.GROUPSCMD.REMOVE_FROM_MYGROUPS) {
|
||||
} else if (cmd === shared_consts.GROUPSCMD.REMOVE_FROM_MYGROUP) {
|
||||
|
||||
ris = await this.removeFromMyGroups(idapp, usernameOrig, groupnameDest); // Rimuovo l'Amicizia da me
|
||||
ris = await User.removeFromMyGroups(idapp, usernameOrig, groupnameDest); // Rimuovo l'Amicizia da me
|
||||
console.log('ris', ris);
|
||||
|
||||
} else if (cmd === shared_consts.GROUPSCMD.CANCEL_REQ_GROUP) {
|
||||
|
||||
@@ -1536,10 +1541,10 @@ UserSchema.statics.setGroupsCmd = async function(idapp, usernameOrig, groupnameD
|
||||
|
||||
} else if (cmd === shared_consts.GROUPSCMD.BLOCK_GROUP) {
|
||||
|
||||
await this.removeFromMyGroups(idapp, usernameOrig, groupnameDest); // Rimuovo l'Amicizia da me
|
||||
await User.removeFromMyGroups(idapp, usernameOrig, groupnameDest); // Rimuovo l'Amicizia da me
|
||||
|
||||
// Blocco il Gruppo
|
||||
ris = await MyGroup.updateOne({idapp, username: groupnameDest}, {
|
||||
ris = await MyGroup.updateOne({idapp, groupname: groupnameDest}, {
|
||||
$set: {
|
||||
blocked: true,
|
||||
username_who_block: usernameOrig,
|
||||
@@ -1547,6 +1552,7 @@ UserSchema.statics.setGroupsCmd = async function(idapp, usernameOrig, groupnameD
|
||||
},
|
||||
});
|
||||
//++Todo: Send Notification to Admin and Group's manager
|
||||
tools.sendNotificationByGroupname(idapp, groupnameDest, cmd, true);
|
||||
|
||||
}
|
||||
} catch (e) {
|
||||
@@ -1601,6 +1607,26 @@ function getWhatToShow_Unknown(idapp, username) {
|
||||
|
||||
}
|
||||
|
||||
UserSchema.statics.getWhatToShow_IfFriends = async function(idapp, username) {
|
||||
return {
|
||||
username: 1,
|
||||
aportador_solidario: 1,
|
||||
name: 1,
|
||||
// deleted: 1,
|
||||
// sospeso: 1,
|
||||
verified_email: 1,
|
||||
verified_by_aportador: 1,
|
||||
'profile.img': 1,
|
||||
'profile.sex': 1,
|
||||
'profile.born_province': 1,
|
||||
'profile.born_country': 1,
|
||||
date_reg: 1,
|
||||
groups: 1,
|
||||
friends: 1,
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
UserSchema.statics.getInfoFriendByUsername = async function(idapp, username) {
|
||||
|
||||
const whatToShow = getWhatToShow(idapp, username);
|
||||
@@ -2935,17 +2961,32 @@ UserSchema.statics.addExtraInfo = async function(idapp, recUser) {
|
||||
|
||||
recUser._doc.profile.asked_friends = listSentMyRequestFriends ? listSentMyRequestFriends : [];
|
||||
|
||||
const listSentMyRequestGroups = await User.find({
|
||||
const listSentMyRequestGroups = await MyGroup.find({
|
||||
idapp,
|
||||
'profile.req_groups': {
|
||||
'req_users': {
|
||||
$elemMatch: {username: {$eq: recUser.username}},
|
||||
},
|
||||
$or: [
|
||||
{deleted: {$exists: false}},
|
||||
{deleted: {$exists: true, $eq: false}}],
|
||||
}, {username: 1});
|
||||
}, MyGroup.getWhatToShow_Unknown());
|
||||
|
||||
recUser._doc.profile.asked_groups = listSentMyRequestGroups ? listSentMyRequestGroups : [];
|
||||
|
||||
const listManageGroups = await MyGroup.find({
|
||||
idapp,
|
||||
'admins': {
|
||||
$elemMatch: {username: {$eq: recUser.username}},
|
||||
},
|
||||
$or: [
|
||||
{deleted: {$exists: false}},
|
||||
{deleted: {$exists: true, $eq: false}}],
|
||||
});
|
||||
|
||||
recUser._doc.profile.manage_mygroups = listManageGroups ? listManageGroups : [];
|
||||
|
||||
|
||||
|
||||
}catch (e){
|
||||
console.error('Err', e);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user