Coverage for website/thabloid/api/v2/views.py: 100.00%

17 statements  

« prev     ^ index     » next       coverage.py v7.6.7, created at 2025-08-14 10:31 +0000

1from oauth2_provider.contrib.rest_framework import IsAuthenticatedOrTokenHasScope 

2from rest_framework import filters 

3from rest_framework.generics import ListAPIView, RetrieveAPIView 

4 

5from thabloid.api.v2.serializers import ThabloidSerializer 

6from thabloid.models.thabloid import Thabloid 

7 

8 

9class ThabloidListView(ListAPIView): 

10 """Returns a list of all Thabloids.""" 

11 

12 serializer_class = ThabloidSerializer 

13 

14 queryset = Thabloid.objects.all() 

15 

16 permission_classes = [ 

17 IsAuthenticatedOrTokenHasScope, 

18 ] 

19 required_scopes = ["thabloid:read"] 

20 filter_backends = (filters.SearchFilter,) 

21 search_fields = ("year", "issue") 

22 

23 

24class ThabloidDetailView(RetrieveAPIView): 

25 """Returns details about a specific Thabloid.""" 

26 

27 serializer_class = ThabloidSerializer 

28 

29 queryset = Thabloid.objects.all() 

30 

31 permission_classes = [ 

32 IsAuthenticatedOrTokenHasScope, 

33 ] 

34 required_scopes = ["thabloid:read"]