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)
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)