When a request is received at "/start" to start a particular prompt,
the server responds by broadcasting a "start" event to all clients
telling them to start the game.
The prompt is also set as the active prompt in the game state so that
if any new client joins while a prompt is active they will become
aware of that.
constructor(id) {
super(id);
this.state = {
constructor(id) {
super(id);
this.state = {
+ prompts: [],
+ active_prompt: null
};
this.next_prompt_id = 1;
}
};
this.next_prompt_id = 1;
}
+
+ /* Returns true on success, false for prompt not found. */
+ start(prompt_id) {
+ const prompt = this.state.prompts.find(p => p.id === prompt_id);
+ if (! prompt)
+ return false;
+
+ this.state.active_prompt = prompt;
+
+ this.broadcast_event_object('start', prompt);
+
+ return true;
+ }
}
Empathy.router = express.Router();
}
Empathy.router = express.Router();
response.sendStatus(404);
});
response.sendStatus(404);
});
+router.post('/start/:prompt_id([[0-9]+)', (request, response) => {
+ const game = request.game;
+ const prompt_id = parseInt(request.params.prompt_id, 10);
+
+ if (game.start(prompt_id))
+ response.sendStatus(200);
+ else
+ response.sendStatus(404);
+});
+
Empathy.meta = {
name: "Empathy",
identifier: "empathy",
Empathy.meta = {
name: "Empathy",
identifier: "empathy",