def players_get(game_id, player_id): get_game_or_abort(game_id) player = Player.query.get(player_id) if not player: abort(404, 'Player not found') response = jsonate(player.to_dict()) return response
def players_delete(game_id, player_id): get_game_or_abort(game_id) player = Player.query.get(player_id) if not player: abort(404, 'Player not found') db.session.delete(player) db.session.commit() return Response(status=200)
def games_stop(game_id): game = get_game_or_abort(game_id) if game.ended_at: abort(403, 'That game has already been stopped') game.ended_at = datetime.datetime.utcnow() db.session.commit() return Response(status=200)
def territories(game_id, territory): game = get_game_or_abort(game_id) if game.ended_at is not None: abort(403, 'That game is over') player_id = request.json.get('playerId', None) if not player_id: abort(403, 'Must supply playerId') player = Player.query.get(player_id) if not player: abort(403, 'Player not found') points = 1 + player.device.bonus Points.score(game.id, territory, points) return Response(status=200)
def players_create(game_id): game = get_game_or_abort(game_id) if game.ended_at is not None: abort(403, 'Cannot join a player to a finished game') device_id = request.json.get('deviceId', None) if not device_id: abort(403, 'Must supply deviceId') device = Device.query.get(device_id) if not device: abort(403, 'Device %s not found' % device_id) clan = request.json.get('clan', random.choice(config['clans'])) territory = request.json.get('territory', None) player = Player.create(game.id, device.id, clan, territory) response = jsonate(player.to_dict()) response.status_code = 201 response.headers['Location'] = url_for( 'players_get', game_id=game.id, player_id=player.id) return response
def players_index(game_id): get_game_or_abort(game_id) response = jsonate([p.to_dict() for p in Player.query.all()]) return response
def games_get(game_id): game = get_game_or_abort(game_id) return jsonate(game.to_dict())