diff --git a/api/funkwhale_api/instance/serializers.py b/api/funkwhale_api/instance/serializers.py index b6ce6f38b..9297b24f7 100644 --- a/api/funkwhale_api/instance/serializers.py +++ b/api/funkwhale_api/instance/serializers.py @@ -198,3 +198,12 @@ class NodeInfo20Serializer(serializers.Serializer): @extend_schema_field(MetadataSerializer) def get_metadata(self, obj): return MetadataSerializer(obj).data + +class SpaManifestSerializer(serializers.Serializer): + name = serializers.CharField() + short_name = serializers.CharField() + display = serializers.CharField(required=False) + background_color = serializers.CharField(required=False) + lang = serializers.CharField(required=False) + description = serializers.CharField(required=False) + start_url = serializers.CharField(required=False) diff --git a/api/funkwhale_api/instance/views.py b/api/funkwhale_api/instance/views.py index ace53723d..b19f93186 100644 --- a/api/funkwhale_api/instance/views.py +++ b/api/funkwhale_api/instance/views.py @@ -120,9 +120,10 @@ class NodeInfo(views.APIView): ) -class SpaManifest(views.APIView): +class SpaManifest(generics.GenericAPIView): permission_classes = [] authentication_classes = [] + serializer_class = serializers.SpaManifestSerializer @extend_schema(operation_id="get_spa_manifest") def get(self, request, *args, **kwargs): @@ -139,4 +140,5 @@ class SpaManifest(views.APIView): instance_description = preferences.get("instance__short_description") if instance_description: parsed_manifest["description"] = instance_description - return Response(parsed_manifest, status=200) + serializer = self.get_serializer(parsed_manifest) + return Response(serializer.data, status=200) diff --git a/changes/changelog.d/1897.enhancement b/changes/changelog.d/1897.enhancement new file mode 100644 index 000000000..6f508553b --- /dev/null +++ b/changes/changelog.d/1897.enhancement @@ -0,0 +1 @@ +Add Serializer for SpaManifest endpoint