Notification New Group

This commit is contained in:
paoloar77
2022-07-28 23:27:51 +02:00
parent 7cda5dbb8b
commit 241e4255d4
9 changed files with 63 additions and 32 deletions

View File

@@ -15,5 +15,7 @@
"<strong>%s</strong> accepted your Friendship": "<strong>%s</strong> accepted your Friendship", "<strong>%s</strong> accepted your Friendship": "<strong>%s</strong> accepted your Friendship",
"<strong>%s</strong> refused your Friendship": "<strong>%s</strong> refused your Friendship", "<strong>%s</strong> refused your Friendship": "<strong>%s</strong> refused your Friendship",
"✅ %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!": "✅ You have accepted %s' Friendship request!" "✅ You have accepted %s' Friendship request!": "✅ You have accepted %s' Friendship request!",
"GROUPS_ACCEPTED": "✅ You have been accepted by %s to join the Group %s",
"GROUP_CREATED": "✅ A new Group created by %s called %s has been created"
} }

View File

@@ -10,5 +10,7 @@
"<strong>%s</strong> accepted your Friendship": "<strong>%s</strong> ha accettato l'Amicizia", "<strong>%s</strong> accepted your Friendship": "<strong>%s</strong> ha accettato l'Amicizia",
"<strong>%s</strong> refused your Friendship": "<strong>%s</strong> ha rifiutato l'Amicizia", "<strong>%s</strong> refused your Friendship": "<strong>%s</strong> ha rifiutato l'Amicizia",
"✅ %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 !",
"GROUPS_ACCEPTED": "✅ Sei stato accettato da %s a far parte del Gruppo %s",
"GROUP_CREATED": "✅ %s ha creato un nuovo Gruppo chiamato %s"
} }

View File

@@ -235,10 +235,12 @@ MyGroupSchema.statics.getInfoGroupByGroupname = async function(idapp, groupname)
const whatToShow = this.getWhatToShow(idapp, groupname); const whatToShow = this.getWhatToShow(idapp, groupname);
return MyGroup.findOne({ const rec = await MyGroup.findOne({
idapp, idapp,
groupname, groupname,
}, whatToShow).then((rec) => !!rec ? rec._doc : null); }, whatToShow).lean();
return rec;
}; };

View File

