Browse Source

Implementation of first submitter endpoint

Kirk Trombley 5 years ago
parent
commit
4ca42a766c
2 changed files with 23 additions and 0 deletions
  1. 13 0
      server/db.py
  2. 10 0
      server/game_api.py

+ 13 - 0
server/db.py

@@ -89,6 +89,14 @@ class Player(db.Model):
             time_remaining=remaining,
         )
         db.session.add(g)
+        first = FirstSubmission.query.get((self.game_id, round_num))
+        if first is None:
+            fs = FirstSubmission(
+                game_id=self.game_id,
+                round_number=round_num,
+                player_name=self.player_name,
+            )
+            db.session.add(fs)
         db.session.commit()
 
     def add_timeout(self, round_num):
@@ -120,3 +128,8 @@ class Guess(db.Model):
     longitude = db.Column(db.Float)
     round_score = db.Column(db.Integer)
     time_remaining = db.Column(db.Float)
+
+class FirstSubmission(db.Model):
+    game_id = db.Column(db.String, primary_key=True)
+    round_number = db.Column(db.Integer, primary_key=True, autoincrement=False)
+    player_name = db.Column(db.String)

+ 10 - 0
server/game_api.py

@@ -127,6 +127,16 @@ def link_game(game_id):
     return "", 201
 
 
+@game.route("/<game_id>/round/<int:round_num>/first")
+def first_submitter(game_id, round_num):
+    fs = db.FirstSubmission.query.get((game_id, round_num))
+    if fs is None:
+        abort(404)
+    return jsonify({
+        "first": fs.player_name
+    })
+    
+
 @game.route("/<game_id>/join", methods=["POST"])
 def join(game_id):
     js = request.get_json()