Pannello Utente

Aggiornamento Yarn
- Notifiche (1)
This commit is contained in:
Paolo Arena
2022-07-10 01:25:19 +02:00
parent c8324f0de4
commit ba99b72e69
10 changed files with 383 additions and 43 deletions

107
src/server/models/sendnotif.js Executable file
View File

@@ -0,0 +1,107 @@
const mongoose = require('mongoose').set('debug', false)
const Schema = mongoose.Schema;
mongoose.Promise = global.Promise;
mongoose.level = "F";
const { ObjectID } = require('mongodb');
// Resolving error Unknown modifier: $pushAll
mongoose.plugin(schema => {
schema.options.usePushEach = true
});
const sendNotifSchema = new Schema({
idapp: {
type: String,
},
type: {
type: Number,
},
sender: { // mittente
type: String,
},
dest: {
type: String,
},
descr: {
type: String,
},
datenotif: {
type: Date,
},
status: {
type: Number,
},
read: {
type: Boolean,
default: false
},
deleted: {
type: Boolean,
default: false
},
});
sendNotifSchema.statics.findAllNotifByUsernameIdAndIdApp = function (username, lastdataread, idapp) {
const SendNotif = this;
return SendNotif.find({
$and: [
{ idapp },
{ 'dest': username },
{ 'datenotif': {$gt: new Date(lastdataread)} },
]
}).then((arrnotif) => {
console.log('arrnotif', arrnotif.length);
return arrnotif
}).catch((err) => {
console.error('err', err);
});
};
sendNotifSchema.statics.findLastGroupByUserIdAndIdApp = function (username, idapp) {
const SendNotif = this;
return SendNotif.aggregate([
{
$match: {
idapp,
dest: username,
}
},
{
$group:
{
_id: "$dest",
descr: { $last: "$message" },
datenotif: { $last: "$datenotif" },
read: { $last: "$read" }
}
},
{
$sort: { datenotif: -1 }
},
])
.then((arrnotif) => {
// Remove duplicate
// Exclude my chat
const myarr = arrnotif.filter((ris) => ris._id !== username);
// console.table(myarr);
return myarr
}).catch((err) => {
console.error(err);
});
};
const SendNotif = mongoose.model('SendNotif', sendNotifSchema);
module.exports = { SendNotif: SendNotif };