Source code for book.api.views

"""API Views."""

from book.api.serializers import (
    InstagramImageSerializer,
    InstagramTextSerializer,
    PokemonImageSerializer,
)
from rest_framework import viewsets
from rest_framework.pagination import PageNumberPagination
from rest_framework.permissions import IsAuthenticated, IsAuthenticatedOrReadOnly

from .. import models


[docs]class StandardResultsSetPagination(PageNumberPagination): """100개 단위로 Pagination 수행.""" page_size = 100 page_size_query_param = "page_size" max_page_size = 1000
[docs]class PokemonImageViewSet(viewsets.ModelViewSet): """Pokemon 이미지 제공.""" queryset = models.PokemonImage.objects.filter(classified="little").order_by("id") permission_classes = [IsAuthenticatedOrReadOnly] serializer_class = PokemonImageSerializer pagination_class = StandardResultsSetPagination filterset_fields = ("title", "url")
[docs]class InstagramTextViewSet(viewsets.ModelViewSet): """Instagram Text 제공.""" queryset = models.PeopleImage.objects.order_by("id") permission_classes = [IsAuthenticated] serializer_class = InstagramTextSerializer pagination_class = StandardResultsSetPagination
[docs]class InstagramImageViewSet(viewsets.ModelViewSet): """Instagram 이미지 제공.""" queryset = models.PeopleImage.objects.order_by("id") permission_classes = [IsAuthenticated] serializer_class = InstagramImageSerializer pagination_class = StandardResultsSetPagination filterset_fields = ("selected",)