Persist simple polygons in the db.

They are being sent over from admin, and persisted
in the db so we can send them on to the broadcast
provider later on.
This commit is contained in:
Pea Tyczynska
2020-09-02 14:55:23 +01:00
parent 06ff8723d2
commit 5cf6e1cf72
6 changed files with 25 additions and 9 deletions

View File

@@ -14,6 +14,7 @@ create_broadcast_message_schema = {
'starts_at': {'type': 'string', 'format': 'datetime'},
'finishes_at': {'type': 'string', 'format': 'datetime'},
'areas': {"type": "array", "items": {"type": "string"}},
'simple_polygons': {"type": "array", "items": {"type": "array"}},
},
'required': ['template_id', 'service_id', 'created_by'],
'additionalProperties': False
@@ -29,6 +30,7 @@ update_broadcast_message_schema = {
'starts_at': {'type': 'string', 'format': 'datetime'},
'finishes_at': {'type': 'string', 'format': 'datetime'},
'areas': {"type": "array", "items": {"type": "string"}},
'simple_polygons': {"type": "array", "items": {"type": "array"}},
},
'required': [],
'additionalProperties': False

View File

@@ -101,7 +101,7 @@ def create_broadcast_message(service_id):
template_id=template.id,
template_version=template.version,
personalisation=data.get('personalisation', {}),
areas=data.get('areas', []),
areas=data.get('areas', {}),
status=BroadcastStatusType.DRAFT,
starts_at=_parse_nullable_datetime(data.get('starts_at')),
finishes_at=_parse_nullable_datetime(data.get('finishes_at')),
@@ -133,8 +133,8 @@ def update_broadcast_message(service_id, broadcast_message_id):
broadcast_message.starts_at = _parse_nullable_datetime(data['starts_at'])
if 'finishes_at' in data:
broadcast_message.finishes_at = _parse_nullable_datetime(data['finishes_at'])
if 'areas' in data:
broadcast_message.areas = data['areas']
if 'areas' in data and 'simple_polygons' in data:
broadcast_message.areas = {"areas": data["areas"], "simple_polygons": data["simple_polygons"]}
dao_save_object(broadcast_message)

View File

@@ -2263,7 +2263,7 @@ class BroadcastMessage(db.Model):
'template_name': self.template.name,
'personalisation': self.personalisation,
'areas': self.areas,
'areas': self.areas.get("areas", []),
'status': self.status,