def suggest(): if not 'q' in request.args or not len(request.args.get('q').strip()): raise BadRequest("Missing the query ('q' parameter).") q = db.session.query(EntityProperty) q = q.filter(EntityProperty.name=='name') q = q.filter(EntityProperty.active==True) q = q.filter(EntityProperty.entity_id!=None) q = q.filter(EntityProperty.value.ilike(request.args.get('q') + '%')) if 'project' in request.args: q = q.join(Entity) q = q.join(Project) q = q.filter(Project.slug==request.args.get('project')) pager = Pager(q) data = [] def convert(props): for prop in props: data.append({ 'name': prop.value, 'api_url': url_for('entities_api.view', id=prop.entity_id) }) return data validate_cache(keys='#'.join([d['name'] for d in data])) return jsonify(pager.to_dict(results_converter=convert))
def search(): searcher = ESSearcher(request.args) pager = Pager(searcher) conv = lambda c: [x for x in c] data = pager.to_dict(results_converter=conv) data['facets'] = searcher.facets() return jsonify(data)
def suggest(): if not 'q' in request.args or not len(request.args.get('q').strip()): raise BadRequest("Missing the query ('q' parameter).") q = db.session.query(EntityProperty) q = q.join(Entity) q = q.join(Project) q = q.outerjoin(Permission) q = q.filter(or_(Project.private==False, and_(Permission.reader==True, Permission.account==request.account))) q = q.filter(EntityProperty.name=='name') q = q.filter(EntityProperty.active==True) q = q.filter(EntityProperty.entity_id!=None) q = q.filter(EntityProperty.value_string.ilike(request.args.get('q') + '%')) if 'project' in request.args: q = q.filter(Project.slug==request.args.get('project')) pager = Pager(q) data = [] def convert(props): for prop in props: data.append({ 'name': prop.value, 'api_url': url_for('entities_api.view', id=prop.entity_id) }) return data validate_cache(keys='#'.join([d['name'] for d in data])) return jsonify(pager.to_dict(results_converter=convert))
def index(slug): project = object_or_404(Project.by_slug(slug)) authz.require(authz.project_manage(project)) query = Permission.all() query = query.filter_by(project=project) pager = Pager(query) conv = lambda es: [permissions.to_rest_index(e) for e in es] return jsonify(pager.to_dict(conv))
def index(slug): project = object_or_404(Project.by_slug(slug)) validate_cache(last_modified=project.updated_at) query = Schema.all() query = query.filter_by(project=project) pager = Pager(query) conv = lambda es: [schemata.to_rest_index(e) for e in es] return jsonify(pager.to_dict(conv))
def index(): q = Project.all() q = q.outerjoin(Permission) q = q.filter(or_(Project.private==False, and_(Permission.reader==True, Permission.account==request.account))) pager = Pager(q) conv = lambda es: [projects.to_rest_index_stats(e) for e in es] return jsonify(pager.to_dict(conv))
def index(): alias = aliased(Relation) q = db.session.query(alias) query = filters.for_relations(q, alias) query = query.distinct() pager = Pager(query) validate_cache(keys=pager.cache_keys()) result = pager.to_dict() result['facets'] = facets.for_relations() return jsonify(result, index=True)
def index(): alias = aliased(Entity) q = db.session.query(alias) query = filters.for_entities(q, alias) query = query.distinct() pager = Pager(query) validate_cache(keys=pager.cache_keys()) result = pager.to_dict() result['facets'] = facets.for_entities() return jsonify(result, index=True)
def search(): # TODO: move to be project-specific, the implement access control! searcher = ESSearcher(request.args) if 'project' in request.args: searcher.add_filter('project.slug', request.args.get('project')) pager = Pager(searcher) # TODO: get all entities at once: conv = lambda res: [entities.to_rest_index(Entity.by_id(r.get('id'))) for r in res] data = pager.to_dict(results_converter=conv) data['facets'] = searcher.facets() return jsonify(data)
def index(): query = filter_query(Entity, Entity.all(), request.args) for schema in request.args.getlist('schema'): alias = aliased(Schema) query = query.join(alias, Entity.schemata) query = query.filter(alias.name.in_(schema.split(','))) pager = Pager(query) conv = lambda es: [entities.to_rest_index(e) for e in es] return jsonify(pager.to_dict(conv))
def search(): searcher = Searcher(request.args) if 'project' in request.args: searcher.add_filter('project.slug', request.args.get('project')) pager = Pager(searcher) def convert(serp): ents = Entity.by_id_many([r['id'] for r in serp], request.account) results = [ents.get(r['id']) for r in serp] results = [entities.to_rest_index(r) for r in results] return results data = pager.to_dict(results_converter=convert) data['facets'] = searcher.facets() return jsonify(data)
def suggest(): authz.require(authz.logged_in()) query = request.args.get("q", "") + "%" q = db.session.query(Account) q = q.filter(or_(Account.full_name.ilike(query), Account.login.ilike(query), Account.email.ilike(query))) pager = Pager(q) def convert(accounts): data = [] for account in accounts: data.append({"display_name": account.display_name, "id": account.id}) return data validate_cache(keys="#".join([d.display_name for d in pager])) return jsonify(pager.to_dict(results_converter=convert))
def index(): query = filter_query(Relation, Relation.all(), request.args) if request.args.get('source'): query = query.filter(Relation.source_id==request.args.getlist('source')[0]) if request.args.get('target'): query = query.filter(Relation.target_id==request.args.getlist('target')[0]) if request.args.get('schema'): schemata = request.args.get('schema').split(',') query = query.join(Schema) query = query.filter(Schema.name.in_(schemata)) pager = Pager(query) conv = lambda es: [relations.to_rest_index(e) for e in es] return jsonify(pager.to_dict(conv))
def index(): query = filter_query(Relation, Relation.all(), request.args) if request.args.get('source'): query = query.filter( Relation.source_id == request.args.getlist('source')[0]) if request.args.get('target'): query = query.filter( Relation.target_id == request.args.getlist('target')[0]) if request.args.get('schema'): schemata = request.args.get('schema').split(',') query = query.join(Schema) query = query.filter(Schema.name.in_(schemata)) pager = Pager(query) conv = lambda es: [relations.to_rest_index(e) for e in es] return jsonify(pager.to_dict(conv))
def suggest(): authz.require(authz.logged_in()) query = request.args.get('q', '') + '%' q = db.session.query(Account) q = q.filter( or_(Account.full_name.ilike(query), Account.login.ilike(query), Account.email.ilike(query))) pager = Pager(q) def convert(accounts): data = [] for account in accounts: data.append({ 'display_name': account.display_name, 'id': account.id }) return data validate_cache(keys='#'.join([d.display_name for d in pager])) return jsonify(pager.to_dict(results_converter=convert))
def index(): query = Project.all() pager = Pager(query) conv = lambda es: [projects.to_rest_index_stats(e) for e in es] return jsonify(pager.to_dict(conv))