views.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from rest_framework import viewsets, status
  2. from rest_framework.views import APIView
  3. from rest_framework.response import Response
  4. from .models import Issue, Event
  5. from .serializers import IssueSerializer, StoreSerializer
  6. class IssueViewSet(viewsets.ReadOnlyModelViewSet):
  7. queryset = Issue.objects.all()
  8. serializer_class = IssueSerializer
  9. class EventStoreAPIView(APIView):
  10. def nothing(self, metadata):
  11. ty = metadata.get("type")
  12. if ty is None:
  13. return metadata.get("function") or "<unknown>"
  14. if not metadata.get("value"):
  15. return ty
  16. return u"{}: {}".format(
  17. ty, truncatechars(metadata["value"].splitlines()[0], 100)
  18. )
  19. def post(self, request, id: int, format=None):
  20. serializer = StoreSerializer(data=request.data)
  21. if serializer.is_valid():
  22. data = serializer.data
  23. title = data
  24. issue = Issue.objects.get_or_create()
  25. event = Event.objects.create(
  26. event_id=data["event_id"],
  27. exception=data["exception"],
  28. level=data["level"],
  29. platform=data["platform"],
  30. sdk=data["sdk"],
  31. release=data["release"],
  32. breadcrumbs=data["breadcrumbs"],
  33. request=data["request"],
  34. issue=issue,
  35. )
  36. return Response(status=status.HTTP_200_OK)
  37. return Response()