def lookup(dataset): dataset = Dataset.find(dataset) readonly = validators.StringBool(if_empty=False, if_missing=False)\ .to_python(request.args.get('readonly')) readonly = readonly if authz.logged_in() else True data = request_content() if response_format() != 'json': return Response("Not implemented!", status=400) try: alias = Alias.lookup(dataset, data, request.account, readonly=readonly) if alias is None: return jsonify({ 'is_matched': False, 'entity': None, 'name': data.get('name'), 'dataset': dataset.name }, status=404) if isinstance(alias, Entity): return jsonify({ 'is_matched': True, 'entity': alias, 'name': data.get('name'), 'dataset': dataset.name }, status=200) db.session.commit() status = 200 if alias.is_matched else 404 status = 418 if alias.is_invalid else status return jsonify(alias, status=status) except Invalid, inv: return handle_invalid(inv, index, data=data, args=[dataset.name])
def create(): authz.require(authz.dataset_create()) data = request_content() try: dataset = Dataset.create(data, request.account) db.session.commit() return redirect(url_for('.view', dataset=dataset.name)) except Invalid, inv: return handle_invalid(inv, new, data=data)
def update(dataset): dataset = Dataset.find(dataset) authz.require(authz.dataset_manage(dataset)) data = request_content() try: dataset.update(data) db.session.commit() flash("Updated %s" % dataset.label, "success") return redirect(url_for(".view", dataset=dataset.name)) except Invalid, inv: return handle_invalid(inv, edit, args=[dataset.name], data=data)
def upload(dataset): dataset = Dataset.find(dataset) authz.require(authz.dataset_edit(dataset)) file_ = request.files.get('file') if not file_ or not file_.filename: inv = Invalid("No file.", None, None, error_dict={'file': "You need to upload a file"}) return handle_invalid(inv, form, data={}, args=[dataset.name]) upload = upload_file(dataset, file_, request.account) return redirect(url_for('.map', dataset=dataset.name, id=upload.id))
def upload(dataset): dataset = Dataset.find(dataset) authz.require(authz.dataset_edit(dataset)) file_ = request.files.get('file') if not file_ or not file_.filename: inv = Invalid("No file.", None, None, error_dict={'file': "You need to upload a file"}) return handle_invalid(inv, form, data={}, args=[dataset.name]) sig = upload_file(dataset, file_) return redirect(url_for('.map', dataset=dataset.name, sig=sig))
def update(dataset): dataset = Dataset.find(dataset) authz.require(authz.dataset_manage(dataset)) data = request_content() try: flush_cache(dataset) dataset.update(data) db.session.commit() flash("Updated %s" % dataset.label, 'success') return redirect(url_for('.view', dataset=dataset.name)) except Invalid, inv: return handle_invalid(inv, edit, args=[dataset.name], data=data)
def match_save(dataset, alias): dataset = Dataset.find(dataset) authz.require(authz.dataset_edit(dataset)) alias = Alias.find(dataset, alias) random = request.form.get('random')=='True' data = request_content() try: alias.match(dataset, data, request.account) db.session.commit() except Invalid, inv: return handle_invalid(inv, match, data=data, args=[dataset.name, alias.id, random])
def update(dataset, value): dataset = Dataset.find(dataset) authz.require(authz.dataset_edit(dataset)) value = Value.find(dataset, value) data = request_content() try: value.update(data, request.account) db.session.commit() flash("Updated %s" % value.value, 'success') return redirect(url_for('.view', dataset=dataset.name, value=value.id)) except Invalid, inv: return handle_invalid(inv, view, data=data, args=[dataset.name, value.id])
def create(dataset): dataset = Dataset.find(dataset) authz.require(authz.dataset_edit(dataset)) data = request_content() try: value = Value.create(dataset, data, request.account) db.session.commit() return redirect(url_for('.view', dataset=dataset.name, value=value.id)) except Invalid, inv: return handle_invalid(inv, view_dataset, data=data, args=[dataset.name])
def update(dataset, entity): dataset = Dataset.find(dataset) authz.require(authz.dataset_edit(dataset)) entity = Entity.find(dataset, entity) data = request_content() try: entity.update(data, request.account) db.session.commit() flash("Updated %s" % entity.display_name, 'success') return redirect(url_for('.view', dataset=dataset.name, entity=entity.id)) except Invalid, inv: return handle_invalid(inv, view, data=data, args=[dataset.name, entity.id])
def match_save(dataset, link): dataset = Dataset.find(dataset) authz.require(authz.dataset_edit(dataset)) link = Link.find(dataset, link) random = request.form.get('random')=='True' data = request_content() try: link.match(dataset, data, request.account) if link.value is not None: add_candidate_to_cache(dataset, link.key, link.value.id) db.session.commit() except Invalid, inv: return handle_invalid(inv, match, data=data, args=[dataset.name, link.id, random])
def match_save(dataset, alias): dataset = Dataset.find(dataset) authz.require(authz.dataset_edit(dataset)) alias = Alias.find(dataset, alias) random = request.form.get('random') == 'True' data = request_content() try: alias.match(dataset, data, request.account) db.session.commit() except Invalid, inv: return handle_invalid(inv, match, data=data, args=[dataset.name, alias.id, random])
def create(dataset): dataset = Dataset.find(dataset) authz.require(authz.dataset_edit(dataset)) data = request_content() try: entity = Entity.create(dataset, data, request.account) db.session.commit() return redirect( url_for('.view', dataset=dataset.name, entity=entity.id)) except Invalid, inv: return handle_invalid(inv, view_dataset, data=data, args=[dataset.name])
def merge(dataset, value): dataset = Dataset.find(dataset) authz.require(authz.dataset_edit(dataset)) value = Value.find(dataset, value) data = request_content() try: target = value.merge_into(data, request.account) flush_cache(dataset) db.session.commit() flash("Merged %s" % value.value, 'success') return redirect(url_for('.view', dataset=dataset.name, value=target.id)) except Invalid, inv: print inv return handle_invalid(inv, view, data=data, args=[dataset.name, value.id])
def update(dataset, entity): dataset = Dataset.find(dataset) authz.require(authz.dataset_edit(dataset)) entity = Entity.find(dataset, entity) data = request_content() try: entity.update(data, request.account) db.session.commit() flash("Updated %s" % entity.display_name, 'success') return redirect( url_for('.view', dataset=dataset.name, entity=entity.id)) except Invalid, inv: return handle_invalid(inv, view, data=data, args=[dataset.name, entity.id])
def lookup(dataset): dataset = Dataset.find(dataset) readonly = validators.StringBool(if_empty=False, if_missing=False)\ .to_python(request.args.get('readonly')) readonly = readonly if authz.logged_in() else True data = request_content() if response_format() != 'json': return Response("Not implemented!", status=400) try: link = Link.lookup(dataset, data, request.account, readonly=readonly) if link is None: return jsonify({ 'is_matched': False, 'value': None, 'key': data.get('key'), 'dataset': dataset.name }, status=404) if isinstance(link, Value): add_candidate_to_cache(dataset, data.get('key'), link.id) return jsonify({ 'is_matched': True, 'value': link, 'key': data.get('key'), 'dataset': dataset.name }, status=200) if link.value: add_candidate_to_cache(dataset, link.key, link.value.id) db.session.commit() status = 200 if link.is_matched else 404 status = 418 if link.is_invalid else status return jsonify(link, status=status) except Invalid, inv: return handle_invalid(inv, index, data=data, args=[dataset.name])
def lookup(dataset): dataset = Dataset.find(dataset) readonly = validators.StringBool(if_empty=False, if_missing=False)\ .to_python(request.args.get('readonly')) readonly = readonly if authz.logged_in() else True data = request_content() if response_format() != 'json': return Response("Not implemented!", status=400) try: alias = Alias.lookup(dataset, data, request.account, readonly=readonly) if alias is None: return jsonify( { 'is_matched': False, 'entity': None, 'name': data.get('name'), 'dataset': dataset.name }, status=404) if isinstance(alias, Entity): return jsonify( { 'is_matched': True, 'entity': alias, 'name': data.get('name'), 'dataset': dataset.name }, status=200) db.session.commit() status = 200 if alias.is_matched else 404 status = 418 if alias.is_invalid else status return jsonify(alias, status=status) except Invalid, inv: return handle_invalid(inv, index, data=data, args=[dataset.name])