This commit is contained in:
2024-04-21 20:46:17 +00:00
parent 0e2ecd3449
commit 2ca7787dcb
17 changed files with 249 additions and 72 deletions

View File

@@ -1,6 +1,9 @@
from sqlalchemy.exc import IntegrityError
from api.application.abstractions import UnitOfWork
from api.application.contracts.auth.auth_request import UserCreateRequest
from api.application.protocols.password_hasher import PasswordHasher
from api.domain.user.error import UserAlreadyExistsError
from api.domain.user.model import User
from api.domain.user.repository import UserRepository
@@ -19,8 +22,18 @@ class CreateUser:
async def execute(self, request: UserCreateRequest) -> None:
user = User.create(
name=request.name,
last_name=request.last_name,
email=request.email,
hashed_password=self.hasher.hash_password(request.password),
)
await self.user_repository.create_user(user=user)
await self.uow.commit()
try:
await self.user_repository.create_user(user=user)
await self.uow.commit()
except IntegrityError as e:
msg = e.args[0].split("\n")[-1]
msg = msg.split(":")[1].strip()
if "email" in msg:
raise UserAlreadyExistsError(message=msg)

View File

@@ -0,0 +1,12 @@
from api.application.contracts.company.company_request import CreateNewCompany
from api.application.contracts.company.company_response import CompanyBaseResponse
from api.domain.company.repository import CompanyRepository
class CreateCompany:
def __init__(self, company_repository: CompanyRepository) -> None:
self.company_repository = company_repository
async def execute(self, request: CreateNewCompany) -> CompanyBaseResponse:
# companies = await self.company_repository.
return CompanyBaseResponse(name=request.name, email=request.email)