support MultiPolygon geojson in geometry schemas (Fixes C3NAV-37C3-1, Fixes C3NAV-37C3-12)

This commit is contained in:
Gwendolyn 2023-12-21 23:13:22 +01:00
parent 15dc4c0023
commit 9806472083

View file

@ -61,6 +61,19 @@ class PolygonSchema(BaseSchema):
title = "GeoJSON Polygon"
class MultiPolygonSchema(BaseSchema):
"""
A GeoJSON MultiPolygon
"""
type: Literal["MultiPolygon"]
coordinates: list[list[list[tuple[float, float]]]] = APIField(
example=[[[[1.5, 1.5], [1.5, 2.5], [2.5, 2.5], [2.5, 2.5]]]]
)
class Config(Schema.Config):
title = "GeoJSON Polygon"
class LineStringSchema(BaseSchema):
"""
A GeoJSON LineString
@ -104,7 +117,9 @@ GeometrySchema = Annotated[
Union[
PolygonSchema,
LineStringSchema,
PointSchema,],
PointSchema,
MultiPolygonSchema,
],
Discriminator("type"),
]