oncall-engine/engine/apps/api/views/alerts.py

24 lines
882 B
Python
Raw Permalink Normal View History

from rest_framework import status
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView
from apps.alerts.models import Alert
from apps.api.serializers.alert import AlertRawSerializer
from apps.auth_token.auth import PluginAuthentication
class AlertDetailView(APIView):
authentication_classes = [PluginAuthentication]
permission_classes = [IsAuthenticated]
def get(self, request, id):
try:
alert = Alert.objects.get(public_primary_key=id)
except Alert.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND)
if alert.group.channel.organization != request.auth.organization:
return Response(status=status.HTTP_404_NOT_FOUND)
serializer = AlertRawSerializer(alert)
return Response(serializer.data)