From bb71e43cb0c45329d5bba6b62a6b55c9ace3b93d Mon Sep 17 00:00:00 2001 From: hasan7n Date: Fri, 22 Sep 2023 16:23:54 +0200 Subject: [PATCH] add /me/reports endpoint --- server/utils/urls.py | 1 + server/utils/views.py | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/server/utils/urls.py b/server/utils/urls.py index 736505ae6..b8e77fd5d 100644 --- a/server/utils/urls.py +++ b/server/utils/urls.py @@ -9,6 +9,7 @@ path("datasets/", views.DatasetList.as_view()), path("mlcubes/", views.MlCubeList.as_view()), path("results/", views.ModelResultList.as_view()), + path("reports/", views.ReportList.as_view()), path("datasets/associations/", views.DatasetAssociationList.as_view()), path("mlcubes/associations/", views.MlCubeAssociationList.as_view()), ] diff --git a/server/utils/views.py b/server/utils/views.py index 7b214e48d..4cdf446e7 100644 --- a/server/utils/views.py +++ b/server/utils/views.py @@ -5,12 +5,14 @@ from benchmark.serializers import BenchmarkSerializer from benchmarkdataset.serializers import BenchmarkDatasetListSerializer from benchmarkmodel.serializers import BenchmarkModelListSerializer +from report.serializers import ReportSerializer from benchmark.models import Benchmark from dataset.models import Dataset from mlcube.models import MlCube from result.models import ModelResult from benchmarkmodel.models import BenchmarkModel from benchmarkdataset.models import BenchmarkDataset +from report.models import Report from django.http import Http404 from django.conf import settings from django.db.models import Q @@ -114,6 +116,26 @@ def get(self, request, format=None): return self.get_paginated_response(serializer.data) +class ReportList(GenericAPIView): + serializer_class = ReportSerializer + queryset = "" + + def get_object(self, pk): + try: + return Report.objects.filter(owner__id=pk) + except Report.DoesNotExist: + raise Http404 + + def get(self, request, format=None): + """ + Retrieve all reports associated with the current user + """ + reports = self.get_object(request.user.id) + reports = self.paginate_queryset(reports) + serializer = ReportSerializer(reports, many=True) + return self.get_paginated_response(serializer.data) + + class DatasetAssociationList(GenericAPIView): serializer_class = BenchmarkDatasetListSerializer queryset = ""