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")
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)