예제 #1
0
 def post(self, request):
     serializer = OrderSerializer(data=request.data)
     if serializer.is_valid():
         data = serializer.create(validated_data=request.data,
                                  user=request.user)
         if type(data) == str:
             return Response(default_response(
                 code='get.order.error',
                 success=False,
                 message='Order não retornado com sucesso.',
                 data={'detail': data},
             ),
                             status=status.HTTP_400_BAD_REQUEST)
         tmpJson = serializers.serialize("json", [
             data,
         ])
         tmpObj = json.loads(tmpJson)
         return Response(
             default_response(
                 code='create.order.success',
                 success=True,
                 message='Order retornado com sucesso.',
                 data=json.dumps(tmpObj),
             ),
             status=status.HTTP_201_CREATED,
         )
     return Response(default_response(
         code='get.order.error',
         success=False,
         message='Order não retornado com sucesso.',
         data=serializer.errors,
     ),
                     status=status.HTTP_400_BAD_REQUEST)
예제 #2
0
 def post(self, request):
     serializer = ItemProductSerializer(data=request.data)
     if serializer.is_valid():
         data = serializer.create(validated_data=request.data)
         user = request.user
         user.cart.add(data)
         user.save()
         if type(data) == str:
             return Response(default_response(
                 code='get.item.error',
                 success=False,
                 message='Item não retornado com sucesso.',
                 data={'detail': data},
             ),
                             status=status.HTTP_400_BAD_REQUEST)
         s = ItemProductSerializer(data=user.cart.all(), many=True)
         s.is_valid()
         return Response(
             default_response(
                 code='create.item.success',
                 success=True,
                 message='Item retornada com sucesso.',
                 data=s.data,
             ),
             status=status.HTTP_201_CREATED,
         )
     return Response(default_response(
         code='get.offer.error',
         success=False,
         message='Item não retornada com sucesso.',
         data=serializer.errors,
     ),
                     status=status.HTTP_400_BAD_REQUEST)
예제 #3
0
 def post(self, request):
     serializer = CategorySerializer(data=request.data)
     if serializer.is_valid():
         data = serializer.create(validated_data=request.data)
         if type(data) == str:
             return Response(default_response(
                 code='get.category.error',
                 success=False,
                 message='Categoria não retornado com sucesso.',
                 data={'detail': data},
             ),
                             status=status.HTTP_400_BAD_REQUEST)
         return Response(
             default_response(
                 code='create.category.success',
                 success=True,
                 message='Categoria retornado com sucesso.',
                 data=CategorySerializer(data).data,
             ),
             status=status.HTTP_201_CREATED,
         )
     return Response(default_response(
         code='get.category.error',
         success=False,
         message='Categoria não retornado com sucesso.',
         data=serializer.errors,
     ),
                     status=status.HTTP_400_BAD_REQUEST)
예제 #4
0
 def get(self, request, format=None):
     # checks if the token exists and is valid
     user = request.user
     token = user.auth_token
     if Token and token in Token.objects.all():
         return Response(default_response(code='get.auth.success',
                                          success=True,
                                          message='Autenticado',
                                          data={"logged":"ok", 'is_admin':(user.is_superuser or user.is_admin)},
                                          ), status=status.HTTP_200_OK)
     else:
         return Response(default_response(code='get.auth.fail',
                                          success=True,
                                          message='fail',
                                          data={"logged": False, 'is_admin': (user.is_superuser or user.is_admin)},
                                          ), status=status.HTTP_404_NOT_FOUND)
예제 #5
0
 def get(self, request, format=None):
     items = self.get_objects(request)
     pagination_data = paginated_response_dict(items, request)
     if pagination_data is None:
         Response(default_response(code='get.product.success',
                                   success=True,
                                   data=[],
                                   message="Lista vazia.",
                                   pagination_data=None,
                                   ), status=status.HTTP_200_OK)
     serializer = ProductSerializer(pagination_data.get('objects'), many=True)
     return Response(default_response(code='get.product.success',
                                      success=True,
                                      data=serializer.data,
                                      message="Produto retornado com sucesso.",
                                      pagination_data=pagination_data,
                                      ), status=status.HTTP_200_OK)
예제 #6
0
 def get(self, request, format=None):
     product = self.get_objects(request)
     serializer = ProductSerializer(product, many=True)
     return Response(default_response(code='get.offer.success',
                                      success=True,
                                      data=serializer.data,
                                      message="Oferta retornado com sucesso."
                                      ), status=status.HTTP_200_OK)
예제 #7
0
 def get_object(self,pk):
     try:
         return Product.objects.get(pk=pk)
     except Product.DoesNotExist:
          return default_response(code='get.product.error',
                                     success=False,
                                     message='Produto não existe ou ja foi deletado.',
                                     )
