Exemple #1
0
def init_alerts():
    curr_alerts = dbUtil.get_alerts()

    if (len(curr_alerts) == 0):
        very_high_alert = Alert()
        very_high_alert.id = 0
        very_high_alert.value = 0  #initialize all alerts with 0 (will be ingored)
        very_high_alert.alert_type = "Very High Risk"

        high_alert = Alert()
        high_alert.id = 1
        high_alert.value = 0  #initialize all alerts with 0 (will be ingored)
        high_alert.alert_type = "High Risk"

        low_alert = Alert()
        low_alert.id = 2
        low_alert.value = 0  #initialize all alerts with 0 (will be ingored)
        low_alert.alert_type = "Low Risk"

        not_alert = Alert()
        not_alert.id = 3
        not_alert.value = 0  #initialize all alerts with 0 (will be ingored)
        not_alert.alert_type = "Not at Risk"

        dbUtil.add_alert(very_high_alert)
        dbUtil.add_alert(high_alert)
        dbUtil.add_alert(low_alert)
        dbUtil.add_alert(not_alert)

        print("DEFAULT ALERTS SEEDED SUCCESSFULLY")
    dbUtil.get_alerts()
Exemple #2
0
def alert_api():
    if request.method == 'GET' and api.requires_scope("read:alert"):
        user_id = request.args.get('user_id')
        alerts = Alert().find(user_id)
        result = Alert().to_summary(alerts)
        return jsonify(result)
    raise exceptions.AuthError(
        {
            "code": "Unauthorized",
            "description": "Scope not matched.  Access Denied."
        }, 403
    )
def new_alert():
    """
    For making a new alert we have to follow the following steps
    ~ Get the form data
    ~ Find the store to which the alert is associated to
    ~ Create an Item object
    ~ Find the price of that particular item
    ~ Save the item into the database
    ~ Create an Alert object
    ~ Save the Alert object into the database
    :return: render_template()
    """
    if request.method == 'POST':
        item_url = request.form['item_url']
        price_limit = float(request.form['price_limit'])
        alert_name = request.form['name']

        store = Store.find_by_url(item_url)
        item = Item(item_url, store.tag_name, store.query)

        item.load_price()
        item.save_to_mongo()

        Alert(alert_name, item._id, price_limit,
              session['email']).save_to_mongo()

    return render_template('alerts/new_alert.html')
Exemple #4
0
def new_alert():
    if request.method == 'POST':
        item_id = request.form['item_id']
        price_limit = request.form['price_limit']

        Alert(item_id, price_limit).save_to_mongo()

    return render_template('alerts/new_alert.html')
Exemple #5
0
def create_alert():
    if request.method == 'POST':
        item_id = request.form['item_id']
        price_limit = request.form['price_limit']

        Alert(item_id, price_limit).save_to_mongo()

    # What happens if it's a GET request
    return render_template("alerts/new_alert.html")
Exemple #6
0
def new_alert():
    if request.method == "POST":
        item_id = request.form["item_id"]
        price_limit = request.form["price_limit"]

        Alert(item_id, price_limit).save_to_mongo()
        return make_response(index())

    return render_template("alerts/new_alert.html")
 def post(self):
     jsonString = self.alert_post_args.parse_args()
     alertDict = {}
     #jsonString = json.loads(args['text'])
     #alertDict = json.load(jsonString)
     print(jsonString['alertType'])
     alertitem = Alert(alertMessage=jsonString['alertMessage'],alertValue=jsonString['alertValue'], symbol=jsonString['symbol'], timestamp=datetime.now(),timeFrame=jsonString['timeFrame'],alertType=jsonString['alertType'],bearBull=jsonString['bearBull'])
     db.session.add(alertitem)
     db.session.commit()
     return alertitem, 201
Exemple #8
0
def new_alert():
    if request.method == "POST":
        alert_name = request.form["name"]
        item_url = request.form["item.url"]
        price_limit = float(request.form["price_limit"])
        store = Store.find_by_url(item_url)
        item = Item(item_url, store.tag_name, store.query)
        item.load_price()
        item.save_to_mongo()
        Alert(alert_name, item._id, price_limit, session["email"]).save_to_mongo()
    return render_template("alerts/new_alert.html")
