from typing import Dict, List, Optional from api_server.utils.file_operations import FileSystemOperations, FileSystemItem class FileService: def __init__(self, allowed_directories: Dict[str, str], file_system_ops: Optional[FileSystemOperations] = None): self.allowed_directories: Dict[str, str] = allowed_directories self.file_system_ops: FileSystemOperations = file_system_ops or FileSystemOperations() def list_files(self, directory_key: str) -> List[FileSystemItem]: if directory_key not in self.allowed_directories: raise ValueError("Invalid directory key") directory_path: str = self.allowed_directories[directory_key] return self.file_system_ops.walk_directory(directory_path)