Beispiel #1
0
    def update(self, request, slug=None):
        """
           superuser can change all objects
           but other user if is_seller=True and be seller object just can change owner object
           if other user update object status=False,choice='d' for dont show site
           :param request:
           :param slug:
           :return:
        """
        try:
            obj = productCacheDatabase(request, 'products', Product)
            product = obj.filter(slug=slug)
            serializer = ProductDetailSerializer(product, data=request.data)
            if serializer.is_valid(raise_exception=True):
                if request.user.is_superuser:
                    serializer.save()
                else:
                    serializer.save(choice='d',
                                    status=False,
                                    seller=request.user)

                return response.SuccessResponse(serializer.data).send()
        except CustomException as e:
            return response.ErrorResponse(message=e.detail,
                                          status=e.status_code).send()
Beispiel #2
0
    def retrieve(self, request, pk=None):
        """
        detail cartItem for other user
        :param request:
        :param pk:
        :return:
        """
        try:
            obj = cacheCart(request, f'cart-{request.user.email}', Cart,
                            request.user)

            # this is for select is_pay = False object, that means thay that dont payment
            cart_obj = obj.get(is_pay=False)
            cart_items = cacheCartItem(request,
                                       f'cartItem-{cart_obj.user.email}',
                                       CartItem, cart_obj)

            # this is for select CartItem object that is in user cart that is_pay = False
            queryset = cart_items.get(pk=pk)
            serializer = CartItemDetailSerializers(
                queryset, context={'request': request})
            return response.SuccessResponse(serializer.data).send()
        except CustomException as e:
            return response.ErrorResponse(message=e.detail,
                                          status=e.status_code).send()
Beispiel #3
0
 def create(self, request):
     try:
         serializer = TicketCreateSerializer(data=request.data)
         if serializer.is_valid():
             serializer.save(status='de', user=request.user)
             return response.SuccessResponse(serializer.data).send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #4
0
 def retrieve(self, request, pk=None):
     try:
         obj = cacheCategoryOrFigur(request, 'figure', FigureField)
         queryset = obj.get(pk=pk)
         serializer = FigureFieldDetailSerializer(queryset)
         return response.SuccessResponse(serializer.data).send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #5
0
 def create(request):
     try:
         serializer = CategoryInputSerializer(data=request.data)
         if serializer.is_valid() and request.user.is_superuser:
             serializer.save()
             return response.SuccessResponse(serializer.data).send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #6
0
 def create(self, request):
     try:
         serializer = FigureFieldDetailSerializer(data=request.data)
         if serializer.is_valid() and request.user.is_superuser:
             serializer.save()
             return response.SuccessResponse(serializer.data).send()
     except CustomException as e:
         print("===============")
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #7
0
 def list(self, request):
     try:
         obj = cacheCategoryOrFigur(request, 'figure', FigureField)
         serializer = FigureFieldSerializer(obj,
                                            context={'request': request},
                                            many=True)
         return response.SuccessResponse(serializer.data).send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #8
0
 def list(self, request):
     try:
         answer = QuestionAndAnswer.objects.filter(user=request.user)
         serializer = AnswerListSerializer(answer,
                                           context={'request': request},
                                           many=True)
         return response.SuccessResponse(serializer.data).send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #9
0
 def list(self, request):
     try:
         obj = User.objects.all()
         serializer = UserListSerializers(obj,
                                          context={'request': request},
                                          many=True)
         return response.SuccessResponse(serializer.data).send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #10
0
 def destroy(self, request, pk=None):
     try:
         obj = cacheCart(request, f'cart-{request.user.email}', Cart,
                         request.user)
         cart = obj.filter(is_pay=False, user=request.user, pk=pk).first()
         cart.delete()
         return response.SuccessResponse(message='Delete object').send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #11
0
 def update(self, request, pk=None):
     try:
         obj = cacheCategoryOrFigur(request, 'figure', FigureField)
         figure = obj.get(pk=pk)
         serializer = FigureFieldDetailSerializer(figure, data=request.data)
         if serializer.is_valid() and request.user.is_superuser:
             serializer.save()
             return response.SuccessResponse(serializer.data).send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #12
0
 def retrieve(self, request, username=None):
     try:
         obj = User.objects.all()
         queryset = obj.filter(username=username)
         serializer = UserDetailSerializers(queryset,
                                            context={'request': request},
                                            many=True)
         return response.SuccessResponse(serializer.data).send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #13
0
 def update(self, request, pk=None):
     try:
         obj = cacheCart(request, f'cart-{request.user.email}', Cart,
                         request.user)
         cart = obj.get(is_pay=False, user=request.user, pk=pk)
         serializer = CartInputSerializers(cart, data=request.data)
         if serializer.is_valid():
             serializer.save(user=request.user)
             return response.SuccessResponse(serializer.data).send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #14
0
 def destroy(self, request, pk=None):
     """
     just super user can delete it
     :param request:
     :param pk:
     :return: delete object with pk=pk and is_pay=True
     """
     try:
         Cart.objects.get(pk=pk, is_pay=True).delete()
         return response.SuccessResponse(message='Deleted object').send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #15
0
 def retrieve(self, request, pk=None):
     try:
         if request.user.is_superuser:
             queryset = Ticket.objects.filter(pk=pk)
         else:
             queryset = Ticket.objects.filter(pk=pk, user=request.user)
         serializer = TicketDetailSerializer(queryset,
                                             context={'request': request},
                                             many=True)
         return response.SuccessResponse(serializer.data).send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #16
0
 def list(self, request):
     try:
         if request.user.is_superuser:
             ticket = Ticket.objects.all()
         else:
             ticket = Ticket.objects.filter(user=request.user)
         serializer = TicketListSerializer(ticket,
                                           context={'request': request},
                                           many=True)
         return response.SuccessResponse(serializer.data).send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #17
