Files
HemoAnalysisModelServer/app/domain/usecase/GetLatestModelUseCase.py
T
2026-06-12 23:53:39 +03:00

22 lines
997 B
Python

from app.domain.ModelStorage import ModelStorage
from app.domain.Model import Model
from app.domain.Exception import ModelNotFoundError
from app.domain.ModelRepository import ModelRepository
class GetLatestModelUseCase:
def __init__(self, repository: ModelRepository, storage: ModelStorage) -> None:
self._repository = repository
self._storage = storage
def execute(self, version: str | None = None, filename: str | None = None) -> Model:
model = self._repository.get_latest()
if model is None:
raise ModelNotFoundError("No models have been uploaded yet.")
if version is not None and model.version != version:
raise ModelNotFoundError("Latest model does not match requested version.")
if filename is not None and model.filename != filename:
raise ModelNotFoundError("Latest model does not match requested filename.")
self._storage.ensure_model_file_exists(model.file_path)
return model