Files
ipwa-backend/src/pipelines/notif.ts

88 lines
1.4 KiB
TypeScript

import { PipelineStage, Types } from "mongoose"
function userNotif(uname: string) {
var pipeline: PipelineStage[] = [
{
"$match": {
uname: uname
}
}
]
return pipeline
}
function roomNotif(room: string) {
var pipeline: PipelineStage[] = [
{
$lookup: {
from: "logins",
localField: "uname",
foreignField: "uname",
as: "user",
},
},
{
$unwind: {
path: "$user",
preserveNullAndEmptyArrays: false,
},
},
{
$addFields: {
rooms: "$user.room",
},
},
{
$match:
{
rooms: room,
},
},
{
$unset:
["user", "uname", "rooms"],
},
]
return pipeline
}
function allNotif() {
var pipeline: PipelineStage[] = [
{
$lookup: {
from: "logins",
localField: "uname",
foreignField: "uname",
as: "user",
},
},
{
$unwind: {
path: "$user",
preserveNullAndEmptyArrays: false,
},
},
{
$addFields: {
rooms: "$user.room",
},
},
{
$match:
{
rooms: {$exists: true},
},
},
{
$unset:
["user", "uname", "rooms"],
},
]
return pipeline
}
function groupNotif(group: string) {
return
}
export { userNotif, roomNotif, allNotif, groupNotif }