auth and raw sql in alchemy

This commit is contained in:
2024-04-01 09:19:10 +00:00
parent 4e6aee8c3a
commit 949ea9fdcf
19 changed files with 71 additions and 40 deletions

View File

@@ -4,7 +4,7 @@ from fastapi import Depends
from api.application.abstractions.uow import UnitOfWork
from api.application.protocols.password_hasher import PasswordHasher
from api.application.usecase.user.create_user import CreateUser
from api.application.usecase.auth.create_user import CreateUser
from api.domain.user.repository import UserRepository
from api.infrastructure.dependencies.stub import Stub
@@ -14,4 +14,6 @@ def provide_create_user(
uow: Annotated[UnitOfWork, Depends(Stub(UnitOfWork))],
password_hasher: Annotated[PasswordHasher, Depends(Stub(PasswordHasher))],
) -> CreateUser:
return CreateUser(uow=uow, user_repository=user_repository, password_hasher=password_hasher)
return CreateUser(
uow=uow, user_repository=user_repository, password_hasher=password_hasher
)

View File

@@ -7,7 +7,7 @@ from api.infrastructure.persistence.models.base import Base
class UserModel(Base):
__tablename__ = "user"
__tablename__ = "users"
id: Mapped[uuid.UUID] = mapped_column(
UUID(as_uuid=True),

View File

@@ -1,4 +1,4 @@
from sqlalchemy import insert
from sqlalchemy import text
from sqlalchemy.ext.asyncio import AsyncSession
from api.domain.user import User, UserRepository
@@ -10,13 +10,26 @@ class SqlAlchemyUserRepository(UserRepository):
self.session = session
async def create_user(self, user: User) -> None:
stmt = insert(UserModel).values(
id=user.id.value,
name=user.name.value,
email=user.email.value,
hashed_password=user.hashed_password,
# stmt = insert(UserModel).values(
# id=user.id.value,
# name=user.name.value,
# email=user.email.value,
# hashed_password=user.hashed_password,
# )
stmt = text(
"""INSERT INTO users (id, name, email, hashed_password)
VALUES(:id, :name, :email, :hashed_password)
"""
)
await self.session.execute(
stmt,
{
"id": str(user.id.value),
"name": user.name.value,
"email": user.email.value,
"hashed_password": user.hashed_password,
},
)
await self.session.execute(stmt)
async def get_user(self, filter: dict) -> User | None:
pass