From 87a9e4b2a9f44f4231138a2785659f6856ea7dba Mon Sep 17 00:00:00 2001 From: Anyerrr Date: Wed, 28 May 2025 12:21:03 +0200 Subject: [PATCH 1/2] =?UTF-8?q?feature(api-rest):=20Afegir=20els=20filtres?= =?UTF-8?q?=20i=20ordenaci=C3=B3=20als=20serializers=20o=20gestors=20de=20?= =?UTF-8?q?queryset.=20Fitre=20de=20only=5Fnumeric=20a=20la=20llista=20de?= =?UTF-8?q?=20m=C3=A8triques?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refs #98 --- config/settings.py | 1 + metric/views.py | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/config/settings.py b/config/settings.py index 0003421..169ded9 100644 --- a/config/settings.py +++ b/config/settings.py @@ -153,6 +153,7 @@ "DEFAULT_SCHEMA_CLASS": "drf_spectacular.openapi.AutoSchema", "EXCEPTION_HANDLER": "config.exceptions.custom_exception_handler", "DEFAULT_AUTHENTICATION_CLASSES": [ + "rest_framework.authentication.TokenAuthentication", "rest_framework_simplejwt.authentication.JWTAuthentication", ], "DEFAULT_PERMISSION_CLASSES": [ diff --git a/metric/views.py b/metric/views.py index 8b7f7d5..9757d03 100644 --- a/metric/views.py +++ b/metric/views.py @@ -13,11 +13,24 @@ class MetricViewSet(viewsets.ViewSet): service = MetricService() @extend_schema( - responses=MetricSerializer(many=True), - tags=["Metrics"], + parameters=[ + OpenApiParameter( + name="only_numeric", + description="If true, returns only metrics with value_type 'integer' or 'float'", + required=False, + type=bool + ) + ], + responses=MetricSerializer(many=True), + tags=["Metrics"], ) def list(self, request): + only_numeric = request.query_params.get("only_numeric", "").lower() == "true" + metrics = self.service.list_metrics() + + if only_numeric: + metrics = [m for m in metrics if m.value_type in ["integer", "float"]] serializer = MetricSerializer(metrics, many=True) return Response(serializer.data) From dc499d9ea80a4881939a231febc3949ab4228aa5 Mon Sep 17 00:00:00 2001 From: Anyerrr Date: Wed, 28 May 2025 12:21:43 +0200 Subject: [PATCH 2/2] . --- metric/views.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/metric/views.py b/metric/views.py index 9757d03..7816fce 100644 --- a/metric/views.py +++ b/metric/views.py @@ -13,16 +13,16 @@ class MetricViewSet(viewsets.ViewSet): service = MetricService() @extend_schema( - parameters=[ - OpenApiParameter( - name="only_numeric", - description="If true, returns only metrics with value_type 'integer' or 'float'", - required=False, - type=bool - ) - ], - responses=MetricSerializer(many=True), - tags=["Metrics"], + parameters=[ + OpenApiParameter( + name="only_numeric", + description="If true, returns only metrics with value_type 'integer' or 'float'", + required=False, + type=bool, + ) + ], + responses=MetricSerializer(many=True), + tags=["Metrics"], ) def list(self, request): only_numeric = request.query_params.get("only_numeric", "").lower() == "true"