Fix issues with getting the owner

This commit is contained in:
Jacob Windsor 2025-02-19 16:42:15 +01:00
parent 6dd5f2780e
commit d0fefeff1b
2 changed files with 19 additions and 11 deletions

View File

@ -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.

View File

@ -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)