From 43020542f883703c944ee4de37b9aac367d8c358 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Sat, 17 Sep 2022 10:40:06 +0200 Subject: [PATCH] Better API documentation. --- modoboa/parameters/api/v2/serializers.py | 7 +++++++ modoboa/parameters/api/v2/viewsets.py | 10 +++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/modoboa/parameters/api/v2/serializers.py b/modoboa/parameters/api/v2/serializers.py index 8b6ada39b..662f4126a 100644 --- a/modoboa/parameters/api/v2/serializers.py +++ b/modoboa/parameters/api/v2/serializers.py @@ -34,3 +34,10 @@ class StructureSerializer(serializers.Serializer): name = serializers.CharField() display = serializers.CharField(help_text="Display rule") parameters = ParameterSerializer(many=True) + + +class AppParametersSerializer(serializers.Serializer): + """Serializer for application parameters.""" + + label = serializers.CharField() + params = serializers.DictField() diff --git a/modoboa/parameters/api/v2/viewsets.py b/modoboa/parameters/api/v2/viewsets.py index e8c0a34ad..a6f802f6a 100644 --- a/modoboa/parameters/api/v2/viewsets.py +++ b/modoboa/parameters/api/v2/viewsets.py @@ -36,15 +36,19 @@ class ParametersViewSet(viewsets.ViewSet): description='A registered application name', type=str, required=True ), - ] + ], + responses=serializers.AppParametersSerializer ) def retrieve(self, request, pk: str): """Return all parameters for given app.""" parameters = request.localconfig.parameters.get_values_dict(pk) serializer = tools.registry.get_serializer_class("global", pk)( parameters) - data = {"params":serializer.data, "label":tools.registry.get_label("global", pk)} - return response.Response(data) + result = serializers.AppParametersSerializer({ + "label": tools.registry.get_label("global", pk), + "params": serializer.data + }) + return response.Response(result.data) @extend_schema( parameters=[