From 4154605fdd410db1cc8757a7ed5d94d5818dbdc7 Mon Sep 17 00:00:00 2001 From: Paolo Arena Date: Fri, 25 Oct 2019 19:08:38 +0200 Subject: [PATCH] - Fixed Image avatar user list, q-qvatar rounded image --- server/models/sendmsg.js | 75 ++++++++++++++++++++--------------- server/models/user.js | 9 +++-- server/router/index_router.js | 4 +- server/router/users_router.js | 5 ++- server/tests/seed/seed.js | 1 - server/tools/shared_nodejs.js | 2 +- 6 files changed, 56 insertions(+), 40 deletions(-) diff --git a/server/models/sendmsg.js b/server/models/sendmsg.js index 9a7d21f..d02def4 100644 --- a/server/models/sendmsg.js +++ b/server/models/sendmsg.js @@ -44,43 +44,54 @@ const sendmsgSchema = new Schema({ sendmsgSchema.statics.findAllByUserIdAndIdApp = function (userId, username, idapp) { const SendMsg = this; - // Filter my msg - // - // (userId or dest.username === username) and idapp - - console.log('userId', userId); - return SendMsg.find({ - $and: [ + $and: [ + { + $or: [ + { 'origin.userId': userId }, + { 'dest.username': username }] + }, + { idapp } + ] + }, (err, arrmsg) => { + return arrmsg + }); + +}; + +sendmsgSchema.statics.findLastGroupByUserIdAndIdApp = function (userId, username, idapp) { + const SendMsg = this; + + return SendMsg.aggregate([ + { + $match: { + $or: [{ 'origin.userId': userId }, { 'dest.username': username }, { idapp }], + $and: [{ idapp }] + } + }, + { + $group: { - $or: [ - { 'origin.userId': userId }, - { 'dest.username': username }] - }, - { idapp } - ] - }, (err, arrmsg) => { - // console.log('ris arrmsg:', arrmsg); + _id: "$dest.username", + message: { $last: "$message" }, + datemsg: { $last: "$datemsg" }, + dest: { $last: "$dest" }, + origin: { $last: "$origin" }, + read: { $last: "$read" } + } + + }, + { + $sort: { datemsg: -1 } + }, + ]) + .then((arrmsg) => { + console.table(arrmsg); return arrmsg + }).catch((err) => { + console.error(err); }); - // return SendMsg.find( - // { - // $and: [ - // { - // $or: [ - // { 'dest.username': username }, - // { userId: userId } - // ], - // }, - // { - // idapp - // } - // ] - // }, (err, arrmsg) => { - // console.log('ris arrmsg:', arrmsg); - // return arrmsg - // }); }; diff --git a/server/models/user.js b/server/models/user.js index d3270ab..28abb3f 100644 --- a/server/models/user.js +++ b/server/models/user.js @@ -89,6 +89,9 @@ var UserSchema = new mongoose.Schema({ perm: { type: Number }, + img: { + type: String + }, ipaddr: { type: String, }, @@ -109,7 +112,7 @@ UserSchema.methods.toJSON = function () { var user = this; var userObject = user.toObject(); - return _.pick(userObject, ['_id', 'email', 'verified_email', 'idapp', 'username', 'userId', 'name', 'surname', 'perm']); + return _.pick(userObject, ['_id', ...shared_consts.fieldsUserToChange()]); }; UserSchema.methods.generateAuthToken = function (req) { @@ -306,7 +309,7 @@ UserSchema.methods.removeToken = function (token) { UserSchema.statics.getUsersList = function (idapp) { const User = this; - return User.find({ 'idapp': idapp }, { username: 1, name: 1, surname: 1, verified_email: 1, perm:1, email: 1, date_reg: 1 }) + return User.find({ 'idapp': idapp }, { username: 1, name: 1, surname: 1, verified_email: 1, perm:1, email: 1, date_reg: 1, img: 1 }) }; @@ -321,7 +324,7 @@ UserSchema.statics.getUsersListByParams = function (params) { return User.find( { $match: filterMatchBefore }, { 'idapp': idapp }, - { username: 1, name: 1, surname: 1, verified_email: 1, perm:1, email: 1, date_reg: 1 }) + { username: 1, name: 1, surname: 1, verified_email: 1, perm:1, email: 1, date_reg: 1, img: 1 }) }; diff --git a/server/router/index_router.js b/server/router/index_router.js index 59194df..e754e2c 100644 --- a/server/router/index_router.js +++ b/server/router/index_router.js @@ -354,7 +354,9 @@ router.get(process.env.LINK_CHECK_UPDATES, authenticate, (req, res) => { // const sall = '0'; - msgs = SendMsg.findAllByUserIdAndIdApp(userId, req.user.username, req.user.idapp); + // msgs = SendMsg.findAllByUserIdAndIdApp(userId, req.user.username, req.user.idapp); + msgs = SendMsg.findLastGroupByUserIdAndIdApp(userId, req.user.username, req.user.idapp); + let usersList = null; diff --git a/server/router/users_router.js b/server/router/users_router.js index 7a3f894..6fd89b4 100644 --- a/server/router/users_router.js +++ b/server/router/users_router.js @@ -145,10 +145,11 @@ router.post('/login', (req, res) => { usertosend.name = user.name; usertosend.surname = user.surname; usertosend.email = user.email; - usertosend.userId = user._id.toHexString(); + usertosend._id = user._id.toHexString(); usertosend.verified_email = user.verified_email; usertosend.idapp = user.idapp; usertosend.perm = user.perm; + usertosend.img = user.img; if (!User.isAdmin(req.user)) { usertosend.ipaddr = user.ipaddr; } @@ -166,7 +167,7 @@ router.post('/login', (req, res) => { const browser = req.get('User-Agent'); // Check if already exist Subscribe - return existSubScribe(myris.usertosend.userId, access, browser).then(subscribe => { + return existSubScribe(myris.usertosend._id, access, browser).then(subscribe => { return (subscribe !== null) }).then(subsExistonDb => { return { usertosend: myris.usertosend, token: myris.token, subsExistonDb } diff --git a/server/tests/seed/seed.js b/server/tests/seed/seed.js index 776157d..25b43e0 100644 --- a/server/tests/seed/seed.js +++ b/server/tests/seed/seed.js @@ -125,7 +125,6 @@ const todos = [{ pos: 3, priority: 1, progress: 0, - userId: users[1]._id }, { // RECORD CHE VERRA' UTILIZZATO PER AGGIUNGERE UN NUOVO TASK _id: new ObjectID(), category: "personal", diff --git a/server/tools/shared_nodejs.js b/server/tools/shared_nodejs.js index 663a72e..2320b9c 100644 --- a/server/tools/shared_nodejs.js +++ b/server/tools/shared_nodejs.js @@ -7,7 +7,7 @@ module.exports = { }, fieldsUserToChange() { - return ['username', 'email', 'name', 'surname', 'perm', 'date_reg', 'verified_email'] + return ['username', 'email', 'name', 'surname', 'perm', 'date_reg', 'verified_email', 'img', 'ipaddr'] } };