37 lines
1.1 KiB
Python
37 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
|
|
)
|