Exemple #9
0
    def run(self):
        choices = [Alert.WARNING, Alert.CAUTION, Alert.DANGER]
        lat_min = -33.0
        lon_min = -64.0

        for i in xrange(10):
            alert = Alert(latitude=lat_min + random.random(),
                          longitude=lon_min + random.random(),
                          severity=random.choice(choices))

            db.session.add(alert)
            db.session.commit()
Exemple #10
0
def new_alert():
    if request.method == 'POST':
        name = request.form['name']
        item_url = request.form['item_url']
        price_limit = float(request.form['price_limit'])
        store = Store.find_by_url(item_url)
        item = Item(item_url, store.tag_name, store.query, name)
        item.load_price()
        item.save_to_mongo()
        Alert(price_limit, item._id, session['user_id']).save_to_mongo()
        return redirect(url_for('.all_alerts'))
    return render_template('alerts/new_alert.html')
Exemple #11
0
def new_alert():
    if request.method == 'POST':
        alert_name = request.form['name']
        item_url = request.form['item_url']
        price_limit = float(request.form['price_limit'])
        store = Store.find_by_url(item_url)
        item = Item(item_url, store.tag_name, store.query)
        item.load_price()
        item.save_to_mongo()
        Alert(alert_name, item._id, price_limit,
              session['email']).save_to_mongo()
    return render_template('alerts/new_alert.html')
def addAlert():
    if request.method == 'POST':
        u = request.form.get('url')
        l = request.form.get('limit')
        n = request.form.get('name')
        s = Stores.getByUrl(u)
        i = Item(u, s.tag_name, s.que, s.trim)
        i.load_price()
        i.addToDb()
        a = Alert(n, i._id, float(l), session['n'])
        a.savetodb()
        return "cee ya soon"
    return render_template('alerts/newalert.html')
def new_alert():
    if request.method == "POST":
        item_url = request.form["item_url"]
        price_limit = float(request.form["price_limit"])

        store = Store.find_by_url(item_url)
        item = Item(item_url, store.tag_name, store.query)
        item.save_to_mongo()

        Alert(item._id, price_limit).save_to_mongo()
        return make_response(index())

    return render_template("alerts/new_alert.html")
Exemple #14
0
def create_alert():
    if request.method == 'POST':
        item_url = request.form['item_url']

        store = Store.find_by_url(item_url)
        item = Item(item_url, store.tag_name, store.query)
        item.save_to_mongo()

        price_limit = request.form['price_limit']

        Alert(item._id, price_limit).save_to_mongo()

    # What happens if it's a GET request
    return render_template("alerts/new_alert.html")
Exemple #15
0
def new_alert():
    if request.method == 'POST':
        alert_name = request.form["alert_name"]
        item_url = request.form['item_url']
        price_limit = request.form["price_limit"]

        store = Store.get_by_url(item_url)  # What if this store is not database
        item = Item(item_url, store.tag_name, store.query)
        item.load_price()
        item.save_to_database()
        alert = Alert(alert_name, item._id, float(price_limit), session["email"])
        alert.save_to_database()

    return render_template("alerts/new_alert.html")
Exemple #16
0
def create_alert():
    if request.method == 'POST':
        item_url = request.form["item_url"]

        store = Store.find_by_url(item_url)
        item = Item(item_url, store.tag_name, store.query)
        item.load_price()
        item.save_to_mongo()

        alert_name = request.form['name']
        price_limit = float(request.form["price_limit"])
        Alert(alert_name, item._id, price_limit,
              session['email']).save_to_mongo()
    # What happens if it's a GET request
    return render_template("alerts/new_alert.html")
Exemple #17
0
def create_alert():
    if request.method == 'POST':
        item_url = request.form['item_url']
        store = Store.find_by_url(item_url)
        item = Item(item_url, store.tag_name, store.query)
        item.load_price()
        item.save_to_mongo()

        alert_name = request.form['name']
        price_limit = request.form['price_limit']

        Alert(alert_name, item._id, price_limit).save_to_mongo()
        return redirect(url_for('.index'))

    # What happens if it's a GET request
    return render_template("alerts/new_alert.html")
