from rest_framework.viewsets import ModelViewSet from rest_framework.permissions import IsAuthenticated from .models import Agent, AgentRun, AgentEvent from .serializers import AgentSerializer, AgentRunSerializer, AgentEventSerializer from rest_framework.decorators import action from rest_framework.response import Response class AgentViewSet(ModelViewSet): queryset = Agent.objects.all() serializer_class = AgentSerializer permission_classes = [IsAuthenticated] lookup_field = 'uuid' class AgentRunViewSet(ModelViewSet): queryset = AgentRun.objects.all() serializer_class = AgentRunSerializer permission_classes = [IsAuthenticated] lookup_field = 'uuid' def get_queryset(self): return AgentRun.objects.filter(user=self.request.user) @action(detail=True, methods=['get'], url_path='events') def events(self, request, uuid=None): run = self.get_object() events = AgentEvent.objects.filter(execution=run).order_by('timestamp') serializer = AgentEventSerializer(events, many=True) return Response(serializer.data)