Esempio n. 1
0
def unwatch():
    response = 'failed'
    if g.user:
        # setup document
        identifier = request.form.get('id')
        # create or update document
        doc = Watch.objects(identifier=identifier, watchers__email=g.user.email).update_one(set__watchers__S__watching=False)
        response = 'success' if doc else 'error'
        # email user    
        email = g.user.email
        itinerary = alaskaUtils.itinerary_from_identifier(identifier)
        body = mail.watching_template(request, itinerary, email)
        #mail.send_email(g.user.email, 'Fare Alert Removed', body)   
    return jsonify(status=response)  
Esempio n. 2
0
def watch():
    response = 'failed'
    if g.user:
        # setup document
        identifier = request.form.get('id')
        search_params = security.json_decrypt(request.form.get('search'))
        price = Price(price=request.form.get('price'))
        watcher = Watcher(
            email = g.user.email,
            watching = True,
            reservation = dict(
                code = request.form.get('code'),
                name = request.form.get('name'),
                paid = request.form.get('paid')
                ),
            #claims = [price] if request.form.get('claim') else []
            )
        #watch.update_one(add_to_set__watchers__S__claims=Price(price=price))
        # create or update document
        watch = Watch.objects(identifier=identifier).first()
        if watch:
            #Watch.objects(identifier=identifier).filter(watchers__email=email).update_one(add_to_set__watchers__S__claims=Price(price=price))
            # inefficient way to check if user previously unwatched
            # really shouldn't do it this way
            rewatch = Watch.objects(identifier=identifier, watchers__email=g.user.email).update_one(set__watchers__S__watching=True)
            if not rewatch:
                watch.update(add_to_set__prices=price, add_to_set__watchers=watcher)
        else:
            watch = Watch(
                expires = datetime.datetime.strptime(search_params.get('DepartureDate1'),'%m/%d/%Y'),
                identifier = request.form.get('id'),
                prices = [price],
                search_params = search_params,
                watchers = [watcher]
                )
            watch.save()
        print(request.form)
        if request.form.get('claim') == 'true':
            Watch.objects(identifier=identifier).filter(watchers__email=g.user.email).update_one(add_to_set__watchers__S__claims=price)
        # email user    
        email = g.user.email
        itinerary = alaskaUtils.itinerary_from_identifier(request.form['id'])
        body = mail.watching_template(request, itinerary, g.user.email)
        mail.send_email(g.user.email, 'Fare Alert Added', body)   
        response = 'success'
    return jsonify(status=response)