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')
Ejemplo n.º 5
0
 def validate_team_id(self, value):
     if not Team.get_by_id(self.team_id.data):
         raise ValidationError('The team does not exist')