diff --git a/server/modules/GameManager.js b/server/modules/GameManager.js index 26ca29f..23b0e89 100644 --- a/server/modules/GameManager.js +++ b/server/modules/GameManager.js @@ -321,12 +321,12 @@ class GameManager { if (matchingPerson) { if (matchingPerson.socketId === clientSocket.id) { logger.trace('matching person found with an established connection to the room: ' + matchingPerson.name); - ackFn(GameStateCurator.getGameStateFromPerspectiveOfPerson(game, matchingPerson, gameRunner, clientSocket, logger)); + ackFn(GameStateCurator.getGameStateFromPerspectiveOfPerson(game, matchingPerson)); } 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)); + ackFn(GameStateCurator.getGameStateFromPerspectiveOfPerson(game, matchingPerson)); } } else { rejectClientRequestForGameState(ackFn); diff --git a/server/modules/GameStateCurator.js b/server/modules/GameStateCurator.js index 902b460..317bb5c 100644 --- a/server/modules/GameStateCurator.js +++ b/server/modules/GameStateCurator.js @@ -5,8 +5,8 @@ const globals = require('../config/globals'); information that they shouldn't. */ const GameStateCurator = { - getGameStateFromPerspectiveOfPerson: (game, person, gameRunner, socket, logger) => { - return getGameStateBasedOnPermissions(game, person, gameRunner); + getGameStateFromPerspectiveOfPerson: (game, person) => { + return getGameStateBasedOnPermissions(game, person); }, mapPeopleForModerator: (people) => { @@ -42,7 +42,7 @@ const GameStateCurator = { } }; -function getGameStateBasedOnPermissions (game, person, gameRunner) { +function getGameStateBasedOnPermissions (game, person) { const client = game.status === globals.STATUS.LOBBY // people won't be able to know their role until past the lobby stage. ? { name: person.name, hasEnteredName: person.hasEnteredName, id: person.id, cookie: person.cookie, userType: person.userType } : { @@ -58,30 +58,6 @@ function getGameStateBasedOnPermissions (game, person, gameRunner) { out: person.out }; switch (person.userType) { - case globals.USER_TYPES.PLAYER: - case globals.USER_TYPES.KILLED_PLAYER: { - const state = { - accessCode: game.accessCode, - status: game.status, - moderator: GameStateCurator.mapPerson(game.moderator), - client: client, - deck: game.deck, - gameSize: game.gameSize, - people: game.people - .filter((person) => { - return person.assigned === true; - }) - .map((filteredPerson) => - GameStateCurator.mapPerson(filteredPerson) - ), - timerParams: game.timerParams, - isFull: game.isFull - }; - if (game.status === globals.STATUS.ENDED) { - state.people = GameStateCurator.mapPeopleForModerator(game.people); - } - return state; - } case globals.USER_TYPES.MODERATOR: return { accessCode: game.accessCode, @@ -98,22 +74,9 @@ function getGameStateBasedOnPermissions (game, person, gameRunner) { ) }; case globals.USER_TYPES.TEMPORARY_MODERATOR: - return { - accessCode: game.accessCode, - status: game.status, - moderator: GameStateCurator.mapPerson(game.moderator), - client: client, - deck: game.deck, - gameSize: game.gameSize, - people: game.people - .filter((person) => { - return person.assigned === true; - }) - .map((filteredPerson) => GameStateCurator.mapPerson(filteredPerson)), - timerParams: game.timerParams, - isFull: game.isFull - }; case globals.USER_TYPES.SPECTATOR: + case globals.USER_TYPES.PLAYER: + case globals.USER_TYPES.KILLED_PLAYER: return { accessCode: game.accessCode, status: game.status, @@ -127,7 +90,10 @@ function getGameStateBasedOnPermissions (game, person, gameRunner) { }) .map((filteredPerson) => GameStateCurator.mapPerson(filteredPerson)), timerParams: game.timerParams, - isFull: game.isFull + isFull: game.isFull, + spectators: game.spectators.map((filteredPerson) => + GameStateCurator.mapPerson(filteredPerson) + ) }; default: break; diff --git a/spec/unit/server/modules/GameManager_Spec.js b/spec/unit/server/modules/GameManager_Spec.js index 3484360..6fc94a5 100644 --- a/spec/unit/server/modules/GameManager_Spec.js +++ b/spec/unit/server/modules/GameManager_Spec.js @@ -222,7 +222,7 @@ describe('GameManager', () => { ); expect(GameStateCurator.getGameStateFromPerspectiveOfPerson) - .toHaveBeenCalledWith(gameRunner.activeGames.get('abc'), player, gameRunner, socket, logger); + .toHaveBeenCalledWith(gameRunner.activeGames.get('abc'), player); }); it('should send the game state to a matching person who reset their connection', () => { @@ -243,7 +243,7 @@ describe('GameManager', () => { ); expect(GameStateCurator.getGameStateFromPerspectiveOfPerson) - .toHaveBeenCalledWith(gameRunner.activeGames.get('abc'), player, gameRunner, socket, logger); + .toHaveBeenCalledWith(gameRunner.activeGames.get('abc'), player); expect(player.socketId).toEqual(socket.id); expect(socket.join).toHaveBeenCalled(); });