Exemple #1
0
def admin_edit(request):
    validation = validate(request)
    if (validation != True):
        return validation

    if (request.method != 'POST'):
        raise Http404('No such method')

    pr = None
    if request.POST['id'] != 'new':
        pr = Product.objects.get(id=int(request.POST['id']))

    serializer = ProductSerializer(pr, data=request.POST)

    if not serializer.is_valid():
        response = HttpResponse('Invalid product object')
        response.status_code = 400
        return response
    serializer.save()

    if request.POST['id'] == 'new':
        os.mkdir(os.path.join(settings.MEDIA_ROOT, str(serializer.data['id'])))
        copy(
            os.path.join(settings.STATIC_ROOT, 'img', 'noimg.jpg'),
            os.path.join(settings.MEDIA_ROOT, str(serializer.data['id']),
                         '0.jpg'))

    return HttpResponse(serializer.data['id'])
 def put(self, request, pk, format=None):
     cat = Product.objects.get(id=pk)
     serializer = ProductSerializer(cat, data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Exemple #3
0
 def put(self, request, product_id):
     product = self.get_object(product_id)
     serializer = ProductSerializer(instance=product, data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data)
     return Response({'error': serializer.errors})
Exemple #4
0
    def post(self, request):
        serializer = ProductSerializer(data=request.data)

        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def set_products(request):
    # dates = pd.read_csv('D:\Programming\PpP\web\cat.csv')
    dates = pd.read_csv(
        'https://docs.google.com/spreadsheets/d/e/2PACX-1vSgzUi6BNlGD2U6RmJcvT2kiszysNj9WISt746Jo67wtwD2DVJb-Iuwrkj6hL6bgDU1KotRaOS_IJL3/pub?gid=1763850928&single=true&output=csv'
    )

    name = dates['name'].values
    price = dates['price'].values
    description = dates['description'].values
    rating = [random.randint(1, 10) for i in range(len(name))]
    likes = dates['likes'].values
    views = dates['views'].values
    category_id = dates['category_id'].values

    for i in range(len(name)):
        di = {
            'name': name[i],
            'price': price[i],
            'description': description[i],
            'rating': rating[i],
            'likes': likes[i],
            'views': views[i],
            'category_id': category_id[i]
        }
        serializer = ProductSerializer(data=di)
        if serializer.is_valid():
            serializer.save()
            print('Good')
        else:
            print('Bad')
            return JsonResponse(serializer.errors)
    return JsonResponse({'Message': 'Good'})
    def update(self, request, pk=None):
        product_to_update = request.data.get('product')
        serializer = ProductSerializer(data=product_to_update)

        if serializer.is_valid(raise_exception=True):
            queryset = Product.objects.all()
            product = get_object_or_404(queryset, pk=pk)

            if product_to_update['shop_name'] and product_to_update['shop_name'].isnumeric() and \
                    Shop.objects.get(pk=product_to_update['shop_name']):
                product.shop_name = product_to_update['shop_name']

            if product_to_update['title']:
                product.title = product_to_update['title']

            if product_to_update['link']:
                product.link = product_to_update['link']

            if product_to_update['description']:
                product.description = product_to_update['description']

            if product_to_update['image_link']:
                product.image_link = product_to_update['image_link']

            product.save()
            serializer_to_return = ProductSerializer(product)

            return Response(serializer_to_return.data)

        else:
            data = {'error': 'Error Updating Product', 'status_code': 400}
            error_serializer = ErrorSerializer(data=data)
            error_serializer.is_valid(True)

            return Response(error_serializer.data)
    def test_product_images(self):
        result_empty = ProductSerializer(
            self.product_empty_related).product_images()
        result = ProductSerializer(self.product).product_images()

        self.assertEqual(len(result_empty), 0)
        self.assertNotEqual(len(result), 0)
Exemple #8
0
 def post(self, request):
     serializer = ProductSerializer(data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=status.HTTP_201_CREATED)
     return Response({'error': serializer.errors},
                     status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Exemple #9
0
 def post(self,request,format=None):
     serializer= ProductSerializer(data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data,status=status.HTTP_202_ACCEPTED)
     else:
         return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)
Exemple #10
0
 def put(self, request, id):
     product = self.get_product(id)
     serializer = ProductSerializer(instance=product, data=json.loads(request.body))
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=status.HTTP_200_OK)
     return Response(serializer.errors, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Exemple #11
0
 def put(self, request, product_id):
     product = self.get_object(product_id)
     serializer = ProductSerializer(instance=product, data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=status.HTTP_202_ACCEPTED)
     return Response({"error": serializer.errors})
Exemple #12
0
 def put(self, request, product_id):
     product = self.get_object(product_id)
     serializer = ProductSerializer(instance=product, data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=status.HTTP_426_UPGRADE_REQUIRED)
     return Response({'error': serializer.errors}, status=status.HTTP_406_NOT_ACCEPTABLE)
Exemple #13
0
 def create(self, request):
     slr = ProductSerializer(data=request.data,
                             context={'request': request})
     if slr.is_valid():
         slr.save()
         return Response(slr.data)
     else:
         return Response(slr.errors, status=400)
Exemple #14
0
 def put(self, request, pk):
     product = self.get_object(pk)
     serializer = ProductSerializer(product, data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=status.HTTP_200_OK)
     else:
         return Response(status=status.HTTP_400_BAD_REQUEST)
Exemple #15
0
 def put(self,request,pk,format=None):
     products=self.get_object(pk)
     serializer=ProductSerializer(products,data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data,status=status.HTTP_201_CREATED)
     else:
         return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)