@@ -152,11 +152,11 @@ sendNotifSchema.statics.getDescrAndLinkByRecNotif = function(recnotif) {
newdescr = i18n.__('<strong>%s</strong> refused your Friendship', userorig, mydescr); newdescr = i18n.__('<strong>%s</strong> refused your Friendship', userorig, mydescr);
} }
} else if (recnotif.typedir === shared_consts.TypeNotifs.TYPEDIR_GROUPS) { } else if (recnotif.typedir === shared_consts.TypeNotifs.TYPEDIR_GROUPS) {
recnotif.openUrl = '/group/' + 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.__('<strong>%s</strong> asked you for Friendship', userorig, mydescr); newdescr = i18n.__('GROUP_CREATED', userorig, recnotif.paramsObj.groupNameDest);
} else if (recnotif.typeid === shared_consts.TypeNotifs.ID_GROUP_ACCEPTED) { } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_GROUP_ACCEPTED) {
newdescr = i18n.__('<strong>%s</strong> accepted your Friendship', userorig, mydescr); newdescr = i18n.__('GROUPS_ACCEPTED', userorig, recnotif.paramsObj.groupNameDest);
} }
} }
@@ -334,7 +334,7 @@ sendNotifSchema.statics.getDefaultRec = function(req) {
}; };
sendNotifSchema.statics.createNewNotification = async function(req, res, table, rec, typedir, typeid) { sendNotifSchema.statics.createNewNotification = async function(req, res, paramsObj, table, rec, typedir, typeid) {
const SendNotif = this; const SendNotif = this;
try { try {
@@ -348,7 +348,7 @@ sendNotifSchema.statics.createNewNotification = async function(req, res, table,
myrecnotif.typedir = typedir; myrecnotif.typedir = typedir;
myrecnotif.typeid = typeid; myrecnotif.typeid = typeid;
await SendNotif.sendToTheDestinations(myrecnotif, req, res); await SendNotif.sendToTheDestinations(myrecnotif, req, res, paramsObj);
return true; return true;
} catch (e) { } catch (e) {
@@ -375,7 +375,7 @@ sendNotifSchema.statics.createNewNotifToSingleUser = async function(req, res, pa
} }
}; };
sendNotifSchema.statics.sendToTheDestinations = async function(myrecnotif, req, res) { sendNotifSchema.statics.sendToTheDestinations = async function(myrecnotif, req, res, paramsObj) {
const SendNotif = this; const SendNotif = this;
const {User} = require('../models/user'); const {User} = require('../models/user');
@@ -383,6 +383,8 @@ sendNotifSchema.statics.sendToTheDestinations = async function(myrecnotif, req,
const {City} = require('../models/city'); const {City} = require('../models/city');
const {Province} = require('../models/province'); const {Province} = require('../models/province');
myrecnotif.paramsObj = paramsObj;
try { try {
// Send only to the destination to reach: // Send only to the destination to reach:
@@ -466,6 +468,12 @@ sendNotifSchema.statics.sendToTheDestinations = async function(myrecnotif, req,
} }
if (shared_consts.TABLES_GROUPS_NOTIFICATION.includes(myrecnotif.tablerec)) {
if (tools.isBitActive(usernotifprofile.value, shared_consts.GroupsNotifs.STATUS_GROUPS_NEW)) {
send = true;
}
}
if (send) { if (send) {
myrecnotif.dest = user.username; myrecnotif.dest = user.username;
await SendNotif.saveAndSendNotif(myrecnotif, req, res, user); await SendNotif.saveAndSendNotif(myrecnotif, req, res, user);
@@ -484,10 +492,10 @@ sendNotifSchema.statics.sendToSingleUserDest = async function(myrecnotif, req, r
try { try {
myrecnotif.paramsObj = paramsObj;
myrecnotif.dest = paramsObj.usernameDest ? paramsObj.usernameDest : '';
myrecnotif = this.getDescrAndLinkByRecNotif(myrecnotif); myrecnotif = this.getDescrAndLinkByRecNotif(myrecnotif);
myrecnotif.dest = paramsObj.usernameDest;
myrecnotif.paramsObj = paramsObj;
if (onlysave) { if (onlysave) {
await SendNotif.saveNotif(myrecnotif); await SendNotif.saveNotif(myrecnotif);
} else { } else {

View File

@@ -1768,7 +1768,7 @@ UserSchema.statics.setGroupsCmd = async function(idapp, usernameOrig, groupnameD
// CREATE NOTIFICATION IN TABLE SENDNOTIF // CREATE NOTIFICATION IN TABLE SENDNOTIF
const req = tools.getReqByPar(idapp, usernameOrig); const req = tools.getReqByPar(idapp, usernameOrig);
SendNotif.create(req, null, {usernameDest:'', groupnameDest}, true, shared_consts.TypeNotifs.TYPEDIR_GROUPS, shared_consts.TypeNotifs.ID_GROUP_ACCEPTED); SendNotif.createNewNotifToSingleUser(req, null, {usernameDest:'', groupnameDest}, true, shared_consts.TypeNotifs.TYPEDIR_GROUPS, shared_consts.TypeNotifs.ID_GROUP_ACCEPTED);
// Elimina la richiesta: // Elimina la richiesta:
update = {$pull: {req_users: {username: {$in: [usernameOrig]}}}}; update = {$pull: {req_users: {username: {$in: [usernameOrig]}}}};

View File

@@ -327,21 +327,12 @@ router.post('/settable', authenticate, async (req, res) => {
} }
// tools.mylog('rec', rec); // tools.mylog('rec', rec);
}).then((myrec) => { }).then(async (myrec) => {
if (params.table === shared_consts.TAB_MYGROUPS && isnewrec) {
// nuovo Record:
// aggiungi il creatore al gruppo stesso
return User.setGroupsCmd(mydata.idapp, req.user.username,
myrec.groupname,
shared_consts.GROUPSCMD.SETGROUP, true, req.user.username).then((ris) => {
return res.send(myrec);
});
}
let setnotif = false; let setnotif = false;
let typedir = 0; let typedir = 0;
let typeid = 0; let typeid = 0;
let groupNameDest = '';
if (shared_consts.TABLES_ADV_NOTIFICATION.includes(params.table)) { if (shared_consts.TABLES_ADV_NOTIFICATION.includes(params.table)) {
typedir = shared_consts.TypeNotifs.TYPEDIR_BACHECA; typedir = shared_consts.TypeNotifs.TYPEDIR_BACHECA;
@@ -358,13 +349,25 @@ router.post('/settable', authenticate, async (req, res) => {
if (shared_consts.TABLES_GROUPS_NOTIFICATION.includes(params.table)) { if (shared_consts.TABLES_GROUPS_NOTIFICATION.includes(params.table)) {
typedir = shared_consts.TypeNotifs.TYPEDIR_GROUPS; typedir = shared_consts.TypeNotifs.TYPEDIR_GROUPS;
typeid = shared_consts.TypeNotifs.ID_GROUP_NEW_REC; typeid = shared_consts.TypeNotifs.ID_GROUP_NEW_REC;
groupNameDest = myrec ? myrec.groupname : '';
setnotif = true; setnotif = true;
} }
if (setnotif) { if (setnotif) {
SendNotif.createNewNotification(req, res, params.table, myrec, typedir, typeid); await SendNotif.createNewNotification(req, res, {groupNameDest}, params.table, myrec, typedir, typeid);
} }
if (params.table === shared_consts.TAB_MYGROUPS && isnewrec) {
// nuovo Record:
// aggiungi il creatore al gruppo stesso
return User.setGroupsCmd(mydata.idapp, req.user.username,
myrec.groupname,
shared_consts.GROUPSCMD.SETGROUP, true, req.user.username).then((ris) => {
return res.send(myrec);
});
}
return res.send(myrec); return res.send(myrec);
}).catch((e) => { }).catch((e) => {
console.error('settable', e.message); console.error('settable', e.message);

View File

@@ -44,7 +44,7 @@ router.post('/', authenticate, (req, res) => {
}).then(async (recmyevent) => { }).then(async (recmyevent) => {
// tools.mylog('myevent:', myevent); // tools.mylog('myevent:', myevent);
// tools.mylog('already exist'); // tools.mylog('already exist');
SendNotif.createNewNotification(req, res, shared_consts.TABLES_MYEVENTS, recmyevent, shared_consts.TypeNotifs.TYPEDIR_EVENTS, shared_consts.TypeNotifs.ID_EVENTS_NEW_REC); SendNotif.createNewNotification(req, res, {}, shared_consts.TABLES_MYEVENTS, recmyevent, shared_consts.TypeNotifs.TYPEDIR_EVENTS, shared_consts.TypeNotifs.ID_EVENTS_NEW_REC);
return res; return res;
}).then((res) => { }).then((res) => {
res.send({code: server_constants.RIS_CODE_OK, msg: '', id: recmyevent._id}); res.send({code: server_constants.RIS_CODE_OK, msg: '', id: recmyevent._id});
@@ -59,7 +59,7 @@ router.post('/', authenticate, (req, res) => {
myevent.findById(idobj).then((recmyevent) => { myevent.findById(idobj).then((recmyevent) => {
recmyevent.typedir = shared_consts.TypeNotifs.TYPEDIR_EVENTS recmyevent.typedir = shared_consts.TypeNotifs.TYPEDIR_EVENTS
recmyevent.typeid = shared_consts.TypeNotifs.ID_EVENTS_NEW_REC recmyevent.typeid = shared_consts.TypeNotifs.ID_EVENTS_NEW_REC
SendNotif.createNewNotification(req, res, shared_consts.TABLES_MYEVENTS, recmyevent, shared_consts.TypeNotifs.TYPEDIR_EVENTS, shared_consts.TypeNotifs.ID_EVENTS_NEW_REC); SendNotif.createNewNotification(req, res, {}, shared_consts.TABLES_MYEVENTS, recmyevent, shared_consts.TypeNotifs.TYPEDIR_EVENTS, shared_consts.TypeNotifs.ID_EVENTS_NEW_REC);
return res.send({code: server_constants.RIS_CODE_OK, msg: '', id: recmyevent._id}); return res.send({code: server_constants.RIS_CODE_OK, msg: '', id: recmyevent._id});
}); });
}); });
@@ -79,7 +79,7 @@ router.delete('/:id/:notify/:idapp', authenticate, (req, res) => {
} }
if (notify === '1') { if (notify === '1') {
SendNotif.createNewNotification(req, res, shared_consts.TABLES_MYEVENTS, recmyevent, shared_consts.TypeNotifs.TYPEDIR_EVENTS, shared_consts.TypeNotifs.ID_EVENTS_REMOVE_REC); SendNotif.createNewNotification(req, res, {}, shared_consts.TABLES_MYEVENTS, recmyevent, shared_consts.TypeNotifs.TYPEDIR_EVENTS, shared_consts.TypeNotifs.ID_EVENTS_REMOVE_REC);
} }
tools.mylog('DELETED ', recmyevent.descr, recmyevent._id); tools.mylog('DELETED ', recmyevent.descr, recmyevent._id);

View File

@@ -29,8 +29,16 @@ async function getGroupRecAdminsInfo(idapp, data) {
router.post('/load', authenticate, async (req, res) => { router.post('/load', authenticate, async (req, res) => {
const idapp = req.body.idapp; const idapp = req.body.idapp;
const groupname = req.body.groupname; const groupname = req.body.groupname;
const usernameOrig = req.user.username;
try { try {
const {SendNotif} = require('../models/sendnotif');
// Check if ìs a Notif to read
const idnotif = req.body['idnotif'] ? req.body['idnotif'] : '';
SendNotif.setNotifAsRead(idapp, usernameOrig, idnotif);
const whatshow = MyGroup.getWhatToShow(idapp, req.user.username); const whatshow = MyGroup.getWhatToShow(idapp, req.user.username);
let data = await MyGroup.findOne({idapp, groupname}, whatshow).lean(); let data = await MyGroup.findOne({idapp, groupname}, whatshow).lean();

View File

@@ -295,6 +295,12 @@ module.exports = {
STATUS_GROUPS_REFUSED: 4, STATUS_GROUPS_REFUSED: 4,
}, },
GroupsNotifs: {
STATUS_GROUPS_NEW: 1,
STATUS_GROUPS_ACCEPTED: 2,
STATUS_GROUPS_REFUSED: 4,
},
TypeNotifs: { TypeNotifs: {
TYPEDIR_BACHECA: 1, TYPEDIR_BACHECA: 1,
ID_BACHECA_NEW_GOOD: 1, ID_BACHECA_NEW_GOOD: 1,
@@ -307,13 +313,13 @@ module.exports = {
TYPEDIR_FRIENDS: 3, TYPEDIR_FRIENDS: 3,
ID_FRIENDS_NEW_REC: 1, ID_FRIENDS_NEW_REC: 1,
ID_FRIENDS_ACCEPTED: 2, ID_FRIENDS_ACCEPTED: 2,
ID_FRIENDS_REFUSED: 3, ID_FRIENDS_REFUSED: 4,
ID_FRIENDS_ACCEPTED_MY_REQUEST: 4, ID_FRIENDS_ACCEPTED_MY_REQUEST: 8,
TYPEDIR_GROUPS: 4, TYPEDIR_GROUPS: 4,
ID_GROUP_NEW_REC: 1, ID_GROUP_NEW_REC: 1,
ID_GROUP_ACCEPTED: 2, ID_GROUP_ACCEPTED: 2,
ID_GROUP_REFUSED: 3, ID_GROUP_REFUSED: 4,
TYPEDIR_CIRCUITS: 5, TYPEDIR_CIRCUITS: 5,