remove from team instead of disable
This commit is contained in:
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user