remove from team instead of disable

This commit is contained in:
2025-12-21 08:26:44 +01:00
parent a654b12c64
commit 07a121200a

View File

@@ -110,6 +110,32 @@ class DisablePlayerRequest(BaseModel):
player_id: int 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( def disable_player_team(
r: DisablePlayerRequest, r: DisablePlayerRequest,
request: Annotated[TeamScopedRequest, Depends(verify_team_scope)], request: Annotated[TeamScopedRequest, Depends(verify_team_scope)],
@@ -261,7 +287,7 @@ player_router.add_api_route(
) )
player_router.add_api_route( player_router.add_api_route(
"/{team_id}", "/{team_id}",
endpoint=disable_player_team, endpoint=remove_player_from_team,
methods=["DELETE"], methods=["DELETE"],
) )
player_router.add_api_route( player_router.add_api_route(