Exemple #16
0
 def get(self, request, format=None):
     if (request.query_params and request.query_params['id']):
         product = Product.objects.get(pk=request.query_params['id'])
         serializer = ProductSerializer(product)
         return Response(serializer.data)
     products = Product.objects.all()
     serializer = ProductSerializer(products, many=True)
     return Response(serializer.data)
Exemple #17
0
 def get(self, request):
     path = os.path.join(settings.MEDIA_ROOT, 'products.json')
     with open(path, 'r', encoding='utf-8') as f:
         data = json.load(f)
     serialized_data = ProductSerializer(data=data['products'], many=True)
     if not serialized_data.is_valid():
         return Response(data=[], content_type='application/json')
     return Response(data=serialized_data.data)
Exemple #18
0
 def post(self, request):
     serializer = ProductSerializer(data=request.data)
     if serializer.is_valid():
         serializer.save()
         response_data = {}
         response_data["success"] = "True"
         response_data["message"] = "Settings created successfully."
         return Response(response_data, status=status.HTTP_201_CREATED)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Exemple #19
0
 def update(self, request, pk=None):
     product = get_object_or_404(Product, pk=pk)
     slr = ProductSerializer(data=request.data,
                             instance=product,
                             context={'request': request})
     if slr.is_valid():
         slr.save()
         return Response(slr.data)
     else:
         return Response(slr.errors, status=400)
    def put(self, request, pk):
        product = get_object_or_404(Product, pk=pk)
        serializer = ProductSerializer(instance=product, data=request.data)
        if serializer.is_valid():
            serializer.save()
            logger.info(f'Product with ID {serializer.instance} was updated')
            logger.debug(f'Product with ID {serializer.instance} was updated')
            return Response(serializer.data)

        logger.error(f'Product with ID {serializer.instance} cannot be updated')
        return Response(serializer.errors, status=500)
Exemple #21
0
def product_list(request, format=None):
    if request.method == 'GET':
        products = Products.objects.all()
        serializer = ProductSerializer(products, many=True)
        return Response(serializer.data)
    elif request.method == 'POST':
        serializer = ProductSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        else:
            return Response(serializer.data, status=status.HTTP_400_BAD_REQUEST)
Exemple #22
0
def products_of_card(request):
    try:

        card = Card.objects.get(id=2)
    except Card.DoesNotExist as e:
        return Response({'error': str(e)})
    if request.method == 'GET':
        products = card.products.all()
        serializer = ProductSerializer(products, many=True)
        return Response(serializer.data)
    elif request.method == 'POST':
        serializer = ProductSerializer(data=request.data)
        return Response(serializer.data)