def create_alert():
    if request.method == 'POST':
        subject_url = request.form['subject_url']

        course = Course.find_by_url(subject_url)
        subject = Subject(subject_url, course.tag_name, course.query)
        subject.load_price()
        subject.save_to_mongo()

        alert_name = request.form['name']
        price_limit = request.form['price_limit']

        Alert(alert_name, subject._id, price_limit, session['email']).save_to_mongo()

    # What happens if it's a GET request
    return render_template("alerts/new_alert.html")
Exemple #19
0
def create_alert():
    if request.method == 'POST':
        name = request.form['name']
        url = request.form['url']
        price_limit = float(request.form['price_limit'])

        item = Item(name, url)
        item.save_to_mongo()

        alert = Alert(session['email'], price_limit, item._id)
        alert.load_item_price()  # This already saves to MongoDB

    # What happens if it's a GET request
    return render_template(
        "alerts/new_alert.html"
    )  # Send the user an error if their login was invalid
Exemple #20
0
def new_alert():
    if request.method == 'POST':
        alert_name = request.form['name']
        item_url = request.form['item_url']
        price_limit = float(request.form['price_limit'])

        store = Store.find_by_url(item_url)
        item = Item(item_url, store.tag_name, store.query)
        item.load_price()
        item.persist()
        alert = Alert(alert_name, item._id, price_limit, session['email'])
        alert.persist()
        alerts = Alert.all()
        return redirect(url_for('.index', alerts=alerts))
    else:
        return render_template('/alerts/new_alert.html')
Exemple #21
0
def new_alert():
    if request.method == 'POST':
        item_url = request.form['item_url']
        price_limit = float(request.form['price_limit'])
        name = request.form['name']
        store = Store.find_by_url(item_url)

        item = Item(item_url, store.tag_name, store.query)
        item.load_price()
        item.save_to_mongo()

        Alert(item._id, name, price_limit, session['email']).save_to_mongo()

        return redirect(url_for('.index'))

    return render_template("alerts/new_alert.html")
Exemple #22
0
def create_alert(cats_id):
    """ Create an alert """
    try:
        if len(storage.getobject(CategorySub, "id", cats_id)) == 0:
            return jsonify({"Error": "CategorySub id not found"})
        data = request.get_json(force=True)
        for at in attr:
            if at not in data.keys():
                return jsonify({"Error": "Missing " + at})
        new_obj = Alert()
        set_obj(new_obj, **data)
        new_obj.low = (new_obj.middle - 1)
        new_obj.CategorySub_id = cats_id
        storage.insert(new_obj)
        return jsonify(new_obj.to_dict())
    except Exception:
        abort(404)
Exemple #23
0
def create_alert():
    if request.method == 'POST':
        item_url = request.form['item_url']
        alert_name = request.form['name']
        price_limit = float(request.form['price_limit'])
        print('ITEM URL', item_url)

        store = Store.find_by_url(item_url)
        item = Dolar(item_url, store.tag_name)
        item.buscar_precio()
        item.save_to_mongo()

        Alert(alert_name, item._id, price_limit,
              session['email']).save_to_mongo()

    # What happens if it's a GET request
    return render_template("alerts/new_alert.html")
Exemple #24
0
def new():
    """Adds a new alert."""
    if request.method == 'POST':
        item_name = request.form['item-name']
        item_url = request.form['item-url']
        price_limit = float(request.form['price-limit'])

        store = Store.find_by_url(item_url)
        item = Item(item_url, store.html_tag_name, store.html_tag_attributes)
        item.fetch_price()
        item.save_to_db()

        alert = Alert(item_name, item._id, price_limit, session['email'])
        alert.save_to_db()

        return redirect(url_for('.index'))

    return render_template('alerts/new.html')
Exemple #25
0
def new_alert():
    """
    browser make a get request when access endpoint, endpoint will be respond to it with the html be rendered
    if receive a post request which is the form is gonna make, to take the data in form and process it
    """
    if request.method == 'POST':
        alert_name = request.form['name']
        price_limit = float(request.form['price_limit'])
        item_url = request.form['item_url']  # access the url field in the form data that's come in the request
        # such as: http://www.johnlewis.com/item/index.html

        store = Store.find_by_url(item_url)
        item = Item(item_url, store.tag_name, store.query)
        item.load_price()  # when they go to alerts.index page, item will have a price, don't need call load price on it
        item.save_to_mongo()

        Alert(alert_name, item._id, price_limit, session['email']).save_to_mongo()

    return render_template('alerts/new_alert.html')
