Beispiel #1
0
 def _get_object(self, tournament_id, bracket_id, spreadsheet_id):
     bracket = (db.query(Bracket).where(
         Bracket.tournament_id == tournament_id).where(
             Bracket.id == bracket_id).first())
     if not bracket or bracket.qualifiers_spreadsheet_id != spreadsheet_id:
         raise exceptions.NotFound()
     spreadsheet = db.query(QualifiersSpreadsheet).where(
         QualifiersSpreadsheet.id == spreadsheet_id).first()
     if not spreadsheet:
         raise exceptions.NotFound()
     return spreadsheet
Beispiel #2
0
 def _get_object(self, tournament_id, allowed_reschedule_id):
     allowed_reschedule = (db.query(AllowedReschedule).where(
         AllowedReschedule.tournament_id == tournament_id).where(
             AllowedReschedule.id == allowed_reschedule_id).first())
     if not allowed_reschedule:
         raise exceptions.NotFound()
     now = datetime.datetime.utcnow()
     max_allowed_date = datetime.datetime.fromtimestamp(
         allowed_reschedule.created_at) + datetime.timedelta(
             hours=allowed_reschedule.allowed_hours)
     if now >= max_allowed_date:
         db.delete(allowed_reschedule)
         raise exceptions.NotFound()
     return allowed_reschedule
Beispiel #3
0
 def _get_object(self, tournament_id, bracket_id):
     bracket = (db.query(Bracket).where(
         Bracket.tournament_id == tournament_id).where(
             Bracket.id == bracket_id).first())
     if not bracket:
         raise exceptions.NotFound()
     return bracket
Beispiel #4
0
 def exec_func_if_user_can_access_resource(func, *args, **kwargs):
     if "guild_id" in kwargs and kwargs["guild_id"]:
         guild = db.query(Guild).where(
             Guild.id == kwargs["guild_id"]).first()
         if not guild:
             raise exceptions.NotFound()
         assert_user_can_access_resource(guild.guild_id_snowflake,
                                         guild.admin_role_id)
     elif "tournament_id" in kwargs and kwargs["tournament_id"]:
         tournament = db.query(Tournament).where(
             Tournament.id == kwargs["tournament_id"]).first()
         if not tournament:
             raise exceptions.NotFound()
         admin_role_id = None
         guild = db.query(Guild).where(
             Guild.id == tournament.guild_id_snowflake).first()
         if guild:
             admin_role_id = guild.admin_role_id
         assert_user_can_access_resource(tournament.guild_id_snowflake,
                                         admin_role_id)
     else:
         request_args = request.args.to_dict()
         if "guild_id" not in request_args or not request_args[
                 "guild_id"]:
             body = request.json
             if func.__name__ == "post" and body and "guild_id" in body and body[
                     "guild_id"]:
                 assert_user_can_access_resource(body["guild_id"])
                 return func(*args, **kwargs)
             raise exceptions.Forbidden()
         guild = db.query(Guild).where(
             Guild.guild_id == request_args["guild_id"]).first()
         if not guild:
             tournament = db.query(Tournament).where(
                 Tournament.guild_id ==
                 request_args["guild_id"]).first()
             if not tournament:
                 raise exceptions.NotFound()
             assert_user_can_access_resource(
                 tournament.guild_id_snowflake)
             return func(*args, **kwargs)
         assert_user_can_access_resource(guild.guild_id_snowflake,
                                         guild.admin_role_id)
     return func(*args, **kwargs)
Beispiel #5
0
 def post(self, tournament_id, bracket_id):
     bracket = (db.query(Bracket).where(
         Bracket.tournament_id == tournament_id).where(
             Bracket.id == bracket_id).first())
     if not bracket:
         raise exceptions.NotFound()
     body = request.json
     if not body or not body["spreadsheet_id"]:
         raise exceptions.MissingRequiredInformation()
     body["spreadsheet_id"] = spreadsheet_api.extract_spreadsheet_id(
         body["spreadsheet_id"])
     spreadsheet = QualifiersSpreadsheet(**body)
     db.add(spreadsheet)
     bracket.qualifiers_spreadsheet_id = spreadsheet.id
     db.update(bracket)
     current_app.logger.debug(
         "The qualifiers spreadsheet {0} for the bracket {1} has been created successfully."
         .format(spreadsheet.id, bracket_id))
     return spreadsheet.get_api_dict(), 201
Beispiel #6
0
 def _get_object(self, tournament_id):
     tournament = db.query(Tournament).where(
         Tournament.id == tournament_id).first()
     if not tournament:
         raise exceptions.NotFound()
     return tournament
Beispiel #7
0
 def _get_object(self, user_id):
     user = db.query(User).where(User.id == user_id).first()
     if not user:
         raise exceptions.NotFound()
     return user
Beispiel #8
0
 def _get_object(self, guild_id):
     guild = db.query(Guild).where(Guild.id == guild_id).first()
     if not guild:
         raise exceptions.NotFound()
     return guild
Beispiel #9
0
 def get(self, guild_id, role_id):
     if role_id is None:
         return self.get_all(guild_id)
     raise exceptions.NotFound()