Skip to content

Commit 44499ec

Browse files
committed
ddd
1 parent 77902bc commit 44499ec

28 files changed

+670
-2
lines changed

poetry.lock

Lines changed: 125 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ fastapi = "^0.115.0"
1111
sqlalchemy = "^2.0.35"
1212
sqlmodel = "^0.0.22"
1313
pydantic-settings = "^2.5.2"
14+
pyjwt = "^2.10.1"
15+
pytest = "^8.3.4"
16+
bcrypt = "^4.2.1"
1417

1518

1619
[build-system]

src/__init__.py

Whitespace-only changes.

src/domain/__init__.py

Whitespace-only changes.

src/domain/auth/__init__.py

Whitespace-only changes.

src/domain/auth/entities/__init__.py

Whitespace-only changes.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
from typing import Self
2+
from dataclasses import dataclass
3+
4+
from domain.base import BaseEntity
5+
from domain.auth.value_objects.token import Token
6+
7+
8+
@dataclass
9+
class AccessToken(BaseEntity):
10+
token: Token
11+
12+
@classmethod
13+
def create(cls, user_id: int) -> Self:
14+
"""
15+
Создает новый AccessToken для указанного пользователя.
16+
17+
:param user_id: Идентификатор пользователя.
18+
:return: Объект AccessToken.
19+
"""
20+
return cls(
21+
token=Token.create(user_id, expiration_time=60 * 10),
22+
)
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
from typing import Self
2+
from dataclasses import dataclass
3+
4+
from domain.base import BaseEntity
5+
from domain.auth.value_objects.token import Token
6+
7+
8+
@dataclass
9+
class RefreshToken(BaseEntity):
10+
token: Token
11+
12+
@classmethod
13+
def create(cls, user_id: int) -> Self:
14+
"""
15+
Создает новый RefreshToken для указанного пользователя.
16+
17+
:param user_id: Идентификатор пользователя.
18+
:return: Объект RefreshToken.
19+
"""
20+
return cls(
21+
token=Token.create(user_id, expiration_time=60 * 60 * 24),
22+
)

src/domain/auth/exceptions.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
from dataclasses import dataclass
2+
3+
from domain.base import DomainError
4+
5+
6+
@dataclass(eq=False)
7+
class TokenInvalidError(DomainError):
8+
token: str
9+
10+
@property
11+
def message(self) -> str:
12+
return f"Token invalid {self.token}"
13+
14+
15+
@dataclass(eq=False)
16+
class TokenExpiredError(DomainError):
17+
token: str
18+
19+
@property
20+
def message(self) -> str:
21+
return f"Token expired {self.token}"
22+
23+
24+

src/domain/auth/value_objects/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)