remove from team instead of disable
This commit is contained in:
@@ -110,6 +110,32 @@ class DisablePlayerRequest(BaseModel):
|
||||
player_id: int
|
||||
|
||||
|
||||
def remove_player_from_team(
|
||||
r: DisablePlayerRequest,
|
||||
request: Annotated[TeamScopedRequest, Depends(verify_team_scope)],
|
||||
):
|
||||
if request.team_id == 42:
|
||||
raise DEMO_TEAM_REQUEST
|
||||
with Session(engine) as session:
|
||||
player = session.exec(
|
||||
select(P)
|
||||
.join(PlayerTeamLink)
|
||||
.join(Team)
|
||||
.where(Team.id == request.team_id, P.id == r.player_id)
|
||||
).one_or_none()
|
||||
if player:
|
||||
team = session.exec(select(Team).where(Team.id == request.team_id)).one()
|
||||
player.teams.remove(team)
|
||||
session.add(team)
|
||||
session.commit()
|
||||
return PlainTextResponse(f"removed {player.display_name} from {team.name}.")
|
||||
else:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail="no such player found in your team",
|
||||
)
|
||||
|
||||
|
||||
def disable_player_team(
|
||||
r: DisablePlayerRequest,
|
||||
request: Annotated[TeamScopedRequest, Depends(verify_team_scope)],
|
||||
@@ -261,7 +287,7 @@ player_router.add_api_route(
|
||||
)
|
||||
player_router.add_api_route(
|
||||
"/{team_id}",
|
||||
endpoint=disable_player_team,
|
||||
endpoint=remove_player_from_team,
|
||||
methods=["DELETE"],
|
||||
)
|
||||
player_router.add_api_route(
|
||||
|
||||
Reference in New Issue
Block a user