feat: add MessageResponse schema; wire response_model on leave + remove-member endpoints

This commit is contained in:
pyr0ball 2026-04-04 22:47:39 -07:00
parent 7650747651
commit c7861344b7
2 changed files with 11 additions and 6 deletions

View file

@ -19,6 +19,7 @@ from app.models.schemas.household import (
HouseholdMember,
HouseholdRemoveMemberRequest,
HouseholdStatusResponse,
MessageResponse,
)
log = logging.getLogger(__name__)
@ -170,8 +171,8 @@ async def accept_invite(
)
@router.post("/leave")
async def leave_household(session: CloudUser = Depends(_require_premium)):
@router.post("/leave", response_model=MessageResponse)
async def leave_household(session: CloudUser = Depends(_require_premium)) -> MessageResponse:
"""Leave the current household (non-owners only)."""
if not session.household_id:
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,
"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(
body: HouseholdRemoveMemberRequest,
session: CloudUser = Depends(_require_household_owner),
):
) -> MessageResponse:
"""Remove a member from the household (owner only)."""
if body.user_id == session.user_id:
raise HTTPException(status_code=400, detail="Use /leave to remove yourself.")
@ -196,4 +197,4 @@ async def remove_member(
"household_id": session.household_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.")

View file

@ -41,3 +41,7 @@ class HouseholdAcceptResponse(BaseModel):
class HouseholdRemoveMemberRequest(BaseModel):
user_id: str
class MessageResponse(BaseModel):
message: str