Adding name to webhooks and logs_counter to webhooks API

remotes/origin/enhancement/email-actions
Alejandro Alonso 2015-01-21 15:06:32 +01:00 committed by Jesús Espino
parent 6032ed6c34
commit da156401b0
5 changed files with 30 additions and 0 deletions

View File

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [
('webhooks', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='webhook',
name='name',
field=models.CharField(max_length=250, default='webhook', verbose_name='name'),
preserve_default=False,
),
]

View File

@ -23,6 +23,8 @@ from django_pgjson.fields import JsonField
class Webhook(models.Model): class Webhook(models.Model):
project = models.ForeignKey("projects.Project", null=False, blank=False, project = models.ForeignKey("projects.Project", null=False, blank=False,
related_name="webhooks") related_name="webhooks")
name = models.CharField(max_length=250, null=False, blank=False,
verbose_name=_("name"))
url = models.URLField(null=False, blank=False, verbose_name=_("URL")) url = models.URLField(null=False, blank=False, verbose_name=_("URL"))
key = models.TextField(null=False, blank=False, verbose_name=_("secret key")) key = models.TextField(null=False, blank=False, verbose_name=_("secret key"))

View File

@ -34,9 +34,14 @@ class HistoryDiffField(serializers.Field):
class WebhookSerializer(serializers.ModelSerializer): class WebhookSerializer(serializers.ModelSerializer):
logs_counter = serializers.SerializerMethodField("get_logs_counter")
class Meta: class Meta:
model = Webhook model = Webhook
def get_logs_counter(self, obj):
return obj.logs.count()
class WebhookLogSerializer(serializers.ModelSerializer): class WebhookLogSerializer(serializers.ModelSerializer):
request_data = JsonField() request_data = JsonField()

View File

@ -205,6 +205,7 @@ class WebhookFactory(Factory):
project = factory.SubFactory("tests.factories.ProjectFactory") project = factory.SubFactory("tests.factories.ProjectFactory")
url = "http://localhost:8080/test" url = "http://localhost:8080/test"
key = "factory-key" key = "factory-key"
name = "Factory-name"
class WebhookLogFactory(Factory): class WebhookLogFactory(Factory):

View File

@ -137,6 +137,7 @@ def test_webhook_create(client, data):
] ]
create_data = json.dumps({ create_data = json.dumps({
"name": "Test",
"url": "http://test.com", "url": "http://test.com",
"key": "test", "key": "test",
"project": data.project1.pk, "project": data.project1.pk,
@ -145,6 +146,7 @@ def test_webhook_create(client, data):
assert results == [401, 403, 201] assert results == [401, 403, 201]
create_data = json.dumps({ create_data = json.dumps({
"name": "Test",
"url": "http://test.com", "url": "http://test.com",
"key": "test", "key": "test",
"project": data.project2.pk, "project": data.project2.pk,