|
@@ -0,0 +1,43 @@
|
|
|
|
|
+import json
|
|
|
|
|
+
|
|
|
|
|
+from django.db import migrations, models
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+def json_to_text(apps, schema_editor):
|
|
|
|
|
+ """
|
|
|
|
|
+ Convert a JSON representation of HTTP headers to key-value pairs (one header per line)
|
|
|
|
|
+ """
|
|
|
|
|
+ Webhook = apps.get_model('extras', 'Webhook')
|
|
|
|
|
+ for webhook in Webhook.objects.exclude(additional_headers=''):
|
|
|
|
|
+ data = json.loads(webhook.additional_headers)
|
|
|
|
|
+ headers = ['{}: {}'.format(k, v) for k, v in data.items()]
|
|
|
|
|
+ Webhook.objects.filter(pk=webhook.pk).update(additional_headers='\n'.join(headers))
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+class Migration(migrations.Migration):
|
|
|
|
|
+
|
|
|
|
|
+ dependencies = [
|
|
|
|
|
+ ('extras', '0037_configcontexts_clusters'),
|
|
|
|
|
+ ]
|
|
|
|
|
+
|
|
|
|
|
+ operations = [
|
|
|
|
|
+ migrations.AddField(
|
|
|
|
|
+ model_name='webhook',
|
|
|
|
|
+ name='body_template',
|
|
|
|
|
+ field=models.TextField(blank=True),
|
|
|
|
|
+ ),
|
|
|
|
|
+ migrations.AlterField(
|
|
|
|
|
+ model_name='webhook',
|
|
|
|
|
+ name='additional_headers',
|
|
|
|
|
+ field=models.TextField(blank=True, default=''),
|
|
|
|
|
+ preserve_default=False,
|
|
|
|
|
+ ),
|
|
|
|
|
+ migrations.AlterField(
|
|
|
|
|
+ model_name='webhook',
|
|
|
|
|
+ name='http_content_type',
|
|
|
|
|
+ field=models.CharField(default='application/json', max_length=100),
|
|
|
|
|
+ ),
|
|
|
|
|
+ migrations.RunPython(
|
|
|
|
|
+ code=json_to_text
|
|
|
|
|
+ ),
|
|
|
|
|
+ ]
|