Harden RC7 API response contracts
This commit is contained in:
@@ -15,9 +15,19 @@ from app.utils.geometry import area_m2, geometry_bbox_polygon, normalize_to_mult
|
||||
class AreaService:
|
||||
@staticmethod
|
||||
def serialize_area(area: Area) -> dict:
|
||||
payload = AreaRead.model_validate(area).model_dump()
|
||||
payload["geometry"] = mapping(to_shape(area.geometry)) if area.geometry else None
|
||||
return payload
|
||||
geometry = to_shape(area.geometry) if area.geometry else None
|
||||
return AreaRead.model_validate(
|
||||
{
|
||||
"id": area.id,
|
||||
"project_id": area.project_id,
|
||||
"name": area.name,
|
||||
"original_crs": area.original_crs,
|
||||
"area_m2": area.area_m2,
|
||||
"created_at": area.created_at,
|
||||
"geometry_type": geometry.geom_type if geometry else None,
|
||||
"geometry": mapping(geometry) if geometry else None,
|
||||
}
|
||||
).model_dump()
|
||||
|
||||
@staticmethod
|
||||
def list_areas(db: Session, project_id: uuid.UUID, limit: int = 50, offset: int = 0) -> tuple[list[Area], int]:
|
||||
|
||||
Reference in New Issue
Block a user