Esempio n. 1
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()
Esempio n. 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()
Esempio n. 3
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()
Esempio n. 4
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()
Esempio n. 5
0
    def destroy(self, request, pk=None):
        try:
            if request.user.is_superuser:
                answer = QuestionAndAnswer.objects.get(pk=pk)
            else:
                answer = QuestionAndAnswer.objects.get(pk=pk,
                                                       user=request.user)
                if answer.question.status == 'cl':
                    return response.ErrorResponse(
                        message=
                        'you can not delete ticketing object with status cl',
                        status=403).send()

            answer.delete()
            return response.SuccessResponse(message='Deleted object').send()
        except CustomException as e:
            return response.ErrorResponse(message=e.detail,
                                          status=e.status_code).send()
Esempio n. 6
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()
Esempio n. 7
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()
Esempio n. 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()
Esempio n. 9
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()
Esempio n. 10
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()
Esempio n. 11
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()
Esempio n. 12
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()
Esempio n. 13
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()
Esempio n. 14
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()
Esempio n. 15
0
    def update(self, request, pk=None):
        try:
            if request.user.is_superuser:
                answer = QuestionAndAnswer.objects.get(pk=pk)
            else:
                answer = QuestionAndAnswer.objects.get(pk=pk,
                                                       user=request.user)

            tick_pk = int(request.data['question'])
            ticket = Ticket.objects.get(pk=tick_pk)
            serializer = AnswerDetailSerializer(answer, data=request.data)
            if serializer.is_valid():
                if ticket.status != 'cl':
                    serializer.save()
                    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()
Esempio n. 16
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()
Esempio n. 17
0
 def create(self, request):
     """
     when create object user=request.user and is_pay=False
     :param request:
     :return:
     """
     try:
         cart = cacheCart(request, f'cart-{request.user.email}', Cart,
                          request.user)
         len_cart = cart.filter(is_pay=False).count()
         serializer = CartInputSerializers(data=request.data)
         if serializer.is_valid():
             if len_cart == 0:
                 serializer.save(is_pay=False, user=request.user)
                 return response.SuccessResponse(serializer.data).send()
             else:
                 return response.ErrorResponse(
                     message='cart object is_pay == False exist.',
                     status=403).send()
     except CustomException as e:
         return response.ErrorResponse(message=e.detail,
                                       status=e.status_code).send()
Esempio n. 18
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()
Esempio n. 19
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()
Esempio n. 20
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()
Esempio n. 21
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()
Esempio n. 22
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()
Esempio n. 23
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()
Esempio n. 24
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()
Esempio n. 25
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()
Esempio n. 26
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()
Esempio n. 27
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()
Esempio n. 28
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()
Esempio n. 29
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()
Esempio n. 30
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()