From c25ec7edbb3961885410724734a368767c72de46 Mon Sep 17 00:00:00 2001 From: moisses89 <7888669+moisses89@users.noreply.github.com> Date: Mon, 20 May 2024 13:03:43 +0200 Subject: [PATCH] Add About View serializer --- .../locking_events/serializers.py | 9 ++++++++ safe_locking_service/locking_events/views.py | 23 ++++++++++++------- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/safe_locking_service/locking_events/serializers.py b/safe_locking_service/locking_events/serializers.py index e6be791..cd48b5d 100644 --- a/safe_locking_service/locking_events/serializers.py +++ b/safe_locking_service/locking_events/serializers.py @@ -14,6 +14,15 @@ from safe_locking_service.locking_events.services.locking_service import EventType +class AboutSerializer(serializers.Serializer): + name = serializers.CharField() + version = serializers.CharField() + api_version = serializers.CharField() + secure = serializers.BooleanField() + host = serializers.CharField() + headers = serializers.ListField() + + class EventTypeSerializer(serializers.Serializer): event_type = serializers.SerializerMethodField() diff --git a/safe_locking_service/locking_events/views.py b/safe_locking_service/locking_events/views.py index 42fa1b2..a18170f 100644 --- a/safe_locking_service/locking_events/views.py +++ b/safe_locking_service/locking_events/views.py @@ -21,6 +21,7 @@ SmallPagination, ) from safe_locking_service.locking_events.serializers import ( + AboutSerializer, AllEventsDocSerializer, LeaderBoardSerializer, LockEventSerializer, @@ -35,17 +36,23 @@ class AboutView(GenericAPIView): Returns information and configuration of the service """ - @method_decorator(cache_page(5 * 60)) # 5 minutes - def get(self, request, format=None): - content = { + serializer_class = AboutSerializer + + def get_queryset(self): + return { "name": "Safe Locking Service", "version": __version__, - "api_version": request.version, - "secure": request.is_secure(), - "host": request.get_host(), - "headers": [x for x in request.META.keys() if "FORWARD" in x], + "api_version": self.request.version, + "secure": self.request.is_secure(), + "host": self.request.get_host(), + "headers": [x for x in self.request.META.keys() if "FORWARD" in x], } - return Response(content) + + @method_decorator(cache_page(5 * 60)) # 5 minutes + def get(self, request, format=None): + serializer = self.serializer_class(data=self.get_queryset()) + serializer.is_valid() + return Response(serializer.data) class AllEventsView(ListAPIView):