From: Carl Worth <cworth@cworth.org>
Date: Tue, 9 Jun 2020 02:05:22 +0000 (-0700)
Subject: Empathy: Make a vote for a prompt toggle the vote
X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=f2a237f13592e30e93dd056efd09087e57f4ce05;p=lmno-server

Empathy: Make a vote for a prompt toggle the vote

Since what else might it mean for a user to vote where they had
already voted?
---

diff --git a/empathy.js b/empathy.js
index f2a6859..6fc926f 100644
--- a/empathy.js
+++ b/empathy.js
@@ -22,11 +22,11 @@ class Prompt {
     this.votes = [];
   }
 
-  add_vote(player_name) {
+  toggle_vote(player_name) {
     if (this.votes.find(v => v === player_name))
-      return;
-
-    this.votes.push(player_name);
+      this.votes = this.votes.filter(v => v !== player_name);
+    else
+      this.votes.push(player_name);
   }
 }
 
@@ -54,7 +54,7 @@ router.post('/vote/:prompt_id([0-9]+)', (request, response) => {
     return;
   }
 
-  prompt.add_vote(player.name);
+  prompt.toggle_vote(player.name);
 
   game.broadcast_event_object('prompt', prompt);