def delete(self, username): try: user = User.get_user(username) user.delete() return None, 204 except ValidationError as err: return Error(str(err)).to_json(), 400
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
def get(self, username): try: user = User.get_user(username) result = user_schema.dump(user) return Success(result).to_json(), 200 except ValidationError as err: return Error(str(err)).to_json(), 400
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
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
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
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
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
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
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
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