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