47 lines
1.3 KiB
Python

# -*- encoding: utf-8 -*-
import json
from django.conf import settings
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status, permissions
from apps.home.models import Ticket, TicketPriority, TicketTag
from .serializers import (
TicketSerializer, TicketTagSerializer, TicketPrioritySerializer,
UserSerializer
)
class TicketListApiView(APIView):
permission_classes = [permissions.IsAuthenticated]
def get(self, request):
"""Return all tickets."""
filters = json.loads(request.GET.get("filters", "{}"))
queryset = Ticket.objects.all()
for key, values in filters.items():
for value in values:
if value == "all": continue
queryset = queryset.filter(**{key: [value]})
tickets = queryset.order_by("-create_timestamp")
serializer = TicketSerializer(tickets, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)
def post(self, request):
"""Create a new ticket"""
serializer = TicketSerializer(data={
})
if not serializer.is_valid():
return Response(serlializer.errors, status=status.HTTP_400_BAD_REQUEST)
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)