API Views/serializers/tests for activity (#141)

This commit is contained in:
Eliot Berriot 2018-03-25 17:24:08 +02:00
parent 1f2e14b20e
commit 18d8baae34
No known key found for this signature in database
GPG key ID: DD6965E2476E5C27
7 changed files with 156 additions and 0 deletions

View file

@ -1,5 +1,7 @@
from rest_framework import serializers
from funkwhale_api.activity import record
class ModelSerializer(serializers.ModelSerializer):
id = serializers.CharField(source='get_activity_url')
@ -8,3 +10,15 @@ class ModelSerializer(serializers.ModelSerializer):
def get_url(self, obj):
return self.get_id(obj)
class AutoSerializer(serializers.Serializer):
"""
A serializer that will automatically use registered activity serializers
to serialize an henerogeneous list of objects (favorites, listenings, etc.)
"""
def to_representation(self, instance):
serializer = record.registry[instance._meta.label]['serializer'](
instance
)
return serializer.data