예제 #1
0
 def delete(self, team_name):
     try:
         team = Team.get_team(team_name)
         team.delete()
         return None, 204
     except ValidationError as err:
         return Error(str(err)).to_json(), 400
예제 #2
0
 def get(self, team_name):
     try:
         team = Team.get_team(team_name)
         result = team_schema.dump(team)
         return Success(result).to_json(), 200
     except ValidationError as err:
         return Error(str(err)).to_json(), 400
예제 #3
0
def init_forum():
    toggle_status(2)

    for i in range(Config.ROW_COUNT):
        team = Team.get_team_at_position(i)
        if team is not None:
            set_status(i, team.status)
    base.metadata.create_all(bind=db.engine)
예제 #4
0
 def put(self, team_name):
     try:
         team = Team.get_team(team_name)
         data = team_put_schema.load(request.get_json())
         for k, v in data.items():
             setattr(team, k, v)
         team.save()
         return None, 204
     except ValidationError as err:
         return Error(str(err)).to_json(), 400
예제 #5
0
 def patch(self, username):
     try:
         user = User.get_user(username)
         teams = user_patch_schema.load(request.get_json())["teams"]
         current_app.logger.debug(teams)
         for t in teams:
             team_name = t["name"]
             team = Team.get_team(team_name)
             user._teams.append(team)
         user.save()
         return None, 204
     except ValidationError as err:
         return Error(str(err)).to_json(), 400
예제 #6
0
 def delete(self, team_name, user_name):
     try:
         team = Team.get_team(team_name)
         user = User.get_user(user_name)
         team._members.remove(user)
         team.save()
         return None, 204
     except ValueError:
         return (
             Fail(f"User: {user_name} not found on Team: {team_name}").
             to_json(),
             404,
         )
     except ValidationError as err:
         return Error(str(err)).to_json(), 400
예제 #7
0
 def post(self):
     try:
         data = users_post_schema.load(request.get_json())
         username = data["username"]
         User.validate_non_existance(username)
         new_user = User(username=username)
         teams = data.get("teams")
         if teams is not None and len(teams) > 0:
             for t in teams:
                 team_name = t["name"]
                 team = Team.get_team(team_name)
                 new_user._teams.append(team)
         new_user.save()
         return Success(
             f"user {username} created successfully").to_json(), 201
     except ValidationError as err:
         return Error(str(err)).to_json(), 400
예제 #8
0
 def put(self, username):
     try:
         user = User.get_user(username)
         user._teams = []
         teams = user_put_schema.load(request.get_json())["teams"]
         current_app.logger.debug(teams)
         for t in teams:
             team_name = t["name"]
             team = Team.get_team(team_name)
             if team is None:
                 return Fail(
                     f"Team {team_name} does not exist").to_json(), 400
             user._teams.append(team)
         user.save()
         return None, 204
     except ValidationError as err:
         return Error(str(err)).to_json(), 400
예제 #9
0
    def patch(self, team_name):
        try:
            team = Team.get_team(team_name)
            data = team_patch_schema.load(request.get_json())
            board_position = data.get("board_position")
            status = data.get("status")

            if board_position is not None:
                team.set_board_position(board_position)

            if team.board_position is not None and status is not None:
                team.status = status
                whiteboard.set_status(team.board_position, status)
            team.save()
            return None, 204
        except ValidationError as err:
            return Error(str(err)).to_json(), 400
        except whiteboard.WhiteboardError as err:
            return Error(str(err)).to_json(), 400
예제 #10
0
 def post(self):
     try:
         data = post_team_schema.load(request.get_json())
         Team.validate_non_existance(data["name"])
         position = data.get("board_position")
         team = Team()
         team.name = data.get("name")
         team.location = data.get("location")
         if position is not None:
             Team.is_team_at_board_position(position)
             team.board_position = position
         team.save()
         return Success(f"Team {team.name} created").to_json(), 204
     except ValidationError as err:
         return Error(str(err)).to_json(), 400
예제 #11
0
 def get(self):
     teams = Team.get_all()
     response = teams_schema.dump(teams)
     return Success(response).to_json(), 200