Skip to content

Commit

Permalink
add /mlcubes/id/reports endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
hasan7n committed Sep 22, 2023
1 parent d9ff55e commit 9a69d0a
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 0 deletions.
1 change: 1 addition & 0 deletions server/mlcube/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@
path("benchmarks/", bviews.BenchmarkModelList.as_view()),
path("<int:pk>/benchmarks/", bviews.BenchmarkModelApproval.as_view()),
path("<int:pk>/benchmarks/<int:bid>/", bviews.ModelApproval.as_view()),
path("<int:pk>/reports/", views.MlCubeReportList.as_view()),
]
24 changes: 24 additions & 0 deletions server/mlcube/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
from .models import MlCube
from .serializers import MlCubeSerializer, MlCubeDetailSerializer
from .permissions import IsAdmin, IsMlCubeOwner
from report.models import Report
from report.serializers import ReportSerializer


class MlCubeList(GenericAPIView):
Expand Down Expand Up @@ -77,3 +79,25 @@ def delete(self, request, pk, format=None):
mlcube = self.get_object(pk)
mlcube.delete()
return Response(status=status.HTTP_204_NO_CONTENT)


class MlCubeReportList(GenericAPIView):
permission_classes = [IsAdmin | IsMlCubeOwner]
serializer_class = ReportSerializer
queryset = ""

def get_object(self, pk):
try:
return MlCube.objects.get(pk=pk)
except MlCube.DoesNotExist:
raise Http404

def get(self, request, pk, format=None):
"""
Retrieve reports associated with an MlCube instance.
"""
mlcube = self.get_object(pk)
reports = mlcube.report_set.all()
reports = self.paginate_queryset(reports)
serializer = ReportSerializer(reports, many=True)
return self.get_paginated_response(serializer.data)

0 comments on commit 9a69d0a

Please sign in to comment.