1313from rest_framework .response import Response
1414from rest_framework .reverse import reverse
1515
16- from vulnerabilities .api import VulnerabilitySeveritySerializer
1716from vulnerabilities .models import Package
1817from vulnerabilities .models import Vulnerability
1918from vulnerabilities .models import VulnerabilityReference
@@ -41,11 +40,24 @@ class Meta:
4140 fields = ["url" , "reference_type" , "reference_id" ]
4241
4342
43+ class VulnerabilitySeverityV2Serializer (serializers .ModelSerializer ):
44+ class Meta :
45+ model = VulnerabilitySeverity
46+ fields = ["url" , "value" , "scoring_system" , "scoring_elements" , "published_at" ]
47+
48+ def to_representation (self , instance ):
49+ data = super ().to_representation (instance )
50+ published_at = data .get ("published_at" , None )
51+ if not published_at :
52+ data .pop ("published_at" )
53+ return data
54+
55+
4456class VulnerabilityV2Serializer (serializers .ModelSerializer ):
4557 aliases = serializers .SerializerMethodField ()
4658 weaknesses = WeaknessV2Serializer (many = True )
4759 references = VulnerabilityReferenceV2Serializer (many = True , source = "vulnerabilityreference_set" )
48- severities = VulnerabilitySeveritySerializer (many = True )
60+ severities = VulnerabilitySeverityV2Serializer (many = True )
4961
5062 class Meta :
5163 model = Vulnerability
@@ -61,9 +73,6 @@ class Meta:
6173 def get_aliases (self , obj ):
6274 return [alias .alias for alias in obj .aliases .all ()]
6375
64- def get_severities (self , obj ):
65- return obj .severities
66-
6776
6877class VulnerabilityListSerializer (serializers .ModelSerializer ):
6978 url = serializers .SerializerMethodField ()
0 commit comments