Initial commit
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
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
|
||||
Reference in New Issue
Block a user