From b8bd221a4ee1a2ebfd9c0dbc776d5d468b82cc45 Mon Sep 17 00:00:00 2001 From: Fast Code Date: Sun, 14 Jul 2024 02:44:38 +0300 Subject: [PATCH] update --- app/api/anotations.py | 11 +++++------ app/core/deps.py | 3 ++- app/core/logic.py | 4 ++-- app/core/security/jwt.py | 12 ++++++------ app/logic/__init__.py | 3 +++ app/repositories/abstract.py | 4 ++-- 6 files changed, 20 insertions(+), 17 deletions(-) create mode 100644 app/logic/__init__.py diff --git a/app/api/anotations.py b/app/api/anotations.py index b2d7b53..156ddf3 100644 --- a/app/api/anotations.py +++ b/app/api/anotations.py @@ -2,15 +2,14 @@ Dependencies """ -from fastapi import Depends -from typing_extensions import Annotated +from typing import Annotated from app.core import deps -Database = Annotated[deps.Database, Depends(deps.get_db)] +Database = Annotated[deps.Database, deps.Depends(deps.get_db)] -Security = Annotated[deps.Security, Depends(deps.get_security)] +Security = Annotated[deps.Security, deps.Depends(deps.get_security)] -Logic = Annotated[deps.Logic, Depends(deps.get_logic)] +Logic = Annotated[deps.Logic, deps.Depends(deps.get_logic)] -CurrentUser = Annotated[deps.User, Depends(deps.get_current_user)] +CurrentUser = Annotated[deps.User, deps.Depends(deps.get_current_user)] diff --git a/app/core/deps.py b/app/core/deps.py index 4da2f95..c477d9f 100644 --- a/app/core/deps.py +++ b/app/core/deps.py @@ -2,9 +2,10 @@ Dependencies """ +from typing import Annotated, AsyncGenerator + from fastapi import Depends from fastapi.security import APIKeyHeader -from typing_extensions import Annotated, AsyncGenerator from app.core.db import Database, SessionLocal from app.core.logic import Logic diff --git a/app/core/logic.py b/app/core/logic.py index b3f515e..a75494a 100644 --- a/app/core/logic.py +++ b/app/core/logic.py @@ -1,11 +1,11 @@ +from app import logic from app.core.db import Database from app.core.security import Security -from app.logic.users import Users class Logic: def __init__(self, db: Database, security: Security): - self.users = Users(db, security) + self.users = logic.Users(db, security) __all__ = ['Logic'] diff --git a/app/core/security/jwt.py b/app/core/security/jwt.py index 77b57bb..8175860 100644 --- a/app/core/security/jwt.py +++ b/app/core/security/jwt.py @@ -11,18 +11,18 @@ def __init__(self, secret_key: str): def decode_token(self, token: str) -> dict | None: try: - payload = jwt.decode(token, self.secret_key, algorithms=["HS256"]) + payload = jwt.decode(token, self.secret_key, algorithms=['HS256']) except Exception: raise exps.TOKEN_INVALID - exp = payload.get("exp") + exp = payload.get('exp') if exp and dt.datetime.now(dt.UTC).timestamp() > exp: raise exps.TOKEN_EXPIRED - return payload.get("payload") + return payload.get('payload') def encode_token(self, payload: dict, minutes: int) -> str: claims = { - "payload": payload, - "exp": dt.datetime.now(dt.UTC) + dt.timedelta(minutes=minutes), + 'payload': payload, + 'exp': dt.datetime.now(dt.UTC) + dt.timedelta(minutes=minutes), } - return jwt.encode(claims, self.secret_key, algorithm="HS256") + return jwt.encode(claims, self.secret_key, algorithm='HS256') diff --git a/app/logic/__init__.py b/app/logic/__init__.py new file mode 100644 index 0000000..dfbe50b --- /dev/null +++ b/app/logic/__init__.py @@ -0,0 +1,3 @@ +from .users import Users + +__all__ = ['Users'] diff --git a/app/repositories/abstract.py b/app/repositories/abstract.py index 74ed1fd..29c6ee9 100644 --- a/app/repositories/abstract.py +++ b/app/repositories/abstract.py @@ -1,9 +1,9 @@ import abc +from typing import (Any, Generic, List, NoReturn, Optional, Sequence, Type, + TypeAlias, TypeVar) import sqlmodel as sm from sqlmodel.ext.asyncio.session import AsyncSession -from typing_extensions import (Any, Generic, List, NoReturn, Optional, - Sequence, Type, TypeAlias, TypeVar) AbstractModel = TypeVar('AbstractModel', bound=sm.SQLModel) WhereClauses: TypeAlias = Optional[List[sm.DefaultClause | bool]]