0
 def destroy(self, request, pk=None):
     """
     superuser can delete notices object
     :param request:
     :param pk:
     :return:
     """
     try:
         notice = Notice.objects.get(pk=pk)
         notice.delete()
         return response.SuccessResponse(message='Deleted object').send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #18
0
 def create(self, request):
     """
     create notice object by all user
     when superuser has not approved (status == False) ==> dont send email for user
     :param request:
     :return:
     """
     try:
         serializer = NoticeCreateSerializer(data=request.data)
         if serializer.is_valid():
             serializer.save(status=False)
             return response.SuccessResponse(serializer.data).send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #19
0
 def list(self, request):
     """
     show list all notices object for superuser
     :param request:
     :return:
     """
     try:
         notice = Notice.objects.all()
         serializer = NoticeListSerializer(notice,
                                           context={'request': request},
                                           many=True)
         return response.SuccessResponse(serializer.data).send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #20
0
 def create(self, request):
     try:
         serializer = AnswerCreateSerializer(data=request.data)
         tick_pk = request.data['question']
         ticket = Ticket.objects.get(pk=tick_pk)
         if serializer.is_valid():
             if ticket.status != 'cl':
                 serializer.save(user=request.user)
                 return response.SuccessResponse(serializer.data).send()
             else:
                 return response.ErrorResponse(message='ticket is closed',
                                               status=403).send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #21
0
 def destroy(self, request, pk=None):
     """
     delete figure field
     :param request:
     :param pk:
     :return:
     """
     try:
         obj = cacheCategoryOrFigur(request, 'figure', FigureField)
         figure = obj.get(pk=pk)
         figure.delete()
         return response.SuccessResponse(message='Deleted object').send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #22
0
 def update(self, request, pk=None):
     """
     superuser can update all object notices
     :param request:
     :param pk:
     :return:
     """
     try:
         notice = Notice.objects.get(pk=pk)
         serializer = NoticeDetailSerializer(notice, data=request.data)
         if serializer.is_valid():
             serializer.save()
             return response.SuccessResponse(serializer.data).send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #23
0
 def retrieve(self, request, pk=None):
     """
     detail object for superuser
     :param request:
     :param pk:
     :return:
     """
     try:
         queryset = Notice.objects.filter(pk=pk)
         serializer = NoticeDetailSerializer(queryset,
                                             context={'request': request},
                                             many=True)
         return response.SuccessResponse(serializer.data).send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #24
0
 def update(self, request, pk=None):
     """
     just superuser can update list carts that is_pay=True
     :param request:
     :param pk:
     :return: update object with pk=pk
     """
     try:
         cart = Cart.objects.get(pk=pk, is_pay=True)
         serializer = CartDetailSerializers(cart, data=request.data)
         if serializer.is_valid():
             serializer.save()
             return response.SuccessResponse(serializer.data).send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #25
0
 def destroy(self, request, slug=None):
     """
             superuser can delete all objects
             but other user if is_seller=True and be seller object just can delete owner object
             :param request:
             :param slug:
             :return:
     """
     try:
         obj = productCacheDatabase(request, 'products', Product)
         product = obj.filter(slug=slug)
         product.delete()
         return response.SuccessResponse(message='Delete object').send()
     except CustomException as e:
         return response.ErrorResponse(message='Instance does not exist.',
                                       status=404).send()
Beispiel #26
0
 def create(self, request):
     """
     create object and put choice='d',status=False,seller=request.user
     and superuser must ok object ====> status=True,choice='p' for shows site
     :param request:
     :return:
     """
     try:
         serializer = InputProductSerializers(data=request.data)
         if serializer.is_valid(raise_exception=True):
             # when superuser has approved it, dont show to user ==> choice = 'd' and status = False
             serializer.save(choice='d', status=False, seller=request.user)
             return response.SuccessResponse(serializer.data).send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #27
0
 def list(self, request):
     """
     list all category for all user
     :param request:
     :return:
     """
     try:
         obj = cacheCategoryOrFigur(request, 'category', Category)
         category = obj.filter(status=True)
         serializer = CategoryListSerializer(category,
                                             context={'request': request},
                                             many=True)
         return response.SuccessResponse(serializer.data).send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #28
0
 def destroy(self, request, slug=None):
     """
     delete object
     :param request:
     :param slug:
     :return:
     """
     try:
         obj = cacheCategoryOrFigur(request, 'category', Category)
         category = obj.filter(slug=slug).first()
         print(category)
         category.delete()
         return response.SuccessResponse(message='Delete object').send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Beispiel #29
0
    def destroy(self, request, pk=None):
        try:
            obj = cacheCart(request, f'cart-{request.user.email}', Cart,
                            request.user)
            # this is for select is_pay = False object, that means thay that dont payment
            cart = obj.get(is_pay=False)
            cart_items = cacheCartItem(request, f'cartItem-{cart.user.email}',
                                       CartItem, cart)

            # this is for select CartItem objects that are in user cart that is_pay = False
            queryset = cart_items.get(pk=pk)
            queryset.delete()
            return response.SuccessResponse(message='Delete object').send()
        except CustomException as e:
            return response.ErrorResponse(message=e.detail,
                                          status=e.status_code).send()
Beispiel #30
0
 def retrieve(self, request, pk=None):
     """
     detail cart
     :param request:
     :param pk:
     :return:
     """
     try:
         obj = cacheCart(request, f'cart-{request.user.email}', Cart,
                         request.user)
         cart = obj.get(is_pay=False, user=request.user, pk=pk)
         serializer = CartDetailSerializers(cart,
                                            context={'request': request})
         return response.SuccessResponse(serializer.data).send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()