def add_item(data): item = Item() item.name = data['name'] item.cat_id = data['cat_id'] session.add(item) session.commit() session.close()
def updateItem(): try: cart_id = request.json['cart_id'] package_id = request.json['package_id'] qty = request.json['quantity'] # get cart cart = (ShoppingCart.query.filter_by(cart_id=cart_id)).first() # delete the cart item item_to_update = Item.query.filter_by(package_id=package_id).filter_by(cart_id=cart_id).first() if item_to_update: item_to_update.qty = qty db.session.add(item_to_update) cart.updated_time = datetime.now() db.session.commit() # get cart items cart_items = Item.query.filter_by(cart_id=cart_id).all() whole_cart = [] for item in cart_items: i = Item(item.package_id, item.price, item.qty, item.package_name) cart.update(i) for k, v in cart.content.items(): print(k, '->', v.to_json()) whole_cart.append(v.to_json()) cart.total = cart.get_total() response_object = { 'status': 'success', 'cartInfo': cart.to_json(), 'cart_Items': whole_cart } return make_response(jsonify(response_object)), 200 responseObject = { 'status': 'success', 'user_id': cart.user_id, 'total_amount': cart.total } return make_response(jsonify(responseObject)), 200 except Exception as e: print(e) responseObject = { 'status': 'fail', 'message': 'Something went wrong!' } return make_response(jsonify(responseObject)), 500
def getCartItems(): try: try: # get cart_Id and return all items in cart! cart_id = request.json['cart_id'] # get cartItems from Item table. cart = (ShoppingCart.query.filter_by(cart_id=cart_id)).first() cartItems = Item.query.filter_by(cart_id=cart_id).all() except Exception as e: # get user_id and return all items in an OPEN cart! user_id = request.json['user_id'] # cart = (ShoppingCart.query.filter_by(user_id=user_id)).filter_by(cart_status="OPEN").first() cart = (ShoppingCart.query.filter_by(user_id=user_id, cart_status="OPEN")).first() if(cart is not None): cartItems = Item.query.filter_by(cart_id=cart.cart_id).all() else: responseObject = { 'status': 'fail', 'message': 'No OPEN cart found for this user' } return make_response(jsonify(responseObject)), 404 userCartObject = [] for each in cartItems: i = Item(each.package_id, each.price, each.qty, each.package_name) cart.update(i) for k, v in cart.content.items(): print(k, '->', v.to_json()) userCartObject.append(v.to_json()) # return cartId if add to cart is success. cart.total = cart.get_total() responseObject = { 'status': 'success', 'cartInfo': cart.to_json(), 'cart_Items': userCartObject } return make_response(jsonify(responseObject)), 200 except Exception as e: print(e) responseObject = { 'status': 'fail', 'message': 'Something went wrong!' } return make_response(jsonify(responseObject)), 500
def deleteFromCart(): try: # parse request -> get cart_id, package_id and quantity to be deleted. package_id = request.json['package_id'] cart_id = request.json['cart_id'] # get cart cart = (ShoppingCart.query.filter_by(cart_id=cart_id)).first() # delete the cart item item_to_delete = Item.query.filter_by(package_id=package_id).filter_by( cart_id=cart_id).first() if item_to_delete: db.session.delete(item_to_delete) cart.updated_time = datetime.now() db.session.commit() # get cart items cart_items = Item.query.filter_by(cart_id=cart_id).all() whole_cart = [] for item in cart_items: i = Item(item.package_id, item.price, item.qty, item.package_name) cart.update(i) for k, v in cart.content.items(): print(k, '->', v.to_json()) whole_cart.append(v.to_json()) response_object = { 'status': 'success', 'cartInfo': cart.to_json(), 'cart_Items': whole_cart } return make_response(jsonify(response_object)), 200 except Exception as e: print(e) response_object = { 'status': 'fail', 'message': 'Delete Operation gone wrong!' } return make_response(jsonify(response_object)), 500
def addToCart(): try: # parse request auth_header = request.headers.get('Authorization') if auth_header: auth_token = auth_header.split(" ")[1] post_data = request.get_json() user = request.json['user_id'] package_id = request.json['package_id'] count = request.json['qty'] # try to get cart_id from request -> decides later to create a new cart or not. try: cart_id = request.json['cart_id'] except KeyError: cart_id = -1 # get all information about the item if ADVERTISE_API_OK: headers = { 'Authorization': 'Bearer ' + auth_token, 'Content-Type': 'application/json' } response = requests.get(url=ADVERTISE_URL + "/" + str(package_id), headers=headers) r = Product(response.json()['packages']["id"], response.json()['packages']["package_name"], response.json()['packages']["price"], response.json()['packages']["available_qty"]) print(r.to_json()) else: r = Product(package_id, "p1", 100, 100) if count > int(r.qty): responseObject = { 'status': 'fail', 'message': 'Item requested is more than available quantity' } return jsonify(responseObject), 201 else: # create the item object to be added to cart item = Item(package_id, r.price, count, r.name) itemToCommit = Item(package_id, r.price, count, r.name) if cart_id == -1: # create a new cart cart = ShoppingCart(user) cart.total = r.price cart.created_time = datetime.now() cart.payment_status = False cart.cart_status = 'OPEN' db.session.add(cart) db.session.commit() item.updateCartId(cart.cart_id) db.session.add(item) db.session.commit() else: # look into ShoppingCart db to get cart and use the same cart to add items cart = (ShoppingCart.query.filter_by(cart_id=cart_id)).first() # confirm if the cart is OPEN if cart.cart_status == 'OPEN': # get cartItems from Item table. cartItems = Item.query.filter_by( cart_id=cart.cart_id).all() for each in cartItems: i = Item(each.package_id, each.price, each.qty, each.package_name) cart.update(i) # calculate cart total cart.update(itemToCommit) cart.total = cart.get_total() cart.updated_time = datetime.now() cart.payment_status = False cart.cart_status = "OPEN" db.session.add(cart) db.session.commit() # commit item to db first. # commit item with respective cart_ids to database itemToCommit.updateCartId(cart_id) db.session.add(itemToCommit) db.session.commit() # return cartId if add to cart is success. responseObject = {'status': 'success', 'cart_Info': cart.to_json()} return make_response(jsonify(responseObject)), 200 except Exception as e: print(e) responseObject = {'status': 'fail', 'message': 'Something went wrong!'} return make_response(jsonify(responseObject)), 500
def load_game(): """Loads the game spreadsheet with details of places and moves""" wb = load_workbook(filename="game_files/nasty_house.xlsx") start_place = None places = {} selects = {} sheet_names = wb.get_sheet_names() sheet = "" while sheet not in sheet_names: print("Please choose one of the following games:") for sheet_name in sheet_names: print(sheet_name) sheet=input("Please enter the name of the game you would like to play: ") sheet_ranges = wb.get_sheet_by_name(sheet) for row in sheet_ranges.iter_rows(row_offset = 0): command = row[0].value if command == "PLACE": place_id = row[1].value place_name = row[2].value place_description = row[3].value place_death = row[4].value == 1 place_won = row[5].value == 1 place = Place(place_name, place_description, place_death, place_won) if start_place is None: start_place = place places[place_id] = place elif command == "MOVE": direction = row[1].value start = row[2].value end = row[3].value places[start].add_place(Direction[direction] , places[end]) elif command == "ITEM": item_name = row[1].value item_description = row[2].value place_found = places[row[3].value] place_used = places[row[4].value] destination = places[row[5].value] item = Item (item_name, item_description, place_found, place_used, destination) place_found.add_item(item) elif command == "SELECT": select_id = row[1].value select_place_id = row[2].value select_text = row[3].value select_place = places[select_place_id] select = Select(select_place, select_text) selects[select_id] = select select_place.add_select(select) elif command == "OPTION": select_id = row[1].value option_id = str(row[2].value) option_text = row[3].value option_destination_id = row[4].value option_destination = places[option_destination_id] option = Option(option_text, option_destination) select = selects[select_id] select.add_option(option_id, option) inventory = [] return (start_place, inventory)