def get(self, name: str) -> Union[Dict, Tuple]: try: item = Item.get_by_name(name) if item: return item.as_json() return {'error': f"'{name}' not found"}, 404 except Exception: return {"error": "Internal server error"}, 500
def delete(self, name: str) -> Union[Dict, Tuple]: item = Item.get_by_name(name) if not item: return {'error': 'Item not found'}, 404 try: item.delete() return {'msg': 'Item deleted successfully'} except Exception: return {"error": "Internal server error"}, 500
def post(self, name: str) -> Tuple: data = self._parser.parse_args() if Item.get_by_name(name): return {'error': 'Item already exists'}, 404 try: item = Item(name, **data) item.save() return {'msg': 'Item added successfully'}, 201 except Exception: return {"error": "Internal server error"}, 500
def get(self, name): items = Item.get_by_name(name=name) if len(items) == 0: return { "message": "Items with this name cannot be found" }, HTTPStatus.NOT_FOUND return item_list_schema.dump(items).data, HTTPStatus.OK
def put(self, name: str) -> Union[Dict, Tuple]: data = self._parser.parse_args() try: item = Item.get_by_name(name) if not item: item = Item(name, **data) item.save() return {'msg': 'Item added successfully'}, 201 else: item.price = data['price'] item.save() return {'msg': 'Item updated successfully'} except Exception: return {"error": "Internal server error"}, 500
def new_alert(): if request.method == 'POST': # process the Data from the Form. # access the Item_ID, & Item_Price from the form alert_name = request.form['name_of_alert'] item_url = request.form['item_url'] price_limit = float( request.form['price_limit']) # Str needs to converted to Float store = Store.find_by_url(item_url) item = Item(alert_name, item_url, store.tag_name, store.query) print(f"ITEM LOAD PRICE::: {item}") item.load_price() print(f"ITEM PRICE is found = {item.price}") print(f"ITEM AFTER PRICE is found ===== {item}") print(f"URL = {item_url}") my_item = Item.get_by_name(alert_name) print(f"FIND ITEM found ===== {my_item}") if my_item is None: print("SAVING ITEM ::::::::::: INTO MONGO") item.save_to_mongo() else: # assign found item's item._id to be passed to Alert module. item._id = my_item._id # item.save_to_mongo() # The warning below is fine as we are using but not changing the protected variable #print(f"Aname: {alert_name} IT_id = {item._id} 2ndIT_id = {my_item._id} PRICE = {price_limit} MAIL: {session['rks_email']}") Alert(alert_name, item._id, price_limit, session['rks_email']).save_to_mongo() return render_template('alerts/new_alert.html')