modified yml file, default article card image upload api,

This commit is contained in:
abutalib-kiwi
2023-07-25 14:09:51 +05:30
parent 0a5eaa233f
commit 6e84814117
7 changed files with 255 additions and 22 deletions

View File

@ -3,18 +3,22 @@ web_admin views file
"""
# django imports
from rest_framework.viewsets import GenericViewSet, mixins
from rest_framework.response import Response
from rest_framework.filters import OrderingFilter, SearchFilter
from rest_framework import status
from rest_framework.decorators import action
from rest_framework.permissions import IsAuthenticated
from rest_framework.permissions import IsAuthenticated, AllowAny
from django.contrib.auth import get_user_model
# local imports
from account.utils import custom_response, custom_error_response
from base.constants import USER_TYPE
from base.messages import SUCCESS_CODE, ERROR_CODE
from web_admin.models import Article, ArticleCard, ArticleSurvey
from web_admin.models import Article, ArticleCard, ArticleSurvey, DefaultArticleCardImage
from web_admin.permission import AdminPermission
from web_admin.serializers import ArticleSerializer, ArticleCardSerializer
from web_admin.serializers import (ArticleSerializer, ArticleCardSerializer, DefaultArticleCardImageSerializer,
UserManagementListSerializer)
USER = get_user_model()
class ArticleViewSet(GenericViewSet, mixins.CreateModelMixin, mixins.UpdateModelMixin,
@ -137,7 +141,7 @@ class ArticleViewSet(GenericViewSet, mixins.CreateModelMixin, mixins.UpdateModel
return custom_error_response(ERROR_CODE["2043"], response_status=status.HTTP_400_BAD_REQUEST)
@action(methods=['post'], url_name='test-add-card', url_path='test-add-card',
detail=False, serializer_class=ArticleCardSerializer)
detail=False, serializer_class=ArticleCardSerializer, permission_classes=[AllowAny])
def add_card(self, request):
"""
:param request:
@ -147,3 +151,73 @@ class ArticleViewSet(GenericViewSet, mixins.CreateModelMixin, mixins.UpdateModel
serializer.is_valid(raise_exception=True)
serializer.save()
return custom_response(SUCCESS_CODE["3000"])
@action(methods=['get'], url_name='test-list-card', url_path='test-list-card',
detail=False, serializer_class=ArticleCardSerializer, permission_classes=[AllowAny])
def list_card(self, request):
"""
:param request:
:return:
"""
queryset = ArticleCard.objects.all()
serializer = self.serializer_class(queryset, many=True)
return custom_response(None, serializer.data)
class DefaultArticleCardImagesViewSet(GenericViewSet, mixins.CreateModelMixin, mixins.ListModelMixin):
"""
api to upload and list default article card images
"""
serializer_class = DefaultArticleCardImageSerializer
permission_classes = [IsAuthenticated, AdminPermission]
queryset = DefaultArticleCardImage.objects.all()
def create(self, request, *args, **kwargs):
"""
api method to upload default article card images
:param request:
:return: success message
"""
serializer = self.serializer_class(data=request.data)
serializer.is_valid(raise_exception=True)
serializer.save()
return custom_response(SUCCESS_CODE["3000"])
def list(self, request, *args, **kwargs):
"""
api method to list default article card images
:param request:
:return: default article card images
"""
queryset = self.queryset
serializer = self.serializer_class(queryset, many=True)
return custom_response(None, data=serializer.data)
class UserManagementViewSet(GenericViewSet, mixins.ListModelMixin):
"""
api to manage (list, view, edit) user
"""
serializer_class = UserManagementListSerializer
permission_classes = []
queryset = USER.objects.prefetch_related(
'guardian_profile', 'junior_profile')
def get_queryset(self):
if self.request.query_params.get('user_type') == dict(USER_TYPE).get('2'):
return self.queryset.filter(junior_profile__isnull=True)
elif self.request.query_params.get('user_type') == dict(USER_TYPE).get('1'):
return self.queryset.filter(guardian_profile__isnull=True)
else:
return self.queryset
def list(self, request, *args, **kwargs):
"""
api method to list all the user
:param request:
:return:
"""
queryset = self.get_queryset()
serializer = self.serializer_class(queryset, many=True)
return custom_response(None, data=serializer.data)