mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-11-27 17:14:55 +00:00
list, view, edit api for article
This commit is contained in:
@ -7,17 +7,48 @@ from rest_framework.response import Response
|
||||
from rest_framework import status
|
||||
|
||||
# local imports
|
||||
from account.utils import custom_response, custom_error_response
|
||||
from web_admin.models import Article
|
||||
from web_admin.serializers import ArticleSerializer
|
||||
|
||||
|
||||
class ArticleViewSet(GenericViewSet, mixins.CreateModelMixin):
|
||||
class ArticleViewSet(GenericViewSet, mixins.CreateModelMixin, mixins.UpdateModelMixin,
|
||||
mixins.ListModelMixin, mixins.RetrieveModelMixin, mixins.DestroyModelMixin):
|
||||
serializer_class = ArticleSerializer
|
||||
permission_classes = []
|
||||
queryset = Article.objects.all()
|
||||
queryset = Article.objects.prefetch_related('article_cards',
|
||||
'article_survey',
|
||||
'article_survey__survey_options')
|
||||
|
||||
def create(self, request, *args, **kwargs):
|
||||
serializer = self.serializer_class(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
serializer.save()
|
||||
return Response({'message': "created"}, status=status.HTTP_201_CREATED)
|
||||
return custom_response("created")
|
||||
|
||||
def update(self, request, *args, **kwargs):
|
||||
article = self.queryset.filter(id=kwargs['pk']).first()
|
||||
serializer = self.serializer_class(article, data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
serializer.save()
|
||||
return custom_response("updated")
|
||||
|
||||
def list(self, request, *args, **kwargs):
|
||||
# queryset = Article.objects.prefetch_related('article_cards',
|
||||
# 'article_survey',
|
||||
# 'article_survey__survey_options')
|
||||
paginator = self.pagination_class()
|
||||
paginated_queryset = paginator.paginate_queryset(self.queryset, request)
|
||||
serializer = self.serializer_class(paginated_queryset, many=True)
|
||||
return custom_response(None, data=serializer.data)
|
||||
|
||||
def retrieve(self, request, *args, **kwargs):
|
||||
queryset = self.queryset.filter(id=kwargs['pk'])
|
||||
serializer = self.serializer_class(queryset, many=True)
|
||||
return custom_response(None, data=serializer.data)
|
||||
|
||||
def destroy(self, request, *args, **kwargs):
|
||||
article = self.queryset.filter(id=kwargs['pk']).update(is_deleted=True)
|
||||
if article:
|
||||
return custom_response("deleted")
|
||||
return custom_error_response("article doesn't exist", status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
Reference in New Issue
Block a user