Skip to content

Commit

Permalink
adds standardized list API for scripts and reports #13037
Browse files Browse the repository at this point in the history
  • Loading branch information
abhi1693 committed Aug 4, 2023
1 parent 6208e0f commit b35ffff
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
10 changes: 10 additions & 0 deletions netbox/extras/api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -481,6 +481,11 @@ class ReportSerializer(serializers.Serializer):
description = serializers.CharField(max_length=255, required=False)
test_methods = serializers.ListField(child=serializers.CharField(max_length=255))
result = NestedJobSerializer()
display = serializers.SerializerMethodField(read_only=True)

@extend_schema_field(serializers.CharField())
def get_display(self, obj):
return str(obj)


class ReportDetailSerializer(ReportSerializer):
Expand Down Expand Up @@ -518,13 +523,18 @@ class ScriptSerializer(serializers.Serializer):
description = serializers.CharField(read_only=True)
vars = serializers.SerializerMethodField(read_only=True)
result = NestedJobSerializer()
display = serializers.SerializerMethodField(read_only=True)

@extend_schema_field(serializers.JSONField(allow_null=True))
def get_vars(self, instance):
return {
k: v.__class__.__name__ for k, v in instance._get_vars().items()
}

@extend_schema_field(serializers.CharField())
def get_display(self, obj):
return str(obj)


class ScriptDetailSerializer(ScriptSerializer):
result = JobSerializer()
Expand Down
4 changes: 2 additions & 2 deletions netbox/extras/api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ def list(self, request):
'request': request,
})

return Response(serializer.data)
return Response({'count': len(report_list), 'results': serializer.data})

def retrieve(self, request, pk):
"""
Expand Down Expand Up @@ -343,7 +343,7 @@ def list(self, request):

serializer = serializers.ScriptSerializer(script_list, many=True, context={'request': request})

return Response(serializer.data)
return Response({'count': len(serializer.data), 'results': serializer.data})

def retrieve(self, request, pk):
module, script = self._get_script(pk)
Expand Down

0 comments on commit b35ffff

Please sign in to comment.