fix: made user room number a string for added flexibility
This commit is contained in:
@@ -41,7 +41,7 @@ export class NotifcationHelper {
|
|||||||
user: async (uname: string) => {
|
user: async (uname: string) => {
|
||||||
return await this.send(message, await Notification.aggregate(userNotif(uname)))
|
return await this.send(message, await Notification.aggregate(userNotif(uname)))
|
||||||
},
|
},
|
||||||
room: async (room: number) => {
|
room: async (room: string) => {
|
||||||
return await this.send(message, await Notification.aggregate(roomNotif(room)))
|
return await this.send(message, await Notification.aggregate(roomNotif(room)))
|
||||||
},
|
},
|
||||||
group: async (group: string) => {
|
group: async (group: string) => {
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ function userNotif(uname: string) {
|
|||||||
return pipeline
|
return pipeline
|
||||||
}
|
}
|
||||||
|
|
||||||
function roomNotif(room: number) {
|
function roomNotif(room: string) {
|
||||||
var pipeline: PipelineStage[] = [
|
var pipeline: PipelineStage[] = [
|
||||||
{
|
{
|
||||||
$lookup: {
|
$lookup: {
|
||||||
|
|||||||
@@ -38,19 +38,19 @@ cleanRouter.get("/summary/:start/:stop", async (req, res) => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
data = data.map(v => v.toJSON())
|
data = data.map(v => v.toJSON())
|
||||||
var byRoom: {[room: number]: any[]} = {}
|
var byRoom: {[room: string]: any[]} = {}
|
||||||
data.forEach((v) => {
|
data.forEach((v) => {
|
||||||
let roomarray = byRoom[v.room] ? byRoom[v.room] : [];
|
let roomarray = byRoom[v.room] ? byRoom[v.room] : [];
|
||||||
byRoom[v.room] = [...roomarray, {...v, room: undefined}]
|
byRoom[v.room] = [...roomarray, {...v, room: undefined}]
|
||||||
})
|
})
|
||||||
var stat: {room: number, avg: number}[] = []
|
var stat: {room: string, avg: number}[] = []
|
||||||
for (let i in byRoom) {
|
for (let i in byRoom) {
|
||||||
var sum: number = 0
|
var sum: number = 0
|
||||||
for (let j of byRoom[i]) {
|
for (let j of byRoom[i]) {
|
||||||
sum += j.grade
|
sum += j.grade
|
||||||
}
|
}
|
||||||
let avrg = sum/byRoom[i].length
|
let avrg = sum/byRoom[i].length
|
||||||
stat.push({room: Number.parseInt(i), avg: avrg})
|
stat.push({room: i, avg: avrg})
|
||||||
}
|
}
|
||||||
res.send(stat)
|
res.send(stat)
|
||||||
})
|
})
|
||||||
@@ -72,7 +72,7 @@ cleanRouter.get('/config', (req, res) => {
|
|||||||
|
|
||||||
cleanRouter.get('/attendence/:room', async (req, res) => {
|
cleanRouter.get('/attendence/:room', async (req, res) => {
|
||||||
res.send({
|
res.send({
|
||||||
users: await User.find({room: Number(req.params.room)}, {fname: true, surname: true, _id: true}),
|
users: await User.find({room: req.params.room}, {fname: true, surname: true, _id: true}),
|
||||||
attendence: attendence.getRoom(req.params.room)
|
attendence: attendence.getRoom(req.params.room)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ notifRouter.post("/send", async (req, res) => {
|
|||||||
result = await message.user(recp);
|
result = await message.user(recp);
|
||||||
break;
|
break;
|
||||||
case "room":
|
case "room":
|
||||||
recp = req.body.recp.room as number
|
recp = req.body.recp.room as string
|
||||||
result = await message.room(recp)
|
result = await message.room(recp)
|
||||||
break;
|
break;
|
||||||
case "all":
|
case "all":
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ appRouter.post("/menu/:timestamp", capability.mw(Features.Menu), async (req, res
|
|||||||
})
|
})
|
||||||
|
|
||||||
appRouter.get("/keys", capability.mw(Features.Key), async (req, res) => {
|
appRouter.get("/keys", capability.mw(Features.Key), async (req, res) => {
|
||||||
var keys = (await Key.find({tb: {$exists: false}}, {_id: 0, room: 1, whom: 0}, {sort: {room: 1}}))
|
var keys = await Key.find({tb: {$exists: false}}, {_id: 0, room: 1, whom: 0}, {sort: {room: 1}})
|
||||||
var occ = keys.map(x=>x.room)
|
var occ = keys.map(x=>x.room)
|
||||||
var all = usettings.settings.keyrooms
|
var all = usettings.settings.keyrooms
|
||||||
var free = all.filter(x=>!occ.includes(x)).sort().map(x => {
|
var free = all.filter(x=>!occ.includes(x)).sort().map(x => {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ interface IGrade {
|
|||||||
grade?: number;
|
grade?: number;
|
||||||
date: Date;
|
date: Date;
|
||||||
gradeDate?: Date;
|
gradeDate?: Date;
|
||||||
room: number;
|
room: string;
|
||||||
notes?: GradeNote[];
|
notes?: GradeNote[];
|
||||||
tips: string;
|
tips: string;
|
||||||
}
|
}
|
||||||
@@ -18,7 +18,7 @@ const gradeSchema = new Schema<IGrade>({
|
|||||||
grade: Number,
|
grade: Number,
|
||||||
date: {type: Date, required: true},
|
date: {type: Date, required: true},
|
||||||
gradeDate: Date,
|
gradeDate: Date,
|
||||||
room: {type: Number, required: true},
|
room: {type: String, required: true},
|
||||||
notes: [Object],
|
notes: [Object],
|
||||||
tips: String,
|
tips: String,
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { readFileSync, writeFileSync } from "node:fs";
|
import { readFileSync, writeFileSync } from "node:fs";
|
||||||
interface IUSettings {
|
interface IUSettings {
|
||||||
keyrooms: string[];
|
keyrooms: string[];
|
||||||
rooms: number[];
|
rooms: string[];
|
||||||
cleanThings: string[];
|
cleanThings: string[];
|
||||||
menu: {
|
menu: {
|
||||||
defaultItems: {
|
defaultItems: {
|
||||||
|
|||||||
Reference in New Issue
Block a user