Exemple #23
0
def product_list(request):
    if request.method == 'GET':
        products = Product.objects.all()
        serializer = ProductSerializer(products, many=True)
        return Response(serializer.data)

    elif request.method == 'POST':
        serializer = ProductSerializer2(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response({'error': serializer.errors},
                        status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Exemple #24
0
 def post(self, request, id, format=None):
     serializer = ProductSerializer(data=request.data)
     if serializer.is_valid():
         serializer.save()
         response = Response(serializer.data,
                             status=status.HTTP_201_CREATED)
         Log.objects.create(request=request.get_full_path,
                            response=response)
         return response
     response = Response(serializer.errors,
                         status=status.HTTP_400_BAD_REQUEST)
     Log.objects.create(request=request.get_full_path, response=response)
     return response
Exemple #25
0
    def put(self, request, company_id, pk):
        if pk == '0' or company_id == '0':
            return JsonResponse({'detail': 'ID must be greater than zero.'},
                                status=status.HTTP_400_BAD_REQUEST)

        product = Product.objects.get(company_id=company_id, pk=pk)
        request.data["company"] = company_id
        serializer = ProductSerializer(product,
                                       data=request.data,
                                       partial=True)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Exemple #26
0
 def put(self, request):
     aid = request.GET.get('aid')
     ad = Product.objects.get(id=aid)
     serializer = ProductSerializer(ad, data=request.data)
     # validate and update
     if serializer.is_valid():
         serializer.save()
         response_data = {}
         response_data["success"] = "True"
         response_data["message"] = "Settings updated successfully."
         return Response(response_data, status=status.HTTP_200_OK)
     else:
         return Response(serializer.errors,
                         status=status.HTTP_400_BAD_REQUEST)
Exemple #27
0
 def get(self, request):
     if "prod" in dict(self.request.GET):
         id = self.request.GET.get("prod")
         queryset = Product.objects.filter(pk=id)
         serializer = ProductSerializer(queryset, many=True)
         img_query = Image.objects.filter(product_photo_connect_id=id)
         img_serializer = PictureSerializer(img_query, many=True)
         return Response({
             "data": serializer.data,
             'img_data': img_serializer.data
         })
     else:
         queryset = Product.objects.all()
         serializer = ProductSerializer(queryset, many=True)
         return Response({"data": serializer.data})
Exemple #28
0
def product_single(request, id, format=None):
    product = get_object_or_404(Products, id=id)
    if  request.method == 'GET':
        serializer = ProductSerializer(product)
        return Response(serializer.data)
    elif request.method == 'PUT':
        serializer = ProductSerializer(product, data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        else:
            return Response(serializer.data, status=status.HTTP_400_BAD_REQUEST)
    elif request.method == 'DELETE':
        product.delete()
        return Response(status=status.HTTP_204_NO_CONTENT)
Exemple #29
0
    def test_get_all_products(self):
        response = Client().get('/api/shop/products/')

        products = Product.objects.all()
        serializer = ProductSerializer(products, many=True)
        self.assertEqual(response.data, serializer.data)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
Exemple #30
0
    def create(self, request):
        product = request.data.get('product')
        serializer = ProductSerializer(data=product)

        if serializer.is_valid(raise_exception=True):
            db_product = Product.objects.create(product)
            product_serializer = ProductSerializer(db_product)

            return Response(product_serializer.data)

        else:
            data = {'error': 'Error Creating Product', 'status_code': 400}
            error_serializer = ErrorSerializer(data=data)
            error_serializer.is_valid(True)

            return Response(error_serializer.data)
Exemple #31
0
def recommendationget(request):
    Username = request.GET.get('username')
    Airport = request.GET.get('airport')

    personalizeRt = boto3.client('personalize-runtime',
                                 region_name='ap-south-1')

    response = personalizeRt.get_recommendations(
        campaignArn=
        'arn:aws:personalize:ap-south-1:413538326238:campaign/viman-campaign',
        userId=Username)

    listshop = []
    listrestro = []
    listhotel = []
    for i in response['itemList']:
        print(i['itemId'])
        pro = Product.objects.get(productid=i['itemId'])
        ud = userdetails.objects.get(user=pro.user)
        if ud.airport == Airport.upper():
            serial = ProductSerializer(pro)
            if ud.category == 'STORE':
                listshop.append(serial.data)
            elif ud.category == 'RESTAURANTS':
                listrestro.append(serial.data)
            elif ud.category == 'HOTEL':
                listhotel.append(serial.data)

    return JsonResponse({
        'store': listshop,
        'restro': listrestro,
        'hotel': listhotel
    })
Exemple #32
0
def product_list(request):
    """
    List all products, or create a new snippet.
    """
    if request.method == 'GET':
        products = Product.objects.all()
        serializer = ProductSerializer(products, many=True)
        return JSONResponse(serializer.data)

    elif request.method == 'POST':
        data = JSONParser().parse(request)
        serializer = ProductSerializer(data=data)
        if serializer.is_valid():
            serializer.save()
            return JSONResponse(serializer.data, status=201)
        return JSONResponse(serializer.errors, status=400)
    def test_to_dict(self):
        result = ProductSerializer(self.product).to_dict()

        self.assertEqual(
            result,
            {
                "name": "Test Product",
                "designer": "Test Designer",
                "site_url": "https://www.testsite.com",
                "condition": "New",
                "season": "SS20",
                "collection": "Test Collection",
                "category": "Handbags",
                "brand": "Test Brand",
                "material": "test materials made of lots of things",
                "size": "OS",
                "dimensions": "10in long and 18in wide and 3in depth",
                "sku": "TESTSKU89012",
                "product_price": "$1234.56",
                "stock": [{
                    "color": "purple",
                    "quantity": 1
                }],
                "images": ["https://www.imageurl.jpeg"],
            },
        )
Exemple #34
0
def product_detail(request, pk):
    """
    Retrieve, update or delete a product.
    """
    try:
        product = Product.objects.get(pk=pk)
    except Product.DoesNotExist:
        return HttpResponse(status=404)

    if request.method == 'GET':
        serializer = ProductSerializer(product)
        return JSONResponse(serializer.data)

    elif request.method == 'PUT':
        data = JSONParser().parse(request)
        serializer = ProductSerializer(product, data=data)
        if serializer.is_valid():
            serializer.save()
            return JSONResponse(serializer.data)
        return JSONResponse(serializer.errors, status=400)

    elif request.method == 'DELETE':
        product.delete()
        return HttpResponse(status=204)