Пример #1
0
def index():
    authz.require(authz.system_read())
    q = Context.all()
    if arg_bool('imports'):
        q = q.filter(Context.resource_name != None) # noqa
    q = q.order_by(Context.updated_at.desc())
    return jsonify(Pager(q))
Пример #2
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)
Пример #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 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})
Пример #6
0
def index():
    authz.require(authz.system_read())
    q = {}
    prefix = request.args.get("prefix", "")
    if len(prefix):
        q = {"label~=": prefix}
    q = EntityQuery(q)
    return jsonify(Pager(q))
Пример #7
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})
Пример #8
0
def spiders():
    authz.require(authz.system_read())
    spiders = {}
    for name, spider in get_spiders().items():
        spiders[name] = {
            "name": name,
            "class": spider.__name__,
            "label": spider.PUBLISHER_LABEL,
            "url": spider.PUBLISHER_URL,
        }
    return jsonify(spiders)
Пример #9
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,
        }
    )
Пример #10
0
def query():
    authz.require(authz.system_read())
    if request.method == "GET":
        try:
            q = json.loads(request.args.get("q"))
        except (TypeError, ValueError) as e:
            data = {"status": "error", "message": "Invalid query: %s" % unicode(e)}
            return jsonify(data, status=400)
    else:
        q = request_data()
    return jsonify(execute_query(q))
Пример #11
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"})
Пример #12
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}
    )
Пример #13
0
def update(id):
    user = obj_or_404(User.by_id(id))
    authz.require(user.id == current_user.id or authz.system_manage())
    user.update(request_data())
    db.session.commit()
    return jsonify(user)
Пример #14
0
def view(id):
    authz.require(authz.system_read())
    entity = obj_or_404(EntityQuery.by_id(id))
    return jsonify(entity)
Пример #15
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))
Пример #16
0
def index():
    authz.require(authz.system_manage())
    users = list(User.all())
    return jsonify({'results': users, 'total': len(users)})
Пример #17
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))
Пример #18
0
def view(id):
    authz.require(authz.system_read())
    context = obj_or_404(Context.by_id(id))
    return jsonify(context)
Пример #19
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))
Пример #20
0
def view(id):
    authz.require(authz.system_read())
    user = obj_or_404(User.by_id(id))
    data = user.to_dict()
    return jsonify(data)