예제 #1
0
 def post(self):
     data = request.get_json()
     user = data['user_id']
     dit = {key: value for key, value in data.items()}
     obj = db.session.query(Cart).filter(
         and_(Cart.user_id == user, Cart.status == False)).first()
     if obj is None:
         schema = CartSchema()
         new_cart = schema.load(dit, session=db.session).data
         db.session.add(new_cart)
         db.session.commit()
         data = schema.dump(new_cart).data
         logger.info("Product successfully added to cart ")
         return data
     else:
         logger.warning("you already have one item in cart")
         return ("you already have one item in cart")
예제 #2
0
파일: cart.py 프로젝트: gnda/microservices
def create_cart():
    data = request.get_json()
    if 'products' in data:
        products = data['products']
        if not products:
            return make_response("empty cart", 400)
        for key, product in enumerate(products):
            r = requests.get(os.environ['INVENTORY_ADDRESS'] +
                             '/api/products/' + str(product['id']))
            if not r.json()['product']:
                return make_response("non existent product", 404)
            if r.json()['product']['stock'] < int(product['quantity']):
                return make_response(
                    "not enough stock for product" + str(product['id']), 400)
            data['products'][key]['amount'] = str(
                int(r.json()['product']['price']) * int(product['quantity']))

    cart_schema = CartSchema()
    cart = cart_schema.load(data)
    result = cart_schema.dump(cart.create())
    return make_response(jsonify({"cart": result}), 200)