Download apps/cases/services/case/case_template_binding_query_service.py from jun2024/fc: direct link, hf CLI and curl.
- Browser
- Download file 2.44 kB
-
https://huggingface.co/spaces/jun2024/fc/resolve/main/apps/cases/services/case/case_template_binding_query_service.py
- Command line
-
hf download hf://spaces/jun2024/fc/apps/cases/services/case/case_template_binding_query_service.py
-
curl -L -o case_template_binding_query_service.py https://huggingface.co/spaces/jun2024/fc/resolve/main/apps/cases/services/case/case_template_binding_query_service.py
2.44 kB
| """Business logic services.""" | |
| from __future__ import annotations | |
| import logging | |
| from apps.cases.models import CaseTemplateBinding | |
| from apps.core.dto import CaseTemplateBindingDTO | |
| logger = logging.getLogger("apps.cases") | |
| class CaseTemplateBindingQueryService: | |
| def get_case_template_binding_internal(self, case_id: int) -> CaseTemplateBindingDTO | None: | |
| try: | |
| binding = CaseTemplateBinding.objects.select_related("template").filter(case_id=case_id).first() | |
| if not binding: | |
| return None | |
| return CaseTemplateBindingDTO( | |
| id=binding.id, | |
| case_id=binding.case_id, | |
| template_id=binding.template_id, | |
| template_name=binding.template.name if binding.template else "", | |
| template_function_code=None, | |
| binding_source=binding.binding_source, | |
| created_at=str(binding.created_at) if binding.created_at else None, | |
| ) | |
| except Exception: | |
| logger.exception("get_case_template_binding_internal_failed", extra={"case_id": case_id}) | |
| raise | |
| def get_case_template_bindings_by_name_internal( | |
| self, case_id: int, template_name: str | |
| ) -> list[CaseTemplateBindingDTO]: | |
| try: | |
| bindings = CaseTemplateBinding.objects.filter( | |
| case_id=case_id, | |
| template__name=template_name, | |
| template__is_active=True, | |
| ).select_related("template") | |
| result: list[CaseTemplateBindingDTO] = [] | |
| for binding in bindings: | |
| result.append( | |
| CaseTemplateBindingDTO( | |
| id=binding.id, | |
| case_id=binding.case_id, | |
| template_id=binding.template_id, | |
| template_name=binding.template.name if binding.template else "", | |
| template_function_code=None, | |
| binding_source=getattr(binding, "binding_source", "manual"), | |
| created_at=str(binding.created_at) if binding.created_at else None, | |
| ) | |
| ) | |
| return result | |
| except Exception: | |
| logger.exception( | |
| "get_case_template_bindings_by_name_internal_failed", | |
| extra={"case_id": case_id, "template_name": template_name}, | |
| ) | |
| raise | |