2025-05-14 11:33:24 +02:00

85 lines
2.7 KiB
JavaScript

const express = require("express")
const controller = require("../controllers/db")
const router = express.Router()
router.get("/", (req, res) => {
const roomsRequest = controller.listRooms()
if (!roomsRequest.success) {
res.status(roomsRequest.code).json({
error: roomsRequest.error,
code: roomsRequest.code
})
}
const rooms = []
for (const room of roomsRequest.rooms) {
const playersRequest = controller.getPlayersFromRoom(room.id)
if (!playersRequest.success) {
res.status(playersRequest.code).json({
error: playersRequest.error,
code: playersRequest.code
})
break
}
delete room.password
room.players = playersRequest.players
rooms.push(room)
}
res.json(rooms)
})
//TO-DO : Finish it
router.post("/:roomId", controller.login, (req, res) => {
const { roomId } = req.params
const roomGetRequest = controller.getRoom(roomId)
if (roomGetRequest.success) {
if (roomGetRequest.room.owner == req.user.username) {
} else {
res.status(401).json({ success: false, error: "You must be the owner of this room to update it.", code: 401 })
}
} else {
res.status(roomGetRequest.code).json(roomGetRequest)
}
})
router.post("/:roomId/room", controller.login, (req, res) => {
const { roomId } = req.params
const { password } = req.body
const roomGetRequest = controller.getRoom(roomId)
if (roomGetRequest.success) {
if (!roomGetRequest.room.hasPassword) {
res.status(200).send()
} else {
if (!password) {
res.status(422).json({
code: 422,
message: "Missing parameter in body (password)"
})
}
if (password == roomGetRequest.room.password) {
res.status(200).send()
} else {
res.status(401).json({ code: 401, error: "Invalid credential." })
}
}
} else {
res.status(roomGetRequest.code).json(roomGetRequest)
}
})
router.delete("/:roomId", controller.login, (req, res) => {
const { roomId } = req.params
const roomGetRequest = controller.getRoom(roomId)
if (roomGetRequest.success) {
if (roomGetRequest.room.owner == req.user.username) {
const roomDeleteRequest = controller.deleteRoom()
res.json(roomDeleteRequest)
} else {
res.status(401).json({ success: false, error: "You must be the owner of this room to delete it.", code: 401 })
}
} else {
res.status(roomGetRequest.code).json(roomGetRequest)
}
})
module.exports = router