Files

48 lines
1.3 KiB
Python

from rest_framework import generics, mixins
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework.permissions import IsAuthenticated, IsAdminUser
from rest_framework import serializers
from api.models import Monitors, Workspaces
from core import utils
from core import dbutils
from core import common
class MonitorsViewSerializer(serializers.ModelSerializer):
class Meta:
model = Monitors
fields = [
'old_path',
'new_path',
'compare_ts',
'diff_content',
'diff_type',
'workspace',
'level',
'notified',
]
class MonitorsView(mixins.CreateModelMixin, generics.ListAPIView, APIView):
serializer_class = MonitorsViewSerializer
permission_classes = (IsAuthenticated, IsAdminUser)
def get_queryset(self):
queryset = Monitors.objects.all()
workspace = self.request.query_params.get('workspace', None)
if workspace is not None:
queryset = queryset.filter(workspace=workspace)
return queryset
def post(self, request, *args, **kwargs):
return self.create(request, *args, **kwargs)
def get(self, request, *args, **kwargs):
content = self.list(request, *args, **kwargs).data
return Response({'monitors': content})