34 lines
985 B
Python
34 lines
985 B
Python
from fastapi import APIRouter, Depends
|
|
from typing import Annotated
|
|
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(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=str(house.id)
|
|
)
|
|
|
|
|
|
|
|
@router.get("")
|
|
async def get_all_houses():
|
|
raise NotImplementedError("This endpoint is not implemented yet.") |