2025-02-19 15:22:02 +01:00

31 lines
1.1 KiB
Python

from fastapi import APIRouter, Depends
from typing import Annotated
from ..repositories.owner_repository import OwnerRepository
from ..repositories.user_repository import UserRepository
from ..dtos.owner_list_response import OwnerListResponse, OwnerResponse
from ..dtos.owner_detail_response import OwnerDetailResponse
router = APIRouter()
@router.get("")
async def get_owners(owner_repository: Annotated[OwnerRepository, Depends()]) -> OwnerListResponse:
owners = await owner_repository.get_all()
owners_response = [OwnerResponse(id=str(owner.id), user_id=str(owner.user_id)) for owner in owners]
return OwnerListResponse(
owners=owners_response
)
@router.get("/{id}")
async def get_owner(id: str, owner_repository: Annotated[OwnerRepository, Depends()], user_repository: Annotated[UserRepository, Depends()]) -> OwnerDetailResponse:
owner = await owner_repository.get_by_id(id)
user = await user_repository.get_by_id(owner.user_id)
return OwnerDetailResponse(
id=str(owner.id),
user_id=str(owner.user_id),
email=user.email
)