make more simple and ruff format

This commit is contained in:
Ivanov Matvey 2025-03-13 20:12:34 +10:00
parent b2ed5260a6
commit 883e1d4359
14 changed files with 20 additions and 117 deletions

View File

@ -1,17 +1,20 @@
from enum import Enum
from datetime import datetime, timezone
def utc_signed_now():
return datetime.now(timezone.utc)
class SpaceType(Enum):
GLOBAL=0
BLOG=1
POST=2
GLOBAL = 0
BLOG = 1
POST = 2
class EventType(Enum):
LOGIN=0
COMMENT=1
CREATE_POST=2
DELETE_POST=3
LOGOUT=4
LOGIN = 0
COMMENT = 1
CREATE_POST = 2
DELETE_POST = 3
LOGOUT = 4

View File

@ -12,4 +12,3 @@ class Post(Base):
text: Mapped[str] = mapped_column(default="")
author_id: Mapped[int] = mapped_column(ForeignKey(User.id))
# author: Mapped[User] = relationship(lazy="selectin")

View File

@ -8,4 +8,3 @@ class Base(AsyncAttrs, DeclarativeBase):
"""
id: Mapped[int] = mapped_column(autoincrement=True, primary_key=True)

View File

@ -10,7 +10,9 @@ from ..common import utc_signed_now, SpaceType, EventType
class Log(Base):
__tablename__ = "log"
id: Mapped[int] = mapped_column(INTEGER, primary_key=True, autoincrement=True)
date_time: Mapped[datetime] = mapped_column("datetime", TIMESTAMP(timezone=True), default=utc_signed_now)
date_time: Mapped[datetime] = mapped_column(
"datetime", TIMESTAMP(timezone=True), default=utc_signed_now
)
user_id: Mapped[int]
space_type: Mapped[SpaceType]
event_type: Mapped[EventType]

View File

@ -1,21 +0,0 @@
from src.utils.repository import SQLAlchemyRepository
from .models import (
User,
Blog,
Post,
Log
)
class userRepository(SQLAlchemyRepository):
# here I can write methods only for this repository
model = User
class BlogRepository(SQLAlchemyRepository):
model = Blog
class PostRepository(SQLAlchemyRepository):
model = Post
class LogRepository(SQLAlchemyRepository):
model = Log

View File

@ -1,20 +0,0 @@
from sqlalchemy.ext.asyncio import AsyncSession
from src.adapters.database.repositories import (
userRepository,
BlogRepository,
PostRepository,
LogRepository
)
class RepositoriesGatewayDB1:
def __init__(self, session: AsyncSession):
self.user = userRepository(session)
self.blog = BlogRepository(session)
self.post = PostRepository(session)
class RepositoriesGatewayDB2:
def __init__(self, session: AsyncSession):
self.log = LogRepository(session)

View File

@ -2,19 +2,19 @@ from typing import Annotated
from fastapi import APIRouter, Depends
from src.unit_of_work import UnitOfWork
dataset_router = APIRouter()
@dataset_router.get("/comments", response_model=None)
async def get_database_comments(uow: Annotated[UnitOfWork, Depends(UnitOfWork)]):
async def get_database_comments():
pass
# async with uow:
# return await FavouriteService(uow, jwt_token).get_favourites(
# page=page, limit=limit
# )
@dataset_router.get("/general", response_model=None)
async def get_database_general(uow: Annotated[UnitOfWork, Depends(UnitOfWork)]):
async def get_database_general():
pass

View File

@ -20,4 +20,3 @@ app.include_router(healthcheck_router)
main_app_router = APIRouter(prefix="/api")
app.include_router(main_app_router)

View File

@ -1,10 +0,0 @@
from src.unit_of_work import UnitOfWork
class DatasetCommentsService:
def __init__(self, uow: UnitOfWork):
self.uow = uow
async def get_dataset(self):
# data = await self.uow.repositories
pass

View File

@ -1,10 +0,0 @@
from src.unit_of_work import UnitOfWork
class DatasetGeneralService:
def __init__(self, uow: UnitOfWork):
self.uow = uow
async def get_dataset(self):
# data = await self.uow.repositories
pass

View File

@ -1,37 +0,0 @@
from asyncio import shield
from src.adapters.database.repository_gateway import RepositoriesGatewayDB1, RepositoriesGatewayDB2
from src.adapters.database.session import async_session_maker_db1, async_session_maker_db2
from src.utils.repository import _sentinel
class UnitOfWork:
repositories = _sentinel
def __init__(self):
self.db1_session_factory = async_session_maker_db1
self.db2_session_factory = async_session_maker_db2
async def __aenter__(self):
self.db1_session = self.db1_session_factory()
self.db2_session = self.db2_session_factory()
self.repositories_db1 = RepositoriesGatewayDB1(self.db1_session)
self.repositories_db2 = RepositoriesGatewayDB2(self.db2_session)
return self
async def __aexit__(self, *args):
await self.rollback()
await shield(self.db1_session.close())
await shield(self.db2_session.close())
async def commit(self):
await self.db1_session.commit()
await self.db2_session.commit()
async def rollback(self):
await self.db1_session.rollback()
await self.db2_session.rollback()

View File

@ -140,4 +140,3 @@ class SQLAlchemyRepository(AbstractRepository):
res = await self.session.execute(stmt)
return res.scalars()