- sistemato anche il users/profile ed aggiunto /users/activities

This commit is contained in:
Surya Paolo
2024-03-21 22:58:46 +01:00
parent bd95e4457f
commit 22771c1ea7
3 changed files with 762 additions and 680 deletions

View File

@@ -1727,8 +1727,8 @@ UserSchema.statics.getUserProfileByUsername = async function (
'profile.username_telegram': 1,
'profile.firstname_telegram': 1,
'profile.lastname_telegram': 1,
'profile.intcode_cell': 1,
'profile.cell': 1,
// 'profile.intcode_cell': 1,
// 'profile.cell': 1,
'profile.website': 1,
'profile.img': 1,
'profile.sex': 1,
@@ -5202,6 +5202,24 @@ UserSchema.statics.getExtraInfoByUsername = async function (idapp, username) {
return null;
};
UserSchema.statics.getProfilePerActivitiesByUsername = async function (idapp, username) {
const User = this;
try {
let myuser = await User.findOne({ idapp, username }).lean();
if (myuser) {
return {
mygroups: myuser.profile.mygroups,
mycircuits: myuser.profile.mycircuits };
}
} catch (e) {
console.error('e', e);
}
return null;
};
UserSchema.statics.addExtraInfo = async function (idapp, recUser, recUserSave, version) {
try {

View File

@@ -443,7 +443,7 @@ router.post('/receiveris', authenticate, (req, res) => {
};
});
router.post('/profile', authenticate_noerror, (req, res) => {
router.post('/profile', authenticate, (req, res) => {
const usernameOrig = req.user ? req.user.username : '';
const perm = req.user ? req.user.perm : tools.Perm.PERM_NONE;
const username = req.body['username'];
@@ -464,7 +464,7 @@ router.post('/profile', authenticate_noerror, (req, res) => {
return User.getFriendsByUsername(idapp, usernameOrig).
then(async (friends) => {
if (username === usernameOrig) {
const userprofile = await User.getExtraInfoByUsername(idapp, username);
const userprofile = await User.getExtraInfoByUsername(idapp, ris.username);
ris.profile = userprofile;
}
@@ -485,6 +485,54 @@ router.post('/profile', authenticate_noerror, (req, res) => {
});
router.post('/activities', authenticate_noerror, (req, res) => {
const usernameOrig = req.user ? req.user.username : '';
const perm = req.user ? req.user.perm : tools.Perm.PERM_NONE;
const username = req.body['username'];
const idapp = req.body.idapp;
const locale = req.body.locale;
//++Todo: controlla che tipo di dati ha il permesso di leggere
try {
// Check if ìs a Notif to read
const idnotif = req.body['idnotif'] ? req.body['idnotif'] : '';
SendNotif.setNotifAsRead(idapp, usernameOrig, idnotif);
return User.getUserProfileByUsername(idapp, username, usernameOrig,
false, perm).
then((ris) => {
return User.getFriendsByUsername(idapp, usernameOrig).
then(async (friends) => {
let userprofile = null;
if (req.user) {
userprofile = await User.getExtraInfoByUsername(idapp, ris.username);
} else {
userprofile = await User.getProfilePerActivitiesByUsername(idapp, ris.username);
ris.aportador_solidario = '';
ris.date_reg = '';
ris.email = '';
}
ris.profile = userprofile;
return { ris, friends };
}).then(tot => {
return res.send({ user: tot.ris, friends: tot.friends });
});
}).catch((e) => {
tools.mylog('ERRORE IN Profile: ' + e.message);
res.status(400).send();
});
} catch (e) {
tools.mylogserr('Error profile: ', e);
res.status(400).send();
}
});
router.post('/panel', authenticate, async (req, res) => {
const username = req.body['username'];
idapp = req.body.idapp;

View File

@@ -2324,6 +2324,7 @@ module.exports = {
getQueryTable: async function (idapp, params, user) {
try {
const { Search } = require('../models/search');
@@ -2938,6 +2939,7 @@ module.exports = {
// if (!User.isAdmin(req.user.perm)) {
// not Visibility_Group.HIDDEN
if (!filteradmin) {
if (user) {
const filter = [
{
$or: [
@@ -2955,6 +2957,17 @@ module.exports = {
},
];
query.push({ $match: { $and: filter } });
} else {
const filter = [
{
visibility: {
$nin: [shared_consts.Visibility_Group.HIDDEN],
},
},
];
query.push({ $match: { $and: filter } });
}
}
// }
}
@@ -3005,6 +3018,9 @@ module.exports = {
// console.log('query', query);
return query;
} catch (e) {
console.error('Err query:', e);
}
},