3131 get_document_public ,
3232 get_protected_document ,
3333 get_districtr_map ,
34+ parse_document_id ,
3435)
36+ from app .core .models import DocumentID
3537from app .core .config import settings
3638import app .contiguity .main as contiguity
3739import app .cms .main as cms
@@ -155,7 +157,9 @@ async def db_is_alive(session: Session = Depends(get_session)):
155157
156158@app .post ("/api/document/{document_id}/unload" , status_code = status .HTTP_200_OK )
157159async def unlock_map (
158- document_id : str , user_id : str = Form (...), session : Session = Depends (get_session )
160+ document_id : DocumentID = Depends (parse_document_id ),
161+ user_id : str = Form (...),
162+ session : Session = Depends (get_session ),
159163):
160164 """
161165 unlock map when tab is unloaded
@@ -169,7 +173,7 @@ async def unlock_map(
169173 bindparam (key = "document_id" , type_ = UUIDType ),
170174 bindparam (key = "user_id" , type_ = String ),
171175 ),
172- {"document_id" : document_id , "user_id" : user_id },
176+ {"document_id" : document_id . value , "user_id" : user_id },
173177 )
174178 session .commit ()
175179 return {"status" : DocumentEditStatus .unlocked }
@@ -461,7 +465,9 @@ async def reset_map(
461465 response_model = ColorsSetResult ,
462466)
463467async def update_colors (
464- document_id : str , colors : list [str ], session : Session = Depends (get_session )
468+ colors : list [str ],
469+ document_id : DocumentID = Depends (parse_document_id ),
470+ session : Session = Depends (get_session ),
465471):
466472 districtr_map = session .exec (
467473 select (DistrictrMap )
@@ -470,7 +476,7 @@ async def update_colors(
470476 Document .districtr_map_slug == DistrictrMap .districtr_map_slug , # pyright: ignore
471477 isouter = True ,
472478 )
473- .where (Document .document_id == document_id )
479+ .where (Document .document_id == document_id . value )
474480 ).one ()
475481
476482 if districtr_map .num_districts != len (colors ):
@@ -487,7 +493,7 @@ async def update_colors(
487493 bindparam (key = "document_id" , type_ = UUIDType ),
488494 bindparam (key = "colors" , type_ = ARRAY (String )),
489495 )
490- session .execute (stmt , {"document_id" : document_id , "colors" : colors })
496+ session .execute (stmt , {"document_id" : document_id . value , "colors" : colors })
491497 session .commit ()
492498 return ColorsSetResult (colors = colors )
493499
@@ -521,7 +527,7 @@ async def get_assignments(
521527
522528@app .get ("/api/document/{document_id}" , response_model = DocumentPublic )
523529async def get_document_object (
524- document_id : str | int ,
530+ document_id : DocumentID = Depends ( parse_document_id ) ,
525531 user_id : str | None = None ,
526532 session : Session = Depends (get_session ),
527533):
@@ -611,18 +617,14 @@ async def _get_graph(gerrydb_name: str) -> Graph:
611617
612618@app .get ("/api/document/{document_id}/contiguity" )
613619async def check_document_contiguity (
614- document_id : str ,
615620 document : Annotated [Document , Depends (get_protected_document )],
621+ districtr_map : Annotated [DistrictrMap , Depends (get_districtr_map )],
616622 zone : list [int ] = Query (default = []),
617623 session : Session = Depends (get_session ),
618624):
619- assert document .document_id is not None
620-
621- districtr_map = get_districtr_map (session = session , document_id = document .document_id )
622-
623625 if districtr_map .child_layer is not None :
624626 logger .info (
625- f"Using child layer { districtr_map .child_layer } for document { document_id } "
627+ f"Using child layer { districtr_map .child_layer } for document { document . document_id } "
626628 )
627629 gerrydb_name = districtr_map .child_layer
628630 kwargs = {"zones" : zone } if len (zone ) > 0 else {}
@@ -632,7 +634,7 @@ async def check_document_contiguity(
632634 else :
633635 gerrydb_name = districtr_map .parent_layer
634636 logger .info (
635- f"No child layer configured for document. Defauling to parent layer { gerrydb_name } for document { document_id } "
637+ f"No child layer configured for document. Defauling to parent layer { gerrydb_name } for document { document . document_id } "
636638 )
637639 sql = text (
638640 """
@@ -666,18 +668,14 @@ async def check_document_contiguity(
666668
667669@app .get ("/api/document/{document_id}/contiguity/{zone}/connected_component_bboxes" )
668670async def get_connected_component_bboxes (
669- document_id : str ,
670671 zone : int ,
671672 document : Annotated [Document , Depends (get_protected_document )],
673+ districtr_map : Annotated [DistrictrMap , Depends (get_districtr_map )],
672674 session : Session = Depends (get_session ),
673675):
674- assert document .document_id is not None
675-
676- districtr_map = get_districtr_map (session = session , document_id = document .document_id )
677-
678676 if districtr_map .child_layer is not None :
679677 logger .info (
680- f"Using child layer { districtr_map .child_layer } for document { document_id } "
678+ f"Using child layer { districtr_map .child_layer } for document { document . document_id } "
681679 )
682680 gerrydb_name = districtr_map .child_layer
683681 zone_assignments = contiguity .get_block_assignments_bboxes (
@@ -691,7 +689,7 @@ async def get_connected_component_bboxes(
691689 else :
692690 gerrydb_name = districtr_map .parent_layer
693691 logger .info (
694- f"No child layer configured for document. Defauling to parent layer { gerrydb_name } for document { document_id } "
692+ f"No child layer configured for document. Defauling to parent layer { gerrydb_name } for document { document . document_id } "
695693 )
696694 sql = text (
697695 f"""
@@ -820,7 +818,6 @@ async def update_districtrmap_metadata(
820818 # response_model=list[DistrictrMapPublic]
821819)
822820async def get_projects (
823- * ,
824821 session : Session = Depends (get_session ),
825822 group : str = Query (default = "states" ),
826823 offset : int = Query (default = 0 , ge = 0 ),
0 commit comments