Skip to content

Commit e56bcac

Browse files
committed
Restructure code
Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com>
1 parent a2fceea commit e56bcac

File tree

2 files changed

+44
-52
lines changed

2 files changed

+44
-52
lines changed

vulnerabilities/api_v2.py

Lines changed: 44 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -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)

vulnerabilities/models.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -826,15 +826,6 @@ def get_non_vulnerable_versions(self):
826826

827827
return None, None
828828

829-
@property
830-
def non_vulnerable_versions(self):
831-
"""
832-
Cache the result of get_non_vulnerable_versions_v2 to avoid redundant computations.
833-
"""
834-
if not hasattr(self, "_non_vulnerable_versions_cache"):
835-
self._non_vulnerable_versions_cache = self.get_non_vulnerable_versions_v2()
836-
return self._non_vulnerable_versions_cache
837-
838829
@property
839830
def next_non_vulnerable_package(self):
840831
"""

0 commit comments

Comments
 (0)