Skip to content

Commit 00354da

Browse files
committed
Preserve old API response for reference and severity
Signed-off-by: Keshav Priyadarshi <[email protected]>
1 parent 0ad0a19 commit 00354da

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

vulnerabilities/api.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,11 @@ class Meta:
6262
fields = ["reference_url", "reference_id", "reference_type", "scores", "url"]
6363

6464
def get_scores(self, instance):
65-
matching_scores = VulnerabilitySeverity.objects.filter(url=instance.url)
65+
severities_related_to_reference = []
66+
if vulnerability := self.context.get("vulnerability"):
67+
severities_related_to_reference = vulnerability.severities.filter(url=instance.url)
6668

67-
return VulnerabilitySeveritySerializer(matching_scores, many=True).data
69+
return VulnerabilitySeveritySerializer(severities_related_to_reference, many=True).data
6870

6971

7072
class BaseResourceSerializer(serializers.HyperlinkedModelSerializer):
@@ -204,8 +206,7 @@ class VulnerabilitySerializer(BaseResourceSerializer):
204206
many=True, source="filtered_fixed_packages", read_only=True
205207
)
206208
affected_packages = MinimalPackageSerializer(many=True, read_only=True)
207-
208-
references = VulnerabilityReferenceSerializer(many=True, source="vulnerabilityreference_set")
209+
references = serializers.SerializerMethodField()
209210
aliases = AliasSerializer(many=True, source="alias")
210211
exploits = ExploitSerializer(many=True, read_only=True)
211212
weaknesses = WeaknessSerializer(many=True)
@@ -219,6 +220,17 @@ def to_representation(self, instance):
219220

220221
return data
221222

223+
def get_references(self, vulnerability):
224+
references = vulnerability.vulnerabilityreference_set.all()
225+
226+
serialized_references = VulnerabilityReferenceSerializer(
227+
references,
228+
context={"vulnerability": vulnerability},
229+
many=True,
230+
).data
231+
232+
return serialized_references
233+
222234
def get_severity_range_score(self, instance):
223235
severity_vectors = []
224236
severity_values = set()

vulnerabilities/api_extension.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,6 @@ class V2VulnerabilitySerializer(ModelSerializer):
126126

127127
aliases = SerializerMethodField("get_aliases")
128128
weaknesses = V2WeaknessSerializer(many=True, source="weaknesses_set")
129-
scores = V2VulnerabilitySeveritySerializer(many=True, source="vulnerabilityseverity_set")
130129
references = V2VulnerabilityReferenceSerializer(many=True, source="vulnerabilityreference_set")
131130
exploits = V2ExploitSerializer(many=True, source="weaknesses")
132131
severities = V2VulnerabilitySeveritySerializer(many=True)
@@ -145,7 +144,6 @@ class Meta:
145144
"vulnerability_id",
146145
"aliases",
147146
"status",
148-
"scores",
149147
"weaknesses",
150148
"summary",
151149
"exploits",

0 commit comments

Comments
 (0)