Add basic endpoints

This commit is contained in:
Jacob Windsor
2025-02-19 14:27:14 +01:00
parent e0f8112d13
commit 2e70664620
12 changed files with 77 additions and 22 deletions
+24 -3
View File
@@ -1,12 +1,33 @@
from fastapi import APIRouter, Depends
from typing import Annotated
from ..providers.auth_provider import AuthProvider
from ..providers.auth_provider import AuthContext
from ..repositories.house_repository import HouseRepository
from ..models.house import House
from ..dtos.house_create_request import HouseCreateRequest
from ..dtos.house_create_response import HouseCreateResponse
router = APIRouter()
@router.post("")
async def create_house(auth_provider: Annotated[AuthProvider, Depends()]):
return auth_provider.user
async def create_house(body: HouseCreateRequest, auth: Annotated[AuthContext, Depends()], house_repository: Annotated[HouseRepository, Depends()]) -> HouseCreateResponse:
owner = auth.user
house = House(
owner_id=owner.id,
address=body.address,
city=body.city,
country=body.country,
price=body.price,
description=body.description
)
await house_repository.save(house)
return HouseCreateResponse(
id=house.id
)
@router.get("")
async def get_all_houses():
+10
View File
@@ -0,0 +1,10 @@
from fastapi import APIRouter, Depends
from typing import Annotated
from ..repositories.owner_repository import OwnerRepository
router = APIRouter()
@router.get("/{id}")
async def get_owner(id: str, owner_repository: Annotated[OwnerRepository, Depends()]):
return await owner_repository.get_by_id(id)