Skip to content

Commit 5c3cdee

Browse files
committed
Fix OpenAPI types for advisory fields
Signed-off-by: apoorvd06 <apoorvdeshmukh3@gmail.com>
1 parent adc81cb commit 5c3cdee

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

vulnerabilities/api_v3.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from django.db.models import Q
2222
from django_filters import rest_framework as filters
2323
from drf_spectacular.utils import extend_schema
24+
from drf_spectacular.utils import extend_schema_field
2425
from packageurl import PackageURL
2526
from rest_framework import serializers
2627
from rest_framework import viewsets
@@ -117,6 +118,13 @@ class Meta:
117118
fields = ["cwe_id", "name", "description"]
118119

119120

121+
class RelatedSSVCTreeSerializer(serializers.Serializer):
122+
vector = serializers.CharField()
123+
decision = serializers.CharField()
124+
options = serializers.JSONField()
125+
source_url = serializers.URLField()
126+
127+
120128
class AdvisoryV3Serializer(serializers.ModelSerializer):
121129
aliases = serializers.SlugRelatedField(
122130
many=True,
@@ -131,6 +139,7 @@ class AdvisoryV3Serializer(serializers.ModelSerializer):
131139
todo_count = serializers.IntegerField(read_only=True)
132140
curating_advisories = serializers.SerializerMethodField()
133141

142+
@extend_schema_field(RelatedSSVCTreeSerializer(many=True))
134143
def get_related_ssvc_trees(self, obj):
135144
seen = set()
136145
result = []
@@ -376,6 +385,7 @@ class AffectedByAdvisoryV3Serializer(AdvisoryV3Serializer):
376385
fixed_by_packages = serializers.SerializerMethodField()
377386
advisory_uid = serializers.CharField(source="avid", read_only=True)
378387

388+
@extend_schema_field(serializers.ListField(child=serializers.CharField()))
379389
def get_fixed_by_packages(self, obj):
380390
return list(
381391
obj.impacted_packages.values_list("fixed_by_packages__package_url", flat=True)

0 commit comments

Comments
 (0)