20 lines
923 B
Python
20 lines
923 B
Python
from api.application.abstractions.transaction import TransactionContextManager
|
|
from api.application.contracts.company.company_request import CompanyByOwnerEmail
|
|
from api.application.contracts.company.company_response import CompanyBaseResponse
|
|
from api.domain.company.repository import CompanyRepository
|
|
|
|
|
|
class GetCompaniesByOwnerEmail:
|
|
def __init__(
|
|
self,
|
|
transaction: TransactionContextManager,
|
|
company_repository: CompanyRepository,
|
|
) -> None:
|
|
self.company_repository = company_repository
|
|
self.transaction = transaction
|
|
|
|
async def execute(self, request: CompanyByOwnerEmail) -> list[CompanyBaseResponse]:
|
|
async with self.transaction:
|
|
companies = await self.company_repository.get_companies_by_owner_email(filter={"email": request.email})
|
|
return [CompanyBaseResponse(name=comp.name.value, email=comp.email.value) for comp in companies]
|