From c29a96f244b37692c22584ccf4fed7077b8eebf4 Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Wed, 18 Apr 2018 00:08:31 +0200
Subject: [PATCH] Fail graciously when AP representation includes a null_value
 for mediaType

---
 api/funkwhale_api/federation/serializers.py | 18 +-----------------
 changes/changelog.d/media-type.bugfix       |  1 +
 2 files changed, 2 insertions(+), 17 deletions(-)
 create mode 100644 changes/changelog.d/media-type.bugfix

diff --git a/api/funkwhale_api/federation/serializers.py b/api/funkwhale_api/federation/serializers.py
index 735a101b..00bb7d45 100644
--- a/api/funkwhale_api/federation/serializers.py
+++ b/api/funkwhale_api/federation/serializers.py
@@ -708,23 +708,7 @@ class AudioSerializer(serializers.Serializer):
         except (KeyError, TypeError):
             raise serializers.ValidationError('Missing mediaType')
 
-        if not media_type.startswith('audio/'):
-            raise serializers.ValidationError('Invalid mediaType')
-
-        return url
-
-    def validate_url(self, v):
-        try:
-            url = v['href']
-        except (KeyError, TypeError):
-            raise serializers.ValidationError('Missing href')
-
-        try:
-            media_type = v['mediaType']
-        except (KeyError, TypeError):
-            raise serializers.ValidationError('Missing mediaType')
-
-        if not media_type.startswith('audio/'):
+        if not media_type or not media_type.startswith('audio/'):
             raise serializers.ValidationError('Invalid mediaType')
 
         return v
diff --git a/changes/changelog.d/media-type.bugfix b/changes/changelog.d/media-type.bugfix
new file mode 100644
index 00000000..cf6abf97
--- /dev/null
+++ b/changes/changelog.d/media-type.bugfix
@@ -0,0 +1 @@
+Fail graciously when AP representation includes a null_value for mediaType
-- 
GitLab