feat: add MessageResponse schema; wire response_model on leave + remove-member endpoints
This commit is contained in:
parent
7650747651
commit
c7861344b7
2 changed files with 11 additions and 6 deletions
|
|
@ -19,6 +19,7 @@ from app.models.schemas.household import (
|
||||||
HouseholdMember,
|
HouseholdMember,
|
||||||
HouseholdRemoveMemberRequest,
|
HouseholdRemoveMemberRequest,
|
||||||
HouseholdStatusResponse,
|
HouseholdStatusResponse,
|
||||||
|
MessageResponse,
|
||||||
)
|
)
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
@ -170,8 +171,8 @@ async def accept_invite(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@router.post("/leave")
|
@router.post("/leave", response_model=MessageResponse)
|
||||||
async def leave_household(session: CloudUser = Depends(_require_premium)):
|
async def leave_household(session: CloudUser = Depends(_require_premium)) -> MessageResponse:
|
||||||
"""Leave the current household (non-owners only)."""
|
"""Leave the current household (non-owners only)."""
|
||||||
if not session.household_id:
|
if not session.household_id:
|
||||||
raise HTTPException(status_code=400, detail="You are not in a household.")
|
raise HTTPException(status_code=400, detail="You are not in a household.")
|
||||||
|
|
@ -181,14 +182,14 @@ async def leave_household(session: CloudUser = Depends(_require_premium)):
|
||||||
"household_id": session.household_id,
|
"household_id": session.household_id,
|
||||||
"user_id": session.user_id,
|
"user_id": session.user_id,
|
||||||
})
|
})
|
||||||
return {"message": "You have left the household. Reload the app to return to your personal pantry."}
|
return MessageResponse(message="You have left the household. Reload the app to return to your personal pantry.")
|
||||||
|
|
||||||
|
|
||||||
@router.post("/remove-member")
|
@router.post("/remove-member", response_model=MessageResponse)
|
||||||
async def remove_member(
|
async def remove_member(
|
||||||
body: HouseholdRemoveMemberRequest,
|
body: HouseholdRemoveMemberRequest,
|
||||||
session: CloudUser = Depends(_require_household_owner),
|
session: CloudUser = Depends(_require_household_owner),
|
||||||
):
|
) -> MessageResponse:
|
||||||
"""Remove a member from the household (owner only)."""
|
"""Remove a member from the household (owner only)."""
|
||||||
if body.user_id == session.user_id:
|
if body.user_id == session.user_id:
|
||||||
raise HTTPException(status_code=400, detail="Use /leave to remove yourself.")
|
raise HTTPException(status_code=400, detail="Use /leave to remove yourself.")
|
||||||
|
|
@ -196,4 +197,4 @@ async def remove_member(
|
||||||
"household_id": session.household_id,
|
"household_id": session.household_id,
|
||||||
"user_id": body.user_id,
|
"user_id": body.user_id,
|
||||||
})
|
})
|
||||||
return {"message": f"Member {body.user_id} removed from household."}
|
return MessageResponse(message=f"Member {body.user_id} removed from household.")
|
||||||
|
|
|
||||||
|
|
@ -41,3 +41,7 @@ class HouseholdAcceptResponse(BaseModel):
|
||||||
|
|
||||||
class HouseholdRemoveMemberRequest(BaseModel):
|
class HouseholdRemoveMemberRequest(BaseModel):
|
||||||
user_id: str
|
user_id: str
|
||||||
|
|
||||||
|
|
||||||
|
class MessageResponse(BaseModel):
|
||||||
|
message: str
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue