Exemple #1
0
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)
Exemple #2
0
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)