diff --git a/vulnerabilities/api.py b/vulnerabilities/api.py index 173ec3e5e..55ab7ad3f 100644 --- a/vulnerabilities/api.py +++ b/vulnerabilities/api.py @@ -74,8 +74,16 @@ def get_resource_url(self, instance): return resource_url +class PurlPackageSerializer(BaseResourceSerializer): -class MinimalPackageSerializer(BaseResourceSerializer): + purl = serializers.CharField(source="package_url") + + class Meta: + model = Package + fields = ["url", "purl", "is_vulnerable"] + + +class MinimalPackageSerializer(PurlPackageSerializer): """ Used for nesting inside vulnerability focused APIs. """ @@ -99,8 +107,6 @@ def get_vulnerability(self, vuln): affected_by_vulnerabilities = serializers.SerializerMethodField("get_affected_vulnerabilities") - purl = serializers.CharField(source="package_url") - class Meta: model = Package fields = ["url", "purl", "is_vulnerable", "affected_by_vulnerabilities"] @@ -137,7 +143,7 @@ def to_representation(self, instance): data["aliases"] = aliases return data - fixed_packages = MinimalPackageSerializer( + fixed_packages = PurlPackageSerializer( many=True, source="filtered_fixed_packages", read_only=True ) @@ -175,10 +181,10 @@ class Meta: class VulnerabilitySerializer(BaseResourceSerializer): - fixed_packages = MinimalPackageSerializer( + fixed_packages = PurlPackageSerializer( many=True, source="filtered_fixed_packages", read_only=True ) - affected_packages = MinimalPackageSerializer(many=True, read_only=True) + affected_packages = PurlPackageSerializer(many=True, read_only=True) references = VulnerabilityReferenceSerializer(many=True, source="vulnerabilityreference_set") aliases = AliasSerializer(many=True, source="alias")