from rest_framework.generics import ListAPIView, RetrieveAPIView
from rest_framework.response import Response
from rest_framework.permissions import IsAuthenticated

from apps.archive.models import PostModel

from .serializers import PostPreviewSerializer, PostSerializer


class PostListView(ListAPIView):
    permission_classes = [IsAuthenticated]
    serializer_class = (
        PostPreviewSerializer  # Each post will be serialized using this serializer
    )

    def get_queryset(self):
        user = self.request.user.userprofile
        if user.show_mature:
            queryset = PostModel.objects.all()
        else:
            queryset = PostModel.objects.filter(mature=False)
        return queryset.order_by("-date_created")



class PostDetailView(RetrieveAPIView):
    permission_classes = [IsAuthenticated]
    serializer_class = PostSerializer
    lookup_field = (
        "post_id"  # This tells DRF to use the "post_id" URL kwarg for lookups.
    )
    queryset = PostModel.objects.all()