Эх сурвалжийг харах

Actually this is a much cleaner API

Kirk Trombley 5 жил өмнө
parent
commit
b1f1ab5b91
3 өөрчлөгдсөн 14 нэмэгдсэн , 11 устгасан
  1. 2 5
      README.md
  2. 1 6
      server/db.py
  3. 11 0
      server/game_api.py

+ 2 - 5
README.md

@@ -46,17 +46,14 @@ 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
+    Returns (401, 404) vs 201
 POST /game/{ID}/join
     Accepts {
         "playerName": string

+ 1 - 6
server/db.py

@@ -12,9 +12,9 @@ class Game(db.Model):
     game_id = db.Column(db.String, primary_key=True)
     timer = db.Column(db.Integer)
     rounds = db.Column(db.Integer)
+    linked_game = db.Column(db.String)
     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):
@@ -128,8 +128,3 @@ 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)

+ 11 - 0
server/game_api.py

@@ -48,6 +48,17 @@ def game_settings(game_id):
     return jsonify(g.to_dict())
 
 
+@game.route("/<game_id>/linked", methods=["POST"])
+def link_game(game_id):
+    g = require_game(game_id)
+    link_id = request.json.get("linkedGame", None)
+    if link_id is None or db.Game.query.get(link_id) is None:
+        abort(401)
+    
+    g.linked_game = link_id
+    return "", 201
+
+
 @game.route("/<game_id>/join", methods=["POST"])
 def join(game_id):
     name = request.json.get("playerName", None)