diff --git a/backend/src/services/file.service.ts b/backend/src/services/file.service.ts index 9338e2ff..0215754f 100644 --- a/backend/src/services/file.service.ts +++ b/backend/src/services/file.service.ts @@ -167,6 +167,9 @@ export class FileService implements OnModuleInit { .take(take) .skip(skip) .getManyAndCount(); + if (files.length === 0) { + throw new Error('No files found.'); + } return { data: files.map((element) => fileEntityToDto(element)), diff --git a/cli/kleinkram/core.py b/cli/kleinkram/core.py index 18719dd2..b081b2f4 100644 --- a/cli/kleinkram/core.py +++ b/cli/kleinkram/core.py @@ -22,6 +22,7 @@ from typing import Sequence from uuid import UUID +import httpx from rich.console import Console from tqdm import tqdm @@ -33,6 +34,7 @@ from kleinkram.api.query import MissionQuery from kleinkram.api.query import ProjectQuery from kleinkram.api.query import check_mission_query_is_creatable +from kleinkram.errors import InvalidFileQuery from kleinkram.errors import MissionNotFound from kleinkram.models import FileState from kleinkram.models import FileVerificationStatus @@ -67,7 +69,12 @@ def download( raise ValueError(f"Destination {base_dir.absolute()} is not a directory") # retrive files and get the destination paths - files = list(kleinkram.api.routes.get_files(client, file_query=query)) + try: + files = list(kleinkram.api.routes.get_files(client, file_query=query)) + except httpx.HTTPStatusError: + raise InvalidFileQuery( + f"Files not found. Maybe you forgot to specify mission or project flags: {query}" + ) paths = file_paths_from_files(files, dest=base_dir, allow_nested=nested) if verbose: