Browse Source

Game link API design

Kirk Trombley 5 years ago
parent
commit
21900ebc29
2 changed files with 15 additions and 2 deletions
  1. 9 1
      README.md
  2. 6 1
      server/db.py

+ 9 - 1
README.md

@@ -46,9 +46,17 @@ GET /game/{ID}
                     }, ...
                 }
             }, ...
-        ],
+        ]
+    }
+GET /game/{ID}/linked
+    Returns 404 vs 200 and {
         "linkedGame": string || null
     }
+POST /game/{ID}/linked
+    Accepts {
+        "linkedGame": string
+    }
+    Returns 404 vs 201
 POST /game/{ID}/join
     Accepts {
         "playerName": string

+ 6 - 1
server/db.py

@@ -14,6 +14,7 @@ class Game(db.Model):
     rounds = db.Column(db.Integer)
     coordinates = db.relationship("Coordinate", lazy=True, order_by="Coordinate.round_number")
     players = db.relationship("Player", lazy=True, backref="game")
+    linked_game = db.relationship("Game:ink", lazy=True)
 
     @staticmethod
     def create(timer, rounds):
@@ -65,7 +66,6 @@ class Game(db.Model):
                 } for c in self.coordinates
             },
             "players": [p.to_dict() for p in self.players],
-            "linkedGame": None,
         }
 
 
@@ -128,3 +128,8 @@ class Guess(db.Model):
     latitude = db.Column(db.Float)
     longitude = db.Column(db.Float)
     round_score = db.Column(db.Integer)
+
+
+class GameLink(db.Model):
+    game_id = db.Column(db.String, db.ForeignKey("game.game_id"), primary_key=True)
+    linked_game = db.Column(db.String)