예제 #8
0
 def get_object(self,pk):
     try:
         return Product.objects.filter(offer=True).get(pk=pk)
     except Product.DoesNotExist:
          return default_response(code='get.offer.error',
                                     success=False,
                                     message='Oferta não existe ou ja foi deletado.',
                                     )
예제 #9
0
 def put(self, request, pk, format=None):
     objects = self.get_object(pk)
     serializer = ProductEditSerializer(objects, data=request.data, partial=True)
     if serializer.is_valid():
         serializer.save()
         data = ProductSerializer(self.get_object(pk)).data
         return Response(default_response(code='put.products.success',
                                      success=True,
                                      message='Product editado com successo.',
                                      data=data,
                                      ), status=status.HTTP_201_CREATED)
     return Response(default_response(code='put.products.fail',
                                      success=True,
                                      message='Product nao editado com successo.',
                                      data=serializer.errors,
                                      ),
                                      status=status.HTTP_400_BAD_REQUEST)
예제 #10
0
 def get_object(self, pk):
     try:
         return Category.objects.get(pk=pk)
     except Category.DoesNotExist:
         return default_response(
             code='get.category.error',
             success=False,
             message='Categoria não existe ou ja foi deletado.',
         )
예제 #11
0
 def get(self, request, format=None):
     order = self.get_objects(request)
     serializer = OrderSerializer(order, many=True)
     return Response(default_response(
         code='get.order.success',
         success=True,
         data=serializer.data,
         message="Order retornado com sucesso."),
                     status=status.HTTP_200_OK)
예제 #12
0
 def get(self, request, format=None):
     # simply delete the token to force a login
     request.user.auth_token.delete()
     data = {"data":"Logout succeeded"}
     return Response(default_response(code='get.logout.success',
                                      success=True,
                                      message='Logout realizado com sucesso.',
                                      data=data,
                                      ), status=status.HTTP_200_OK)
예제 #13
0
 def get_object(self, pk):
     try:
         return Order.objects.get(pk=pk)
     except Order.DoesNotExist:
         return default_response(
             code='get.order.error',
             success=False,
             message='Order não existe ou ja foi deletado.',
         )
예제 #14
0
 def get(self, request, format=None):
     Category = self.get_objects(request)
     serializer = CategorySerializer(Category, many=True)
     return Response(default_response(
         code='get.category.success',
         success=True,
         data=serializer.data,
         message="Categoria retornado com sucesso."),
                     status=status.HTTP_200_OK)
예제 #15
0
 def get(self, request, format=None):
     serializer = UserViewSerializer(request.user)
     return Response(default_response(
         code='get.users.success',
         success=True,
         message='User retornado com successo.',
         data=serializer.data,
     ),
                     status=status.HTTP_200_OK)
예제 #16
0
 def get(self, request, format=None):
     user = request.user
     data = ItemProductSerializer(user.cart.all(), many=True).data
     return Response(default_response(
         code='get.cart.success',
         success=True,
         message='Listou carrinho com successo.',
         data=data,
     ),
                     status=status.HTTP_200_OK)
예제 #17
0
 def post(self, request, format=None):
     username = request.data.get('username')
     user = self.get_object(username)
     if user.is_active:
         return Response(default_response(
             code='activate.users.fail',
             success=False,
             message='Usuario ja esta ativo.',
         ),
                         status=status.HTTP_400_BAD_REQUEST)
     user.activate()
     data = {"detail": username + ' is now active.'}
     return Response(default_response(
         code='activate.users.success',
         success=True,
         message='Usuario ativado com successo.',
         data=data,
     ),
                     status=status.HTTP_200_OK)
예제 #18
0
 def get(self, request,pk, format=None):
     objects = self.get_object(pk)
     if type(objects) == dict:
             return Response(objects, status.HTTP_404_NOT_FOUND)
     serializer = ProductSerializer(objects)
     return Response(default_response(code='get.product.success',
                                      success=True,
                                      message='Produto retornada com sucesso.',
                                      data=serializer.data,
                                      ),status.HTTP_200_OK)
예제 #19
0
 def put(self, request, format=None):
     objects = self.get_object()
     serializer = UserSerializer(objects, data=request.data, partial=True)
     if serializer.is_valid():
         serializer.save()
         return Response(default_response(
             code='put.users.success',
             success=True,
             message='User editado com successo.',
             data=serializer.data,
         ),
                         status=status.HTTP_201_CREATED)
     return Response(default_response(
         code='put.users.fail',
         success=True,
         message='User nao editado com successo.',
         data=serializer.errors,
     ),
                     status=status.HTTP_400_BAD_REQUEST)
예제 #20
0
 def get(self, request, pk, format=None):
     objects = self.get_object(pk)
     serializer = UserSerializer(objects)
     return Response(default_response(
         code='get.users.success',
         success=True,
         message='User retornado com successo.',
         data=serializer.data,
     ),
                     status=status.HTTP_200_OK)
