diff --git a/backend/app/db/functions/magic_plan_functions.py b/backend/app/db/functions/magic_plan_functions.py index 143e4172..4a8d7940 100644 --- a/backend/app/db/functions/magic_plan_functions.py +++ b/backend/app/db/functions/magic_plan_functions.py @@ -1,4 +1,4 @@ -from typing import Any, cast +from typing import Any, Optional, cast from sqlalchemy import delete, select from sqlalchemy.dialects.postgresql import insert as pg_insert @@ -14,6 +14,12 @@ from backend.app.db.models.magic_plan import ( ) +def get_plan_by_uploaded_file_id( + session: Session, uploaded_file_id: int +) -> Optional[Plan]: + raise NotImplementedError + + def save_plan(session: Session, plan: Plan, uploaded_file_id: int) -> None: plan_id: int = _upsert_plan(session, plan, uploaded_file_id) _delete_children(session, plan_id) diff --git a/backend/app/db/functions/tests/test_magic_plan_functions.py b/backend/app/db/functions/tests/test_magic_plan_functions.py index 0b93685c..024ed5d7 100644 --- a/backend/app/db/functions/tests/test_magic_plan_functions.py +++ b/backend/app/db/functions/tests/test_magic_plan_functions.py @@ -10,7 +10,10 @@ from datatypes.magicplan.api.response import MagicPlanPlan from datatypes.magicplan.domain.mapper import map_plan from datatypes.magicplan.domain.models import Plan -from backend.app.db.functions.magic_plan_functions import save_plan +from backend.app.db.functions.magic_plan_functions import ( + get_plan_by_uploaded_file_id, + save_plan, +) from backend.app.db.models.magic_plan import ( MagicPlanDoorModel, MagicPlanFloorModel, @@ -95,6 +98,13 @@ def test_save_plan_idempotent(db_session: Session, domain_plan: Plan) -> None: ) +def test_get_plan_returns_none_when_not_found(db_session: Session) -> None: + # Act + result = get_plan_by_uploaded_file_id(db_session, 999) + # Assert + assert result is None + + def test_uploaded_file_id_stored_after_save(db_session: Session, domain_plan: Plan) -> None: # Act save_plan(db_session, domain_plan, 1)