@@ -157,6 +157,7 @@ def filter_purl(self, queryset, name, value):
157157class PackageViewSet (viewsets .ReadOnlyModelViewSet ):
158158 queryset = Package .objects .all ()
159159 serializer_class = PackageSerializer
160+ paginate_by = 50
160161 filter_backends = (filters .DjangoFilterBackend ,)
161162 filterset_class = PackageFilterSet
162163
@@ -212,10 +213,6 @@ class VulnerabilityViewSet(viewsets.ReadOnlyModelViewSet):
212213class CPEFilterSet (filters .FilterSet ):
213214 cpe = filters .CharFilter (method = "filter_cpe" )
214215
215- class Meta :
216- model = Vulnerability
217- fields = ["vulnerabilityreference__reference_id" ]
218-
219216 def filter_cpe (self , queryset , name , value ):
220217 cpe = unquote (value )
221218 return self .queryset .filter (vulnerabilityreference__reference_id__startswith = cpe ).distinct ()
@@ -229,3 +226,19 @@ class CPEViewSet(viewsets.ReadOnlyModelViewSet):
229226 paginate_by = 50
230227 filter_backends = (filters .DjangoFilterBackend ,)
231228 filterset_class = CPEFilterSet
229+
230+
231+ class AliasFilterSet (filters .FilterSet ):
232+ alias = filters .CharFilter (method = "filter_alias" )
233+
234+ def filter_alias (self , queryset , name , value ):
235+ alias = unquote (value )
236+ return self .queryset .filter (aliases__alias__icontains = alias )
237+
238+
239+ class AliasViewSet (viewsets .ReadOnlyModelViewSet ):
240+ queryset = Vulnerability .objects .all ()
241+ serializer_class = VulnerabilitySerializer
242+ paginate_by = 50
243+ filter_backends = (filters .DjangoFilterBackend ,)
244+ filterset_class = AliasFilterSet
0 commit comments