def get_team_api(id_): team = Team.get_by_id(id_) if not team: raise NotFound() return jsonify({ 'code': 0, 'data': { 'team': team } })
def delete_team_api(id_): team = Team.get_by_id(id_) if not team: raise NotFound() contest = team.contest if contest.status == 0: raise Forbidden('Contest is not available') if contest.registration_status == 0: raise Forbidden('Contest is not open registration') if g.user.permission != -1 and g.user.username != team.create_username: raise Forbidden() team_relationship = TeamRelationship.search(team_id=team.id) if team_relationship['count'] != 1: raise Forbidden('There are other members in the team') TeamRelationship.delete_team_relationship(team_relationship['data'][0].id) Team.delete_team(id_) return DeleteSuccess('Delete team success')
def modify_team_api(id_): team = Team.get_by_id(id_) if not team: raise NotFound() contest = team.contest if contest.status == 0: raise Forbidden('Contest is not available') if contest.registration_status == 0: raise Forbidden('Contest is not open registration') if g.user.permission != -1 and g.user.username != team.create_username: raise Forbidden() form = TeamInfoForm().validate_for_api().data_ if g.user.permission != -1 and form['status'] not in [0, 1]: raise Forbidden() Team.modify(id_, **form) return Success('Modify team success')
def create_team_relationship_api(): form = TeamRelationshipForm().validate_for_api().data_ team = Team.get_by_id(form['team_id']) if not team: raise NotFound() contest = team.contest if contest.status == 0: raise Forbidden('Contest is not available') if contest.registration_status == 0: raise Forbidden('Contest is not open registration') for i in TeamRelationship.search(username=g.user.username)['data']: if i.team_id == form['team_id']: raise Forbidden('You already have a team') if TeamRelationship.search(team_id=form['team_id'])['count'] >= team.contest.limit: raise Forbidden('The team is full') if not team.check_password(form['password']): raise Forbidden('Password wrong') TeamRelationship.create_team_relationship(g.user.username, form['team_id']) return CreateSuccess('Create team relationship success')
def validate_team_id(self, value): if not Team.get_by_id(self.team_id.data): raise ValidationError('The team does not exist')