Spaces:
Paused
Paused
| from typing import Any, Optional | |
| from app.modules.cases.service import CaseService | |
| from core.plugin_system.facades import BaseFacade | |
| from core.plugin_system.permissions import PluginPermission | |
| class CasePluginFacade(BaseFacade): | |
| """ | |
| Facade for Case operations exposed to plugins. | |
| """ | |
| def __init__( | |
| self, service: CaseService, plugin_id: str, permissions: list[str] = None | |
| ): | |
| super().__init__(service, plugin_id, permissions) | |
| def get_case(self, case_id: str) -> Optional[dict[str, Any]]: | |
| """ | |
| Get safe case details. | |
| Requires: READ_CASE | |
| """ | |
| if not self._check_permission(PluginPermission.READ_CASE): | |
| return None | |
| try: | |
| # Assuming get_case exists on CaseService (we will verify) | |
| case = self._service.get_case(case_id) | |
| if not case: | |
| return None | |
| return { | |
| "id": case.id, | |
| "title": case.title, | |
| "status": case.status, | |
| "priority": case.priority, | |
| "created_at": case.created_at, | |
| } | |
| except Exception: | |
| return None | |