env push
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
import express from 'express';
|
||||
import gameRoomService from '../services/game_room.js';
|
||||
import authenticateToken from '../middleware/auth.js';
|
||||
const router = express.Router();
|
||||
|
||||
router.get('/', authenticateToken, async(req, res) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
const rooms = await gameRoomService.listActiveRooms();
|
||||
res.json(rooms);
|
||||
}
|
||||
catch (err)
|
||||
{
|
||||
console.error(err);
|
||||
res.status(500).json({error: 'Server error'});
|
||||
}
|
||||
});
|
||||
|
||||
router.get('/:roomId', authenticateToken, async(req, res) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
const room = await gameRoomService.getRoomById(req.params.roomId);
|
||||
if (!room)
|
||||
return (res.status(404).json({error: 'Room not found'}));
|
||||
res.json(room);
|
||||
}
|
||||
catch(err)
|
||||
{
|
||||
console.error(err);
|
||||
res.status(500).json({error: 'Server error'});
|
||||
}
|
||||
});
|
||||
|
||||
router.get('/:roomId/players', authenticateToken, async(req, res) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
const players = await gameRoomService.getRoomPlayers(req.params.roomId);
|
||||
res.json(players);
|
||||
}
|
||||
catch(err)
|
||||
{
|
||||
console.error(err);
|
||||
res.status(500).json({error: 'Server error'});
|
||||
}
|
||||
});
|
||||
|
||||
router.post('/', authenticateToken, async(req, res) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
const {name} = req.body;
|
||||
if (!name)
|
||||
return (res.status(400).json({error: 'Room name required'}));
|
||||
const room = await gameRoomService.createRoom(name, req.user.userId);
|
||||
res.status(201).json(room);
|
||||
}
|
||||
catch(err)
|
||||
{
|
||||
console.error(err);
|
||||
res.status(500).json({error: 'Server error'});
|
||||
}
|
||||
});
|
||||
|
||||
router.post('/:roomId/join', authenticateToken, async(req, res) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
const player = await gameRoomService.joinRoom(req.params.roomId, req.user.userId);
|
||||
res.json(player);
|
||||
}
|
||||
catch(err)
|
||||
{
|
||||
console.error(err);
|
||||
if (err.message.includes('full') || err.message.includes('already'))
|
||||
res.status(400).json({error: err.message});
|
||||
else
|
||||
res.status(500).json({error: err.message});
|
||||
}
|
||||
});
|
||||
|
||||
router.post('/:roomId/leave', authenticateToken, async(req, res) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
await gameRoomService.leaveRoom(req.params.roomId, req.user.userId);
|
||||
res.json({message: 'Left room successfully'});
|
||||
}
|
||||
catch(err)
|
||||
{
|
||||
console.error(err);
|
||||
res.status(500).json({error: 'Server error'});
|
||||
}
|
||||
});
|
||||
|
||||
export default router;
|
||||
Reference in New Issue
Block a user