mirror of
https://github.com/AlecM33/Werewolf.git
synced 2025-12-26 15:57:50 +01:00
correctly 404 invalid games
This commit is contained in:
@@ -317,26 +317,20 @@ class GameManager {
|
|||||||
namespace.in(game.accessCode).emit(globals.EVENT_IDS.START_GAME);
|
namespace.in(game.accessCode).emit(globals.EVENT_IDS.START_GAME);
|
||||||
};
|
};
|
||||||
|
|
||||||
handleRequestForGameState = async (namespace, logger, gameRunner, accessCode, personCookie, ackFn, clientSocket) => {
|
handleRequestForGameState = async (game, namespace, logger, gameRunner, accessCode, personCookie, ackFn, clientSocket) => {
|
||||||
const game = gameRunner.activeGames.get(accessCode);
|
const matchingPerson = findPersonByField(game, 'cookie', personCookie);
|
||||||
if (game) {
|
if (matchingPerson) {
|
||||||
const matchingPerson = findPersonByField(game, 'cookie', personCookie);
|
if (matchingPerson.socketId === clientSocket.id) {
|
||||||
if (matchingPerson) {
|
logger.trace('matching person found with an established connection to the room: ' + matchingPerson.name);
|
||||||
if (matchingPerson.socketId === clientSocket.id) {
|
ackFn(GameStateCurator.getGameStateFromPerspectiveOfPerson(game, matchingPerson, gameRunner, clientSocket, logger));
|
||||||
logger.trace('matching person found with an established connection to the room: ' + matchingPerson.name);
|
|
||||||
ackFn(GameStateCurator.getGameStateFromPerspectiveOfPerson(game, matchingPerson, gameRunner, clientSocket, logger));
|
|
||||||
} else {
|
|
||||||
logger.trace('matching person found with a new connection to the room: ' + matchingPerson.name);
|
|
||||||
clientSocket.join(accessCode);
|
|
||||||
matchingPerson.socketId = clientSocket.id;
|
|
||||||
ackFn(GameStateCurator.getGameStateFromPerspectiveOfPerson(game, matchingPerson, gameRunner, clientSocket, logger));
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
rejectClientRequestForGameState(ackFn);
|
logger.trace('matching person found with a new connection to the room: ' + matchingPerson.name);
|
||||||
|
clientSocket.join(accessCode);
|
||||||
|
matchingPerson.socketId = clientSocket.id;
|
||||||
|
ackFn(GameStateCurator.getGameStateFromPerspectiveOfPerson(game, matchingPerson, gameRunner, clientSocket, logger));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
rejectClientRequestForGameState(ackFn);
|
rejectClientRequestForGameState(ackFn);
|
||||||
logger.trace('the game ' + accessCode + ' was not found');
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ class SocketManager {
|
|||||||
switch (eventId) {
|
switch (eventId) {
|
||||||
case EVENT_IDS.FETCH_GAME_STATE:
|
case EVENT_IDS.FETCH_GAME_STATE:
|
||||||
await gameManager.handleRequestForGameState(
|
await gameManager.handleRequestForGameState(
|
||||||
|
game,
|
||||||
this.namespace,
|
this.namespace,
|
||||||
this.logger,
|
this.logger,
|
||||||
gameManager.activeGameRunner,
|
gameManager.activeGameRunner,
|
||||||
@@ -94,6 +95,8 @@ class SocketManager {
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
ackFn(null);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -192,6 +192,7 @@ describe('GameManager', () => {
|
|||||||
player.socketId = 'socket1';
|
player.socketId = 'socket1';
|
||||||
spyOn(namespace.in(), 'emit');
|
spyOn(namespace.in(), 'emit');
|
||||||
gameManager.handleRequestForGameState(
|
gameManager.handleRequestForGameState(
|
||||||
|
gameRunner.activeGames.get('abc'),
|
||||||
namespace,
|
namespace,
|
||||||
logger,
|
logger,
|
||||||
gameRunner,
|
gameRunner,
|
||||||
@@ -212,6 +213,7 @@ describe('GameManager', () => {
|
|||||||
player.socketId = 'socket_111111';
|
player.socketId = 'socket_111111';
|
||||||
spyOn(namespace.in(), 'emit');
|
spyOn(namespace.in(), 'emit');
|
||||||
gameManager.handleRequestForGameState(
|
gameManager.handleRequestForGameState(
|
||||||
|
gameRunner.activeGames.get('abc'),
|
||||||
namespace,
|
namespace,
|
||||||
logger,
|
logger,
|
||||||
gameRunner,
|
gameRunner,
|
||||||
|
|||||||
Reference in New Issue
Block a user