mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-27 23:35:01 +00:00
The service was the last one living wholly under backend/. It now follows the same layering as abri and the other newer services: domain/pashub_fetcher/ core file classification, subfolders infrastructure/pashub_fetcher/ PasHub client, token getter, wire DTOs orchestration/ PashubFetcherOrchestrator (was PashubService) applications/pashub_fetcher/ lambda handler, trigger request, dev tooling core_files.py is split along the layer boundary: the domain module keeps the filename/evidence-category classification rules and no longer imports infrastructure.postgres, while the CoreFiles -> FileTypeEnum translation moves to infrastructure/pashub_fetcher/core_file_types.py. Tests move into the tests/ tree by layer. Note this puts them in the only suite CI currently runs (unit_tests.yml is disabled), so these 73 tests now execute on PRs for the first time; they were previously reachable only via the legacy pytest.ini testpaths. sharepoint_renamer's image now copies just domain/pashub_fetcher/ rather than the whole service, since SharepointSubfolders is all it needed. Behaviour is unchanged. tests/ goes 9927 -> 10000 passed (+73, exactly the tests that moved in); the legacy suite keeps its same 17 pre-existing failures and 11 errors. tests/test_lambda_packaging.py confirms both changed Dockerfiles still copy their handler's full import closure. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
25 lines
673 B
Python
25 lines
673 B
Python
from __future__ import annotations
|
|
from dataclasses import dataclass
|
|
from typing import Any, Dict, Optional
|
|
|
|
|
|
@dataclass
|
|
class EvidenceFileData:
|
|
file_id: str
|
|
file_name: str
|
|
created_utc: str
|
|
file_size: int
|
|
file_extension: str
|
|
|
|
evidence_category: Optional[str] = None
|
|
|
|
@classmethod
|
|
def from_api(cls, data: Dict[str, Any]) -> EvidenceFileData:
|
|
return cls(
|
|
file_id=data["fileId"],
|
|
file_name=data["fileName"],
|
|
created_utc=data["createdUtc"],
|
|
file_size=data["fileSize"],
|
|
file_extension=data["fileExtension"],
|
|
evidence_category=data.get("evidenceCategory"),
|
|
)
|