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..7816fce 100644 --- a/metric/views.py +++ b/metric/views.py @@ -13,11 +13,24 @@ 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"], ) 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)