Skip to content

Commit

Permalink
fix(api): when PATCH'ing, correctly inform about missing type field
Browse files Browse the repository at this point in the history
  • Loading branch information
peterthomassen committed Apr 11, 2018
1 parent 79f1ce5 commit 734d7a6
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions api/desecapi/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import django.core.exceptions
from rest_framework_bulk import BulkListSerializer, BulkSerializerMixin
import re
from rest_framework.fields import empty


class RRSerializer(serializers.ModelSerializer):
Expand Down Expand Up @@ -38,6 +39,15 @@ def create(self, validated_data):
return self.child._save([None] * len(validated_data), validated_data)


class RRsetTypeField(serializers.CharField):
def validate_empty_values(self, data):
# The type field is always required, regardless of PATCH or not
if data is empty:
self.fail('required')

return super().validate_empty_values(data)


class SlugRRField(serializers.SlugRelatedField):
def __init__(self, *args, **kwargs):
kwargs['slug_field'] = 'content'
Expand All @@ -51,6 +61,7 @@ def to_internal_value(self, data):
class RRsetSerializer(BulkSerializerMixin, serializers.ModelSerializer):
domain = serializers.StringRelatedField()
subname = serializers.CharField(allow_blank=True, required=False)
type = RRsetTypeField()
records = SlugRRField(many=True)


Expand Down

0 comments on commit 734d7a6

Please sign in to comment.