|
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) |