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
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
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
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)
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
def _get_object(self, tournament_id): tournament = db.query(Tournament).where( Tournament.id == tournament_id).first() if not tournament: raise exceptions.NotFound() return tournament
def _get_object(self, user_id): user = db.query(User).where(User.id == user_id).first() if not user: raise exceptions.NotFound() return user
def _get_object(self, guild_id): guild = db.query(Guild).where(Guild.id == guild_id).first() if not guild: raise exceptions.NotFound() return guild
def get(self, guild_id, role_id): if role_id is None: return self.get_all(guild_id) raise exceptions.NotFound()