DocHub/backend/app/dependencies.py

30 lines
972 B
Python

from functools import lru_cache
import meilisearch
from minio import Minio
from app.config import settings
from app.document_service import DocumentService
from app.minio_client import MinioClient
from app.search_client import SearchClient
@lru_cache
def get_document_service() -> DocumentService:
minio_sdk = Minio(
settings.minio_endpoint,
access_key=settings.minio_access_key,
secret_key=settings.minio_secret_key,
secure=False,
)
meili_sdk = meilisearch.Client(settings.meilisearch_host, settings.meilisearch_api_key)
minio_client = MinioClient(minio_sdk, settings.minio_bucket)
search_client = SearchClient(meili_sdk, settings.meilisearch_index)
return DocumentService(minio_client, search_client)
@lru_cache
def get_search_client() -> SearchClient:
meili_sdk = meilisearch.Client(settings.meilisearch_host, settings.meilisearch_api_key)
return SearchClient(meili_sdk, settings.meilisearch_index)