Start dual running with "areas" and (area) "ids"

This is necessary until:

- The Admin app is using the new "areas(_2)" format to store and
retrieve data.

- We've migrated all existing broadcast messages to use the new
format.

Note that "areas" / "ids" isn't actually used for anything except
printing out the PagerDuty message - it's not sent to the proxy [1].

[1]: 6edc6c70aa/app/celery/broadcast_message_tasks.py (L190-L193)
This commit is contained in:
Ben Thorner
2021-08-25 15:48:09 +01:00
parent fd7ebbebb0
commit 8f39d476bd
6 changed files with 35 additions and 23 deletions

View File

@@ -139,10 +139,12 @@ def create_broadcast_message(service_id):
if "areas" in data:
areas["areas"] = data["areas"]
areas["ids"] = data["areas"]
if "simple_polygons" in data:
areas["simple_polygons"] = data["simple_polygons"]
if "areas" in areas_2:
areas["areas"] = areas_2["areas"]
if "ids" in areas_2:
areas["areas"] = areas_2["ids"]
areas["ids"] = areas_2["ids"]
if "simple_polygons" in areas_2:
areas["simple_polygons"] = areas_2["simple_polygons"]
@@ -189,16 +191,18 @@ def update_broadcast_message(service_id, broadcast_message_id):
if "areas" in data:
areas["areas"] = data["areas"]
areas["ids"] = data["areas"]
if "simple_polygons" in data:
areas["simple_polygons"] = data["simple_polygons"]
if "areas" in areas_2:
areas["areas"] = areas_2["areas"]
if "ids" in areas_2:
areas["areas"] = areas_2["ids"]
areas["ids"] = areas_2["ids"]
if "simple_polygons" in areas_2:
areas["simple_polygons"] = areas_2["simple_polygons"]
if ('areas' in areas and 'simple_polygons' not in areas) or ('areas' not in areas and 'simple_polygons' in areas):
if ('ids' in areas and 'simple_polygons' not in areas) or ('ids' not in areas and 'simple_polygons' in areas):
raise InvalidRequest(
f'Cannot update broadcast_message {broadcast_message.id}, areas or polygons are missing.',
f'Cannot update broadcast_message {broadcast_message.id}, area IDs or polygons are missing.',
status_code=400
)