示例#1
0
def store():
    authz.require(authz.system_edit())
    pairing = Pairing.update(request_data(), current_user)
    pairing.apply()
    db.session.commit()
    generate_pairings.delay()
    return jsonify(pairing)
示例#2
0
def initiate():
    authz.require(authz.system_edit())
    root = request_data().get("root")
    if root is None:
        return jsonify({"status": "error", "message": "No root entity provided."}, status=400)
    enrich_entity.delay(root, root, request_data().get("spider"))
    return jsonify({"status": "ok", "root": root})
示例#3
0
def load_next():
    authz.require(authz.system_edit())
    next = request_pairing(exclude=request.args.getlist("exclude"))
    db.session.commit()
    if next is None:
        return jsonify({"status": "done"})
    return jsonify({"status": "next", "next": next.id})
示例#4
0
def update(id):
    authz.require(authz.system_edit())
    entity = obj_or_404(EntityQuery.by_id(id))
    context = Context.create(current_user, {})
    entity.update(request_data(), context)
    db.session.commit()
    return redirect(url_for(".view", id=entity.id))
示例#5
0
def load_next(root):
    authz.require(authz.system_edit())
    q = Context.by_root(root)
    q = q.filter(Context.enrich_status == PENDING)
    q = q.order_by(Context.enrich_score.desc())
    context = q.first()
    if context is None:
        # TODO: spider status system
        return jsonify({"status": "wait"})
    return jsonify({"status": "next", "next": context.id})
示例#6
0
def view(id):
    authz.require(authz.system_edit())
    pairing = obj_or_404(Pairing.by_id(id))
    return jsonify(
        {
            "status": "ok",
            "left": EntityQuery.by_id(pairing.left_id),
            "right": EntityQuery.by_id(pairing.right_id),
            "pairing": pairing,
        }
    )
示例#7
0
def status():
    return jsonify({
        'logged_in': authz.logged_in(),
        'api_key': current_user.api_key if authz.logged_in() else None,
        'user': current_user if authz.logged_in() else None,
        'permissions': {
            READ: authz.system_read(),
            EDIT: authz.system_edit(),
            MANAGE: authz.system_manage()
        },
        'logout': url_for('.logout')
    })
示例#8
0
def store(root):
    authz.require(authz.system_edit())
    ctx_data = request_data()
    q = Context.by_root(root)
    q = q.filter(Context.id == ctx_data.get("id"))
    context = q.first()
    if context is None:
        return jsonify({"status": "failed"}, status=400)
    context.update(request_data())
    context.active = context.enrich_status == ACCEPTED
    context.user = current_user
    db.session.commit()
    # TODO: task newly activated entities.
    return jsonify({"status": "ok"})
示例#9
0
def view(root, id):
    authz.require(authz.system_edit())
    q = Context.by_root(root)
    q = q.filter(Context.id == id)
    context = obj_or_404(q.first())
    statements = []
    entities = set()
    for stmt in context.statements:
        entities.add(stmt.subject)
        if qualified[stmt.attribute].data_type == "entity":
            entities.add(stmt._value)
        statements.append(stmt.to_dict(raw=True))
    q = [{"assume": [context.id], "id|=": list(entities), "label": None, "type": None}]
    entities = {e.get("id"): e for e in execute_query(q).get("result")}
    return jsonify(
        {"status": "ok", "entities": entities, "context": context.to_dict(enrich=True), "statements": statements}
    )
示例#10
0
def update(id):
    authz.require(authz.system_edit())
    context = obj_or_404(Context.by_id(id))
    context.update(request_data())
    db.session.commit()
    return redirect(url_for('.view', id=context.id))
示例#11
0
def create():
    authz.require(authz.system_edit())
    context = Context.create(current_user, request_data())
    db.session.commit()
    return redirect(url_for('.view', id=context.id))
示例#12
0
def create():
    authz.require(authz.system_edit())
    context = Context.create(current_user, {})
    entity = Entity.create(request_data(), context)
    db.session.commit()
    return redirect(url_for(".view", id=entity.id))