Browse Source

Storing only_america flag and also time remaining on guess

Kirk Trombley 5 years ago
parent
commit
c5d774d079
3 changed files with 10 additions and 4 deletions
  1. 1 0
      README.md
  2. 6 2
      server/db.py
  3. 3 2
      server/game_api.py

+ 1 - 0
README.md

@@ -121,6 +121,7 @@ GET /game/{ID}/current
 POST /game/{ID}/guesses/{round}
     Header Authorization: Player string
     Accepts {
+        "timeRemaining": number,
         "lat": number,
         "lng": number
     } OR {

+ 6 - 2
server/db.py

@@ -13,6 +13,7 @@ class Game(db.Model):
     timer = db.Column(db.Integer)
     rounds = db.Column(db.Integer)
     linked_game = db.Column(db.String)
+    only_america = db.Column(db.Boolean)
     coordinates = db.relationship("Coordinate", lazy=True, order_by="Coordinate.round_number")
     players = db.relationship("Player", lazy=True, backref="game")
 
@@ -26,7 +27,8 @@ class Game(db.Model):
         new_game = Game(
             game_id=game_id,
             timer=timer,
-            rounds=rounds
+            rounds=rounds,
+            only_america=only_america,
         )
         db.session.add(new_game)
 
@@ -94,13 +96,14 @@ class Player(db.Model):
             return next_round
         return None
 
-    def add_guess(self, round_num, lat, lng, score):
+    def add_guess(self, round_num, lat, lng, score, remaining):
         g = Guess(
             player_id=self.player_id,
             round_number=round_num,
             latitude=lat,
             longitude=lng,
             round_score=score,
+            time_remaining=remaining,
         )
         db.session.add(g)
         db.session.commit()
@@ -136,3 +139,4 @@ class Guess(db.Model):
     latitude = db.Column(db.Float)
     longitude = db.Column(db.Float)
     round_score = db.Column(db.Integer)
+    time_remaining = db.Column(db.Float)

+ 3 - 2
server/game_api.py

@@ -58,7 +58,7 @@ def game_config(game_id):
     return jsonify({
         "timer": g.timer,
         "rounds": g.rounds,
-        "onlyAmerica": False, # TODO lying for now until this is being stored in the db
+        "onlyAmerica": g.only_america,
     })
 
 
@@ -153,6 +153,7 @@ def make_guess(game_id, round_num):
     try:
         lat = float(request.json.get("lat", None))
         lng = float(request.json.get("lng", None))
+        remaining = int(request.json.get("timeRemaining", None))
     except ValueError:
         abort(400)
 
@@ -161,7 +162,7 @@ def make_guess(game_id, round_num):
         abort(400)
 
     guess_score, distance = lib.score((target.latitude, target.longitude), (lat, lng))
-    player.add_guess(round_num, lat, lng, guess_score)
+    player.add_guess(round_num, lat, lng, guess_score, remaining)
     return jsonify({
         "score": guess_score,
         "totalScore": player.get_total_score(),