+const router = Empathy.router;
+
+class Prompt {
+ constructor(id, items, prompt) {
+ this.id = id;
+ this.items = items;
+ this.prompt = prompt;
+ this.votes = [];
+ }
+
+ add_vote(player_name) {
+ if (this.votes.find(v => v === player_name))
+ return;
+
+ this.votes.push(player_name);
+ }
+}
+
+router.post('/prompts', (request, response) => {
+ const game = request.game;
+
+ const prompt = new Prompt(game.next_prompt_id,
+ request.body.items,
+ request.body.prompt);
+ game.next_prompt_id++;
+
+ game.state.prompts.push(prompt);
+
+ game.broadcast_event_object('prompt', prompt);
+});
+
+router.post('/vote/:prompt_id([0-9]+)', (request, response) => {
+ const prompt_id = parseInt(request.params.prompt_id, 10);
+ const game = request.game;
+ const player = game.players_by_session[request.session.id];
+
+ prompt = game.state.prompts.find(p => p.id === prompt_id);
+ if (! prompt || ! player) {
+ response.sendStatus(404);
+ return;
+ }
+
+ prompt.add_vote(player.name);
+
+ game.broadcast_event_object('prompt', prompt);
+
+ response.sendStatus(200);
+});