def lists(list_id): if 'access_token' in session: print 'list_id: %s, access_token: %s' % (list_id, request.args.get('access_token')) access_token = session.get('access_token', None) db = connect_db () try: user_info = auth.authenticate_using_access_token(access_token, db) user_id = user_info['id'] list_info = dm.fetch_list(list_id, user_id, db) except AccessTokenExpiredError: flash("Access Token Expired. Login again") return redirect(url_for('login')) except InvalidAccessTokenError: flash("In Valid Access Token. Login again") return redirect(url_for('login')) except NoListFoundError: flash("No List found with this id:%d" %(list_id)) return redirect(url_for('users')) else: return redirect(url_for('login')) if request.method == 'GET': response = make_response(render_template('list_info.html', list_info=list_info)) return no_cache(response) else: # import pdb;pdb.set_trace() #input_values = map(lambda x:x(0), request.form) print request.form id = request.form.getlist('item_id') non_empty_id = filter(lambda x:x != "", id) print non_empty_id clean_input = zip( request.form.getlist('item_id'), request.form.getlist('status'), request.form.getlist('fields'), request.form.getlist('quantity') ) print clean_input for x in clean_input: id = x[0] status = x[1] name = x[2] quantity = x[3] if id in non_empty_id: try: print id list_item_info = dm.update_item(user_id, list_id, id, name, status, quantity, db) except NoItemFoundError: flash("No item found") return redirect(url_for('users')) except NoListFoundError: flash("No List found with this id:%d" %(list_id)) return redirect(url_for('users')) else: try: list_item_info = dm.add_item_to_list(list_id, user_id, name, status, quantity, db) except NoListFoundError: flash("No list found with list_id :%s" % list_id) return redirect(url_for('users')) list_info = dm.fetch_list(list_id, user_id, db) response = make_response(render_template('list_info.html', list_info=list_info)) return no_cache(response)
def add_item(list_id): query_access_token = request.args.get('access_token') db = connect_db () try: user_info = auth.authenticate_using_access_token(query_access_token, db) user_id = user_info['id'] except AccessTokenExpiredError: response_data = { "meta" : {}, "data" : { "users" : [{ "authentication" : 'Expired', "message" : "Access token Expired" }] } } status = 401 body = json.dumps(response_data) headers = { 'Content-Type' : 'application/json' } return (body, status, headers) except InvalidAccessTokenError: response_data = { "meta" : {}, "data" : { "users" : [ { "message" : "Invalid access token : %s" % (query_access_token) } ] } } status = 400 body = json.dumps(response_data) headers = { 'Content-Type' : 'application/json' } return (body, status, headers) try: data = request.json['data'] name = data['lists'][0]['items'][0]['name'] status = data['lists'][0]['items'][0]['status'] quantity = data['lists'][0]['items'][0]['quantity'] list_item_info = dm.add_item_to_list(list_id, user_id, name, status, quantity, db) except NoListFoundError: response_data = { "meta" : {}, "data" : { "lists" : [{ "message" : "No List found of this user" }] } } body = json.dumps(response_data) status = 400 headers = { "Content-Type" : 'application/json' } return (body,status,headers) response_data = { "meta" : {}, "data" : { "lists" : [ list_item_info ] } } status = 400 body = json.dumps(response_data) headers = { "Content-Type" : 'application/json' } return (body,status,headers)