|
|
- # Generated by Django 2.2.1 on 2019-05-29 20:37
-
- import json
-
- from django.db import migrations
-
-
- def normalize_webhook_values(apps, schema_editor):
- Channel = apps.get_model("api", "Channel")
- for ch in Channel.objects.filter(kind="webhook").only("value"):
- # The old format of url_down, url_up, post_data separated by newlines:
- if not ch.value.startswith("{"):
- parts = ch.value.split("\n")
- url_down = parts[0]
- url_up = parts[1] if len(parts) > 1 else ""
- post_data = parts[2] if len(parts) > 2 else ""
-
- ch.value = json.dumps(
- {
- "method_down": "POST" if post_data else "GET",
- "url_down": url_down,
- "body_down": post_data,
- "headers_down": {},
- "method_up": "POST" if post_data else "GET",
- "url_up": url_up,
- "body_up": post_data,
- "headers_up": {},
- }
- )
-
- ch.save()
- continue
-
- doc = json.loads(ch.value)
- # Legacy "post_data" in doc -- use the legacy fields
- if "post_data" in doc:
- ch.value = json.dumps(
- {
- "method_down": "POST" if doc["post_data"] else "GET",
- "url_down": doc["url_down"],
- "body_down": doc["post_data"],
- "headers_down": doc["headers"],
- "method_up": "POST" if doc["post_data"] else "GET",
- "url_up": doc["url_up"],
- "body_up": doc["post_data"],
- "headers_up": doc["headers"],
- }
- )
-
- ch.save()
- continue
-
-
- class Migration(migrations.Migration):
-
- dependencies = [("api", "0060_tokenbucket")]
-
- operations = [
- migrations.RunPython(normalize_webhook_values, migrations.RunPython.noop)
- ]
|