From d0fefeff1ba58e09eb7622cb4a62169d8046f57b Mon Sep 17 00:00:00 2001 From: Jacob Windsor Date: Wed, 19 Feb 2025 16:42:15 +0100 Subject: [PATCH] Fix issues with getting the owner --- backend/app/repositories/owner_repository.py | 14 ++++++++++---- backend/app/routers/houses.py | 16 +++++++++------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/backend/app/repositories/owner_repository.py b/backend/app/repositories/owner_repository.py index 350bf23..d3151e1 100644 --- a/backend/app/repositories/owner_repository.py +++ b/backend/app/repositories/owner_repository.py @@ -1,11 +1,12 @@ -from sqlalchemy.ext.asyncio.session import AsyncSession from typing import Annotated +from uuid import UUID + from fastapi import Depends -from ..providers.db_provider import get_session -from ..models.owner import Owner +from sqlalchemy.ext.asyncio.session import AsyncSession from sqlmodel import select -from uuid import UUID +from ..models.owner import Owner +from ..providers.db_provider import get_session class OwnerRepository: @@ -22,6 +23,11 @@ class OwnerRepository: result = await self.session.execute(statement) return result.scalar_one_or_none() + async def get_by_user_id(self, user_id: UUID): + statement = select(Owner).where(Owner.user_id == user_id) + result = await self.session.execute(statement) + return result.scalar_one_or_none() + async def save(self, owner: Owner) -> None: """ Save a owner to the database. If an owner with that ID already exists, do an upsert. diff --git a/backend/app/routers/houses.py b/backend/app/routers/houses.py index 21c3547..f05ca11 100644 --- a/backend/app/routers/houses.py +++ b/backend/app/routers/houses.py @@ -1,13 +1,15 @@ -from fastapi import APIRouter, Depends from typing import Annotated + +from fastapi import APIRouter, Depends + +from ..dtos.house_create_request import HouseCreateRequest +from ..dtos.house_create_response import HouseCreateResponse +from ..dtos.houses_list_response import HouseResponse, HousesListResponse +from ..models.house import House +from ..models.owner import Owner from ..providers.auth_provider import AuthContext from ..repositories.house_repository import HouseRepository from ..repositories.owner_repository import OwnerRepository -from ..models.house import House -from ..models.owner import Owner -from ..dtos.house_create_request import HouseCreateRequest -from ..dtos.house_create_response import HouseCreateResponse -from ..dtos.houses_list_response import HousesListResponse, HouseResponse router = APIRouter() @@ -19,7 +21,7 @@ async def create_house( house_repository: Annotated[HouseRepository, Depends()], owner_repository: Annotated[OwnerRepository, Depends()], ) -> HouseCreateResponse: - owner = await owner_repository.get_by_id(auth.user.id) + owner = await owner_repository.get_by_user_id(auth.user.id) if not owner: new_owner = Owner(user_id=auth.user.id)