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
« 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
5from thabloid.api.v2.serializers import ThabloidSerializer
6from thabloid.models.thabloid import Thabloid
9class ThabloidListView(ListAPIView):
10 """Returns a list of all Thabloids."""
12 serializer_class = ThabloidSerializer
14 queryset = Thabloid.objects.all()
16 permission_classes = [
17 IsAuthenticatedOrTokenHasScope,
18 ]
19 required_scopes = ["thabloid:read"]
20 filter_backends = (filters.SearchFilter,)
21 search_fields = ("year", "issue")
24class ThabloidDetailView(RetrieveAPIView):
25 """Returns details about a specific Thabloid."""
27 serializer_class = ThabloidSerializer
29 queryset = Thabloid.objects.all()
31 permission_classes = [
32 IsAuthenticatedOrTokenHasScope,
33 ]
34 required_scopes = ["thabloid:read"]