18 lines
479 B
Python
18 lines
479 B
Python
from typing import Callable, Type
|
|
|
|
from fastapi import Depends
|
|
from starlette.requests import Request
|
|
|
|
from src.db.database import Database
|
|
from src.repositories.base_repository import BaseRepository
|
|
|
|
|
|
def get_database(request: Request) -> Database:
|
|
return request.app.state._db
|
|
|
|
|
|
def get_repository(Repo_type: Type[BaseRepository]) -> Callable:
|
|
def get_repo(db: Database = Depends(get_database)) -> Type[BaseRepository]:
|
|
return Repo_type(db)
|
|
return get_repo
|