@@ -311,8 +311,8 @@ class AdvisoryPackageV2Serializer(serializers.ModelSerializer):
311311 risk_score = serializers .FloatField (read_only = True )
312312 affected_by_vulnerabilities = serializers .SerializerMethodField ()
313313 fixing_vulnerabilities = serializers .SerializerMethodField ()
314- next_non_vulnerable_version = serializers .CharField ( read_only = True )
315- latest_non_vulnerable_version = serializers .CharField ( read_only = True )
314+ next_non_vulnerable_version = serializers .SerializerMethodField ( )
315+ latest_non_vulnerable_version = serializers .SerializerMethodField ( )
316316
317317 class Meta :
318318 model = Package
@@ -348,6 +348,14 @@ def get_affected_by_vulnerabilities(self, package):
348348 def get_fixing_vulnerabilities (self , package ):
349349 return [impact .advisory .avid for impact in package .fixed_in_impacts .all ()]
350350
351+ def get_next_non_vulnerable_version (self , package ):
352+ if next_non_vulnerable := package .get_non_vulnerable_versions ()[0 ]:
353+ return next_non_vulnerable .version
354+
355+ def get_latest_non_vulnerable_version (self , package ):
356+ if latest_non_vulnerable := package .get_non_vulnerable_versions ()[- 1 ]:
357+ return latest_non_vulnerable .version
358+
351359
352360class PackageurlListSerializer (serializers .Serializer ):
353361 purls = serializers .ListField (
@@ -1164,6 +1172,7 @@ def bulk_search(self, request):
11641172 ),
11651173 )
11661174 .with_is_vulnerable ()
1175+ .order_by ("package_url" )
11671176 )
11681177
11691178 packages = query
0 commit comments