Exemple #26
0
def new() -> Union[str, Response]:
    """
    Handles the RESTful NEW (GET method) and CREATE (POST method) routes.

    Returns
    -------
    str
        The INDEX template if POST method, NEW template otherwise.
    """
    if request.method == 'POST':
        try:
            alert_name = request.form['name']
            item_url = request.form['item_url']
            price_limit = float(request.form['price_limit'])

            store = Store.find_by_url(item_url)

            item = Item(item_url, store.tag_name, store.query)
            item.load_price()
            logger.debug(f"item: {item}")
            item.save_to_mongo()

            alert = Alert(alert_name, price_limit, session['email'], item._id)
            logger.debug(f"alert: {alert}")
            alert.save_to_mongo()

            alert.notify_if_price_reached()

            return redirect(url_for('.index'))
        except requests.exceptions.RequestException as err:
            logger.debug(f"Error with Alert NEW POST request: {err}")
            flash(
                "Sorry, there was an issue connecting to that website!" +
                " Try again later, or try another website.", 'danger')
        except Exception as err:
            logger.debug(f"Error with Alert NEW POST request: {err}")
            flash(
                "There was problem creating your Alert, please check your form input again.",
                'danger')
        return redirect(url_for('.new'))

    return render_template('alerts/new.html')
Exemple #27
0
def new_alert():
    if request.method == 'POST':
        item_url = request.form['item_url']
        price_limit = float(request.form['price_limit'].strip())
        name = request.form['name']

        store = Store.find_by_url(item_url)

        item = Item(item_url, store.tag_name, store.query)
        item.load_price()
        item.save_to_mongo()

        Alert(item._id, name, price_limit, session['email']).save_to_mongo()
        alerts = Alert.find_many_by('user_email', session['email'])
        for i in alerts:
            i.__post__init__()
        return render_template("alerts/index.html",
                               alerts=alerts,
                               current=session['email'])
    return render_template("alerts/new_alert.html")
Exemple #28
0
def new_alert():
    if request.method == 'POST':
        item_name = request.form['item_name']
        item_url = request.form['item_url']
        user_email = session['email']
        price_limit = float(request.form['price_limit'])
        store = Store.get_by_url_self_made(item_url)
        print(store)
        if len(store) is 0:
            text1 = "The store doesnot exist in our database, please contact develpoers to add store."
            return render_template('alerts/new_alert.html', text=text1)
        else:
            for s in store:
                item = Item(item_url, s.tag_name, s.query)
            item.load_price()
            item.save_to_mongo()
            Alert(item_name, item._id, user_email, price_limit,
                  item_url).save_to_mongo()
            text1 = "The alert has been saved to the database, if you want to save another item fill details and click button."
            return render_template('alerts/new_alert.html', text=text1)
    return render_template('alerts/new_alert.html')
Exemple #29
0
def new_alert():
    if request.method == 'POST':
        # alert_name = request.form['name']
        item_url = request.form['item_url']
        # price_limit = float(request.form['price_limit'])

        store = Store.find_by_url(item_url)
        item = Item(item_url, store.tag_name, store.query)
        item.load_price()
        item.save_to_mongo()

        alert_name = request.form["name"]
        price_limit = float(request.form["price_limit"])

        Alert(alert_name, item._id, price_limit,
              session['email']).save_to_mongo()
        # Warning is due to item._id is private object and not supposed to be modified outside of class.
        # However in this case, it is okay as it is used to retrieve data.

    # What happens if it's a GET request
    return render_template('alerts/new_alert.html')
Exemple #30
0
def new_alert(): ## Must be logged in to save an alert
    """
    This endpoint allows a user to enter a new alert and save to the database
    :return: Alert index for the application once alert is successfully added
    """

    if request.method == 'POST':
        alert_name = request.form['name']
        item_url = request.form['item_url']
        price_limit = float(request.form['price_limit'])

        store = Store.find_by_url(item_url)
        item = Item(item_url, store.tag_name, store.query)
        item.load_price()
        item.save_to_mongo()

        ## Using protected here is fine since we are not changing item._id
        Alert(alert_name, item._id, price_limit, session['email']).save_to_mongo()

        return redirect(url_for('.index'))

    return render_template('alerts/new_alert.html')