-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.py
More file actions
42 lines (34 loc) · 1.26 KB
/
Copy pathconfig.py
File metadata and controls
42 lines (34 loc) · 1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
from data.database.database import Database
from data.repositories.user_repository import UserRepository
from domain.services.user_service import UserService
from domain.services.jwt_service import JWTService
from helpers.app_di import AppDI
from controllers.dtos.user_dto import UserDto
import os
from datetime import timedelta
def configure_di(connection) -> AppDI:
di = AppDI()
# Database
di.register_database(Database(version=0, connection=connection))
database = di.get_database()
database.create_tables()
# Repositories
di.register_repository("user_repository", UserRepository(connection=connection))
user_repository = di.get_repository("user_repository")
# Services
di.register_service("user_service", UserService(user_repository=user_repository))
# JWT Service
jwt_secret_key = os.environ.get("JWT_SECRET_KEY")
jwt_access_token_expires = timedelta(hours=1)
jwt_refresh_token_expires = timedelta(days=30)
di.register_service(
"jwt_service",
JWTService(
secret_key=jwt_secret_key,
access_token_expires=jwt_access_token_expires,
refresh_token_expires=jwt_refresh_token_expires,
),
)
# DTOs
di.register_dto("user_dto", UserDto())
return di