- sistemato anche il users/profile ed aggiunto /users/activities
This commit is contained in:
@@ -1727,8 +1727,8 @@ UserSchema.statics.getUserProfileByUsername = async function (
|
|||||||
'profile.username_telegram': 1,
|
'profile.username_telegram': 1,
|
||||||
'profile.firstname_telegram': 1,
|
'profile.firstname_telegram': 1,
|
||||||
'profile.lastname_telegram': 1,
|
'profile.lastname_telegram': 1,
|
||||||
'profile.intcode_cell': 1,
|
// 'profile.intcode_cell': 1,
|
||||||
'profile.cell': 1,
|
// 'profile.cell': 1,
|
||||||
'profile.website': 1,
|
'profile.website': 1,
|
||||||
'profile.img': 1,
|
'profile.img': 1,
|
||||||
'profile.sex': 1,
|
'profile.sex': 1,
|
||||||
@@ -2061,7 +2061,7 @@ UserSchema.statics.addCircuitToUser = async function (idapp, usernameOrig, circu
|
|||||||
} else {
|
} else {
|
||||||
|
|
||||||
// prima di aggiungerlo controlla se esiste già !
|
// prima di aggiungerlo controlla se esiste già !
|
||||||
|
|
||||||
let update = {
|
let update = {
|
||||||
$addToSet: { // Utilizziamo $addToSet invece di $push per garantire che l'elemento venga aggiunto solo se non esiste già
|
$addToSet: { // Utilizziamo $addToSet invece di $push per garantire che l'elemento venga aggiunto solo se non esiste già
|
||||||
'profile.mycircuits': {
|
'profile.mycircuits': {
|
||||||
@@ -2072,7 +2072,7 @@ UserSchema.statics.addCircuitToUser = async function (idapp, usernameOrig, circu
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
ris = await User.updateOne({ idapp, username: usernameOrig, 'profile.mycircuits': { $not: { $elemMatch: { circuitname } } } }, update);
|
ris = await User.updateOne({ idapp, username: usernameOrig, 'profile.mycircuits': { $not: { $elemMatch: { circuitname } } } }, update);
|
||||||
|
|
||||||
if (confido) {
|
if (confido) {
|
||||||
@@ -4870,27 +4870,27 @@ function calculate30DayAverage(data) {
|
|||||||
const averages = [];
|
const averages = [];
|
||||||
|
|
||||||
for (let i = 0; i < data.length; i++) {
|
for (let i = 0; i < data.length; i++) {
|
||||||
const startDate = new Date(data[i]._id);
|
const startDate = new Date(data[i]._id);
|
||||||
let sum = data[i].count;
|
let sum = data[i].count;
|
||||||
let count = 1;
|
let count = 1;
|
||||||
|
|
||||||
for (let j = i + 1; j < data.length; j++) {
|
for (let j = i + 1; j < data.length; j++) {
|
||||||
const currentDate = new Date(data[j]._id);
|
const currentDate = new Date(data[j]._id);
|
||||||
const diffInTime = Math.abs(startDate.getTime() - currentDate.getTime());
|
const diffInTime = Math.abs(startDate.getTime() - currentDate.getTime());
|
||||||
const diffInDays = Math.ceil(diffInTime / (1000 * 60 * 60 * 24));
|
const diffInDays = Math.ceil(diffInTime / (1000 * 60 * 60 * 24));
|
||||||
|
|
||||||
if (diffInDays <= 30) {
|
if (diffInDays <= 30) {
|
||||||
sum += data[j].count;
|
sum += data[j].count;
|
||||||
count++;
|
count++;
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
averages.push({
|
averages.push({
|
||||||
_id: data[i]._id,
|
_id: data[i]._id,
|
||||||
dailyAverage: sum / count
|
dailyAverage: sum / count
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return averages;
|
return averages;
|
||||||
@@ -5202,6 +5202,24 @@ UserSchema.statics.getExtraInfoByUsername = async function (idapp, username) {
|
|||||||
return null;
|
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) {
|
UserSchema.statics.addExtraInfo = async function (idapp, recUser, recUserSave, version) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -5566,7 +5584,7 @@ UserSchema.statics.addNewSite = async function (idappPass, body) {
|
|||||||
// cerca un IdApp Libero
|
// cerca un IdApp Libero
|
||||||
let idapp = await Site.generateNewSite_IdApp(idappPass, body, true);
|
let idapp = await Site.generateNewSite_IdApp(idappPass, body, true);
|
||||||
|
|
||||||
|
|
||||||
if (idapp) {
|
if (idapp) {
|
||||||
let arrSite = await Site.find({ idapp }).lean();
|
let arrSite = await Site.find({ idapp }).lean();
|
||||||
let numutenti = 0;
|
let numutenti = 0;
|
||||||
@@ -5576,7 +5594,7 @@ UserSchema.statics.addNewSite = async function (idappPass, body) {
|
|||||||
|
|
||||||
if (arrSite && arrSite.length === 1 && numutenti < 2) {
|
if (arrSite && arrSite.length === 1 && numutenti < 2) {
|
||||||
const MyTelegramBot = require('../telegram/telegrambot');
|
const MyTelegramBot = require('../telegram/telegrambot');
|
||||||
|
|
||||||
// Nessun Sito Installato e Nessun Utente installato !
|
// Nessun Sito Installato e Nessun Utente installato !
|
||||||
let myuser = new User();
|
let myuser = new User();
|
||||||
myuser._id = new ObjectID();
|
myuser._id = new ObjectID();
|
||||||
|
|||||||
@@ -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 usernameOrig = req.user ? req.user.username : '';
|
||||||
const perm = req.user ? req.user.perm : tools.Perm.PERM_NONE;
|
const perm = req.user ? req.user.perm : tools.Perm.PERM_NONE;
|
||||||
const username = req.body['username'];
|
const username = req.body['username'];
|
||||||
@@ -464,7 +464,7 @@ router.post('/profile', authenticate_noerror, (req, res) => {
|
|||||||
return User.getFriendsByUsername(idapp, usernameOrig).
|
return User.getFriendsByUsername(idapp, usernameOrig).
|
||||||
then(async (friends) => {
|
then(async (friends) => {
|
||||||
if (username === usernameOrig) {
|
if (username === usernameOrig) {
|
||||||
const userprofile = await User.getExtraInfoByUsername(idapp, username);
|
const userprofile = await User.getExtraInfoByUsername(idapp, ris.username);
|
||||||
ris.profile = userprofile;
|
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) => {
|
router.post('/panel', authenticate, async (req, res) => {
|
||||||
const username = req.body['username'];
|
const username = req.body['username'];
|
||||||
idapp = req.body.idapp;
|
idapp = req.body.idapp;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user