fix: made user room number a string for added flexibility

This commit is contained in:
2025-05-06 21:45:48 +02:00
parent 2dc447a446
commit 9423b4804a
7 changed files with 11 additions and 11 deletions

View File

@@ -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) => {

View File

@@ -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: {

View File

@@ -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)
}) })
}) })

View File

@@ -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":

View File

@@ -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 => {

View File

@@ -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,
}) })

View File

@@ -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: {