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)
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)
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)
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)
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)
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)
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.', )
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.', )
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)
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.', )
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)
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)
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.', )
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)