예제 #1
0
def newItem():
    bid = request.form['blibb_id']
    key = request.form['login_key']
    tags = request.form['tags']
    app_token = request.form['app_token']

    user = get_user_name(key)
    current_app.logger.info('labels: ' + str(user))
    if is_valid_id(bid):
        b = Blibb.get_object({'_id': ObjectId(bid)}, {'u': 1, 't.i': 1})
        controls = Blibb.get_controls_as_dict(b.get('t'))
        current_app.logger.info(controls)
        if Blibb.can_write(user, app_token, bid):
            # labels = Blibb.get_labels(b.get('t'))
            # current_app.logger.info('labels: ' + str(labels))
            bitems = Blitem.get_items_from_request(controls, request)
            current_app.logger.info('items from request: ' + str(bitems))
            blitem_id = Blitem.insert(bid, user, bitems, tags)
            if blitem_id:
                cond = {'_id': ObjectId(bid)}
                Blibb.inc_num_item(cond)
                Blitem.post_process(blitem_id, bitems)
                return blitem_id
        else:
            abort(401)
    return jsonify(Message.get('id_not_valid'))
예제 #2
0
def addItemtoBlibb(username=None, slug=None):
    if username is None or slug is None:
        abort(404)

    user = ''
    app_token = ''
    if 'login_key' in request.form:
        key = request.form['login_key']
        user = get_key(key)
    else:
        app_token = request.form['app_token'] if \
            'app_token' in request.form else ''

    tags = request.form['tags'] if 'tags' in request.form else ''
    blibb = Blibb.get_object({'u': username, 's': slug}, {'_id': 1, 't.i': 1})
    if blibb:
        blibb_id = blibb['_id']
        controls = Blibb.get_controls_as_dict(blibb.get('t'))
        current_app.logger.info(str(user) + ' - ' + str(app_token) + ' - '
           + str(blibb_id) + ' - ' + username + ' - ' + slug)
        if Blibb.can_write(user, app_token, blibb_id):
            bitems = Blitem.get_items_from_request(controls, request)
            if len(bitems) > 0:
                blitem_id = Blitem.insert(blibb_id, user, bitems, tags)
                if is_valid_id(blitem_id):
                    cond = {'s': slug, 'u': username}
                    Blibb.inc_num_item(cond)
                    Blitem.post_process(blitem_id, bitems)
                    res = {'id': blitem_id}
                    return jsonify(res)
            else:
                return jsonify({'error': 'your POST data was not complete'})
        else:
            abort(401)
    else:
        abort(404)