Pannello Utente
Aggiornamento Yarn - Notifiche (1)
This commit is contained in:
107
src/server/models/sendnotif.js
Executable file
107
src/server/models/sendnotif.js
Executable 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 };
|
||||
Reference in New Issue
Block a user