mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-24 17:38:37 -06:00
Webhook.http_content_type to slug (#3569)
This commit is contained in:
parent
89e720cb77
commit
5d772d7055
@ -118,3 +118,23 @@ class ExportTemplateLanguageChoices(ChoiceSet):
|
|||||||
LANGUAGE_DJANGO: 10,
|
LANGUAGE_DJANGO: 10,
|
||||||
LANGUAGE_JINJA2: 20,
|
LANGUAGE_JINJA2: 20,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Webhooks
|
||||||
|
#
|
||||||
|
|
||||||
|
class WebhookContentTypeChoices(ChoiceSet):
|
||||||
|
|
||||||
|
CONTENTTYPE_JSON = 'application/json'
|
||||||
|
CONTENTTYPE_FORMDATA = 'application/x-www-form-urlencoded'
|
||||||
|
|
||||||
|
CHOICES = (
|
||||||
|
(CONTENTTYPE_JSON, 'JSON'),
|
||||||
|
(CONTENTTYPE_FORMDATA, 'Form data'),
|
||||||
|
)
|
||||||
|
|
||||||
|
LEGACY_MAP = {
|
||||||
|
CONTENTTYPE_JSON: 1,
|
||||||
|
CONTENTTYPE_FORMDATA: 2,
|
||||||
|
}
|
||||||
|
@ -99,14 +99,6 @@ LOG_LEVEL_CODES = {
|
|||||||
LOG_FAILURE: 'failure',
|
LOG_FAILURE: 'failure',
|
||||||
}
|
}
|
||||||
|
|
||||||
# webhook content types
|
|
||||||
WEBHOOK_CT_JSON = 1
|
|
||||||
WEBHOOK_CT_X_WWW_FORM_ENCODED = 2
|
|
||||||
WEBHOOK_CT_CHOICES = (
|
|
||||||
(WEBHOOK_CT_JSON, 'application/json'),
|
|
||||||
(WEBHOOK_CT_X_WWW_FORM_ENCODED, 'application/x-www-form-urlencoded'),
|
|
||||||
)
|
|
||||||
|
|
||||||
# Models which support registered webhooks
|
# Models which support registered webhooks
|
||||||
WEBHOOK_MODELS = [
|
WEBHOOK_MODELS = [
|
||||||
'circuits.circuit',
|
'circuits.circuit',
|
||||||
|
35
netbox/extras/migrations/0032_3569_webhook_fields.py
Normal file
35
netbox/extras/migrations/0032_3569_webhook_fields.py
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
WEBHOOK_CONTENTTYPE_CHOICES = (
|
||||||
|
(1, 'application/json'),
|
||||||
|
(2, 'application/x-www-form-urlencoded'),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def webhook_contenttype_to_slug(apps, schema_editor):
|
||||||
|
Webhook = apps.get_model('extras', 'Webhook')
|
||||||
|
for id, slug in WEBHOOK_CONTENTTYPE_CHOICES:
|
||||||
|
Webhook.objects.filter(http_content_type=str(id)).update(http_content_type=slug)
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
atomic = False
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('extras', '0031_3569_exporttemplate_fields'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
|
||||||
|
# Webhook.http_content_type
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='webhook',
|
||||||
|
name='http_content_type',
|
||||||
|
field=models.CharField(default='application/json', max_length=50),
|
||||||
|
),
|
||||||
|
migrations.RunPython(
|
||||||
|
code=webhook_contenttype_to_slug
|
||||||
|
),
|
||||||
|
|
||||||
|
]
|
@ -63,9 +63,10 @@ class Webhook(models.Model):
|
|||||||
verbose_name='URL',
|
verbose_name='URL',
|
||||||
help_text="A POST will be sent to this URL when the webhook is called."
|
help_text="A POST will be sent to this URL when the webhook is called."
|
||||||
)
|
)
|
||||||
http_content_type = models.PositiveSmallIntegerField(
|
http_content_type = models.CharField(
|
||||||
choices=WEBHOOK_CT_CHOICES,
|
max_length=50,
|
||||||
default=WEBHOOK_CT_JSON,
|
choices=WebhookContentTypeChoices,
|
||||||
|
default=WebhookContentTypeChoices.CONTENTTYPE_JSON,
|
||||||
verbose_name='HTTP content type'
|
verbose_name='HTTP content type'
|
||||||
)
|
)
|
||||||
additional_headers = JSONField(
|
additional_headers = JSONField(
|
||||||
|
Loading…
Reference in New Issue
Block a user