예제 #21
0
 def post(self, request, *args, **kwargs):
     serializer = self.serializer_class(data=request.data,
                                        context={'request': request})
     serializer.is_valid(raise_exception=True)
     user = serializer.validated_data['user']
     token, created = Token.objects.get_or_create(user=user)
     data = {'token': token.key,'user':user.username, 'is_admin':(user.is_superuser or user.is_admin)}
     return Response(default_response(code='post.login.success',
                                      success=True,
                                      message='Login realizado com sucesso.',
                                      data=data,
                                      status_code=200,
                                      ), status=status.HTTP_200_OK)
예제 #22
0
 def delete(self, request, pk, format=None):
     user = request.user
     p = self.get_product(pk)
     user.favorites.remove(p)
     user.save()
     data = ProductSerializer(user.favorites.all(), many=True).data
     return Response(default_response(
         code='delete.favorites.success',
         success=True,
         message='Item removido aos favoritos com successo.',
         data=data,
     ),
                     status=status.HTTP_200_OK)
예제 #23
0
 def post(self, request):
     serializer = ProductSerializer(data=request.data)
     if serializer.is_valid():
         data = serializer.create(validated_data=request.data)
         if type(data) == str:
             return Response(default_response(code='get.product.error',
                                              success=False,
                                              message='Oferta não retornado com sucesso.',
                                              data={'detail':data},
                                              )
                             ,status=status.HTTP_400_BAD_REQUEST)
         return Response(default_response(code='create.product.success',
                                      success=True,
                                      message='Oferta retornada com sucesso.',
                                      data=serializers.serialize('json', [data, ]),
                                      ), status=status.HTTP_201_CREATED,)
     return Response(default_response(code='get.offer.error',
                                      success=False,
                                      message='Oferta não retornada com sucesso.',
                                      data=serializer.errors,
                                      ),
                     status=status.HTTP_400_BAD_REQUEST)
예제 #24
0
 def post(self, request, format=None):
     serializer = UserSerializer(data=request.data)
     if serializer.is_valid(raise_exception=ValueError):
         data = serializer.create(validated_data=request.data)
         if type(data) == str:
             return Response(default_response(
                 code='post.users.error',
                 success=False,
                 message='User nao criado com successo.',
                 data={'detail': data}),
                             status=status.HTTP_400_BAD_REQUEST)
         return Response(default_response(
             code='post.users.success',
             success=True,
             message='User criado com successo.',
             data=serializer.data),
                         status=status.HTTP_201_CREATED)
     return Response(default_response(
         code='post.user.error',
         success=False,
         message='User nao criado com successo.',
         data=serializer.error_messages),
                     status=status.HTTP_400_BAD_REQUEST)
예제 #25
0
 def post(self, request):
     serializer = ProductSerializer(data=request.data)
     if serializer.is_valid():
         data = serializer.create(validated_data=request.data)
         if type(data) == str:
             return Response(default_response(code='get.product.error',
                                              success=False,
                                              message='Produto não retornado com sucesso.',
                                              data={'detail':data},
                                              )
                             ,status=status.HTTP_400_BAD_REQUEST)
         data = Product.objects.get(pk=data.id)
         return Response(default_response(code='create.product.success',
                                      success=True,
                                      message='Produto retornado com sucesso.',
                                      data=ProductSerializer(data).data,
                                      ), status=status.HTTP_201_CREATED,)
     return Response(default_response(code='get.product.error',
                                      success=False,
                                      message='Produto não retornado com sucesso.',
                                      data=serializer.errors,
                                      ),
                     status=status.HTTP_400_BAD_REQUEST)
예제 #26
0
 def post(self, request, format=None):
     user = request.user
     pk = request.data.get("id", None)
     p = self.get_product(pk)
     user.favorites.add(p)
     user.save()
     data = ProductSerializer(user.favorites.all(), many=True).data
     return Response(default_response(
         code='post.favorites.success',
         success=True,
         message='Item adicionado aos favoritos com successo.',
         data=data,
     ),
                     status=status.HTTP_201_CREATED)
예제 #27
0
 def post(self, request, format=None):
     password = request.data.get('password')
     new_password = request.data.get('new_password')
     try:
         token = request.user.auth_token
         token_user = Token.objects.get(key=token).user
         if token_user.check_password(password):
             token_user.set_password(new_password)
             token_user.save()
             return Response(default_response(data='success',message="Senha alterada com sucesso.",
                                              status_code=200,code="change-password.success",success=True),status=status.HTTP_200_OK)
         else:
             return Response("username and password don't match", status=status.HTTP_400_BAD_REQUEST)
     except CustomUser.DoesNotExist:
         return Response('username not found', status=status.HTTP_400_BAD_REQUEST)
     except Token.DoesNotExist:
         return Response('Invalid token', status=status.HTTP_400_BAD_REQUEST)