From 14a064fdefd1d6a9362cf3a4c078bbfc6da5b316 Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Fri, 8 May 2026 14:16:41 +0000 Subject: [PATCH] =?UTF-8?q?Upload=20gzip-compressed=20MagicPlan=20JSON=20t?= =?UTF-8?q?o=20S3=20=F0=9F=9F=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/magic_plan/magic_plan_service.py | 8 ++++++++ backend/magic_plan/tests/test_magic_plan_service.py | 4 +++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/backend/magic_plan/magic_plan_service.py b/backend/magic_plan/magic_plan_service.py index 6be6486c..bb68fa42 100644 --- a/backend/magic_plan/magic_plan_service.py +++ b/backend/magic_plan/magic_plan_service.py @@ -41,8 +41,16 @@ class MagicPlanService: raise ValueError(f"No MagicPlan found for address: {address!r}") magic_plan: MagicPlanPlan = self._client.get_plan(matched.id) + raw_bytes: bytes = self._client.get_plan_raw(matched.id) plan: Plan = map_plan(magic_plan) + compressed = gzip.compress(raw_bytes) + if uprn is not None: + s3_key = f"documents/uprn/{uprn}/magic_plan_{matched.id}.json.gz" + else: + s3_key = f"documents/hubspot_deal_id/{request.hubspot_deal_id}/magic_plan_{matched.id}.json.gz" + save_data_to_s3(compressed, self._s3_bucket, s3_key) + with db_session() as session: save_plan(session, plan) diff --git a/backend/magic_plan/tests/test_magic_plan_service.py b/backend/magic_plan/tests/test_magic_plan_service.py index 87e20506..65c19b7a 100644 --- a/backend/magic_plan/tests/test_magic_plan_service.py +++ b/backend/magic_plan/tests/test_magic_plan_service.py @@ -43,7 +43,9 @@ def plan_summary() -> PlanSummary: @pytest.fixture() def mock_client() -> MagicMock: - return MagicMock(spec=MagicPlanClient) + client = MagicMock(spec=MagicPlanClient) + client.get_plan_raw.return_value = b"{}" + return client def _make_service(mock_client: MagicMock) -> MagicPlanService: