@@ -312,49 +312,6 @@ def list(self, request, *args, **kwargs):
312312 data = serializer .data
313313 return Response ({"vulnerabilities" : vulnerability_data , "packages" : data })
314314
315- @action (detail = False , methods = ["get" ])
316- def all (self , request ):
317- """
318- Return a list of Package URLs of vulnerable packages.
319- """
320- vulnerable_purls = (
321- Package .objects .vulnerable ()
322- .only ("package_url" )
323- .order_by ("package_url" )
324- .distinct ()
325- .values_list ("package_url" , flat = True )
326- )
327- return Response (vulnerable_purls )
328-
329- @extend_schema (
330- request = LookupRequestSerializer ,
331- responses = {200 : PackageV2Serializer (many = True )},
332- )
333- @action (
334- detail = False ,
335- methods = ["post" ],
336- serializer_class = LookupRequestSerializer ,
337- filter_backends = [],
338- pagination_class = None ,
339- )
340- def lookup (self , request ):
341- """
342- Return the response for exact PackageURL requested for.
343- """
344- serializer = self .serializer_class (data = request .data )
345- if not serializer .is_valid ():
346- return Response (
347- status = status .HTTP_400_BAD_REQUEST ,
348- data = {
349- "error" : serializer .errors ,
350- "message" : "A 'purl' is required." ,
351- },
352- )
353- validated_data = serializer .validated_data
354- purl = validated_data .get ("purl" )
355-
356- qs = self .get_queryset ().for_purls ([purl ]).with_is_vulnerable ()
357- return Response (PackageV2Serializer (qs , many = True , context = {"request" : request }).data )
358315
359316 @extend_schema (
360317 request = PackageurlListSerializer ,
@@ -517,3 +474,47 @@ def bulk_search(self, request):
517474 vulnerable_purls = query .vulnerable ().only ("package_url" )
518475 vulnerable_purls = [str (package .package_url ) for package in vulnerable_purls ]
519476 return Response (data = vulnerable_purls )
477+
478+ @action (detail = False , methods = ["get" ])
479+ def all (self , request ):
480+ """
481+ Return a list of Package URLs of vulnerable packages.
482+ """
483+ vulnerable_purls = (
484+ Package .objects .vulnerable ()
485+ .only ("package_url" )
486+ .order_by ("package_url" )
487+ .distinct ()
488+ .values_list ("package_url" , flat = True )
489+ )
490+ return Response (vulnerable_purls )
491+
492+ @extend_schema (
493+ request = LookupRequestSerializer ,
494+ responses = {200 : PackageV2Serializer (many = True )},
495+ )
496+ @action (
497+ detail = False ,
498+ methods = ["post" ],
499+ serializer_class = LookupRequestSerializer ,
500+ filter_backends = [],
501+ pagination_class = None ,
502+ )
503+ def lookup (self , request ):
504+ """
505+ Return the response for exact PackageURL requested for.
506+ """
507+ serializer = self .serializer_class (data = request .data )
508+ if not serializer .is_valid ():
509+ return Response (
510+ status = status .HTTP_400_BAD_REQUEST ,
511+ data = {
512+ "error" : serializer .errors ,
513+ "message" : "A 'purl' is required." ,
514+ },
515+ )
516+ validated_data = serializer .validated_data
517+ purl = validated_data .get ("purl" )
518+
519+ qs = self .get_queryset ().for_purls ([purl ]).with_is_vulnerable ()
520+ return Response (PackageV2Serializer (qs , many = True , context = {"request" : request }).data )
0 commit comments