Example #1
0
 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
Example #2
0
 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
Example #3
0
 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
Example #5
0
 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
Example #6
0
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')