def post(self, region, id): dao = Dao(region, mongo_client=mongo_client) pending_tournament = dao.get_pending_tournament_by_id(ObjectId(id)) if not pending_tournament: return 'No pending tournament found with that id.', 400 user = get_user_from_request(request, dao) if not user: return 'Permission denied', 403 if not is_user_admin_for_regions(user, pending_tournament.regions): return 'Permission denied', 403 new_player_names = [] for mapping in pending_tournament.alias_to_id_map: if mapping["player_id"] == None: new_player_names.append(mapping["player_alias"]) for player_name in new_player_names: player = Player.create_with_default_values(player_name, region) player_id = dao.insert_player(player) pending_tournament.set_alias_id_mapping(player_name, player_id) dao.update_pending_tournament(pending_tournament) try: tournament = Tournament.from_pending_tournament(pending_tournament) tournament_id = dao.insert_tournament(tournament) dao.delete_pending_tournament(pending_tournament) return {"success": True, "tournament_id": str(tournament_id)} except ValueError: return 'Not all player aliases in this pending tournament have been mapped to player ids.', 400
def post(self, region, id): dao = Dao(region, mongo_client=mongo_client) pending_tournament = dao.get_pending_tournament_by_id(ObjectId(id)) if not pending_tournament: return 'No pending tournament found with that id.', 400 user = get_user_from_request(request, dao) if not user: return 'Permission denied', 403 if not is_user_admin_for_region(user, pending_tournament.regions): return 'Permission denied', 403 new_player_names = [] for mapping in pending_tournament.alias_to_id_map: if mapping["player_id"] == None: new_player_names.append(mapping["player_alias"]) for player_name in new_player_names: player = Player.create_with_default_values(player_name, region) player_id = dao.insert_player(player) pending_tournament.set_alias_id_mapping(player_name, player_id) dao.update_pending_tournament(pending_tournament) try: tournament = Tournament.from_pending_tournament(pending_tournament) tournament_id = dao.insert_tournament(tournament) dao.delete_pending_tournament(pending_tournament) return {"success": True, "tournament_id": str(tournament_id)} except ValueError: return 'Not all player aliases in this pending tournament have been mapped to player ids.', 400
def test_create_with_default_values(self): name = 'ASDF' region = 'r' player = Player.create_with_default_values(name, region) self.assertEqual(player.name, name) self.assertEqual(player.aliases, ['asdf']) self.assertEqual(player.ratings, {}) self.assertEqual(player.regions, [region])