def get_labsysteminfo(): if request.method == 'GET': return jsonify_list(LabSystemInfo.get_all()) if request.method == 'POST': data = parse_request(request) if not data: abort(400, 'Your data should be in JSON format') if 'lab_id' not in data: abort(400, 'You need to provide lab_id') lab = Lab.query.get(data['lab_id']) if lab is None: abort(404, 'No lab exist with given lab_id') try: new_system_info = LabSystemInfo(**data) new_system_info.save() return jsonify(new_system_info.to_client()) except (TypeError, AttributeError), e: current_app.logger.error("Error saving labs system info data: %s" % e) # return 'Error: Provide correct attribute name' abort(400, 'Invalid attributes in request data')
def search(): if request.method == 'GET': args = {} args = request.args.to_dict() current_app.logger.debug("args received for /search request: %s" % args) if 'institute' in args: args['institute_id'] = \ Institute.query.filter_by(name=args['institute']).first().id del (args['institute']) if 'discipline' in args: args['discipline_id'] = \ Discipline.query.filter_by(name=args['discipline']).first().id del (args['discipline']) # print args labs = Lab.query.filter_by(**args).all() if not len(labs): abort(404, 'No labs found with your search query') return jsonify_list([lab.to_client() for lab in labs])
def dev_by_inst(id): if request.method == 'GET': if id is None: abort(404) devlopers = Developer.query.filter_by(institute_id=id).all() if len(devlopers) == 0: abort(404, 'No Developer found with this Id') return jsonify_list([i.to_client() for i in devlopers])
def labs_by_discipline(id): if request.method == 'GET': if id is None: abort(404) labs = Lab.query.filter_by(discipline_id=id).all() if len(labs) == 0: abort(404, 'Invalid Id') return jsonify_list([i.to_client() for i in labs])
def labs_by_disc(int_id, disc_id): if request.method == 'GET': if int_id is None: abort(404) labs = Lab.query.filter_by(institute_id=int_id, discipline_id=disc_id).all() if len(labs) == 0: abort(404, 'Enter valid Id') return jsonify_list([i.to_client() for i in labs])
def query_an_entity(entity): if entity not in entity_pairs: current_app.logger.error("Entity %s is not valid " % entity) abort(400, 'Entity %s is not valid.' % entity) curr_entity = entity_pairs[entity]['entity_class'] arg_tuple_list = request.args.lists() if not arg_tuple_list: return jsonify_list([i.to_client() for i in curr_entity.get_all()]) else: query = curr_entity.query filters = [] for arg_tuple in arg_tuple_list: args = arg_tuple[0].split('.') values = arg_tuple[1][0].split(',') filters.append(create_filters(entity_pairs[entity], \ curr_entity, args, values)) for filter in filters: query = query.filter(filter) entities = query.all() return jsonify_list([ent.to_client() for ent in entities])
def get_all_experiments(id): if request.method == 'GET': lab = Lab.query.get(id) if lab is None: abort(404, 'Invalid Id') experiments = Experiment.query.filter_by(lab_id=lab.id).all() if len(experiments) == 0: abort(404, 'No experiment found with this Id') return jsonify_list([i.to_client() for i in experiments])
def query_an_entity(entity): if entity not in entity_pairs: abort(400, 'Entity %s is not valid.' % entity) curr_entity = entity_pairs[entity]['entity_class'] arg_tuple_list = request.args.lists() if not arg_tuple_list: print "data: %s" % [i.to_client() for i in curr_entity.get_all()] return jsonify_list([i.to_client() for i in curr_entity.get_all()]) else: query = curr_entity.query filters = [] for arg_tuple in arg_tuple_list: args = arg_tuple[0].split('.') values = arg_tuple[1][0].split(',') filters.append(create_filters(entity_pairs[entity], \ curr_entity, args, values)) for filter in filters: query = query.filter(filter) entities = query.all() print "data: %s" % [ent.to_client() for ent in entities] return jsonify_list([ent.to_client() for ent in entities])
def labs(): if request.method == 'GET': fields = request.args.getlist('fields') or None try: current_app.logger.debug(jsonify_list(Lab.get_all(fields)).data) return jsonify_list(Lab.get_all(fields)) except Exception: abort(404, 'Invalid field attribute') if request.method == 'POST': data = parse_request(request) if not data: abort(400, 'Your data should be in JSON format') if 'institute_id' not in data: abort(400, 'Provide institute_id') if 'discipline_id' not in data: abort(400, 'Provide discipline_id') instt = Institute.query.get(data['institute_id']) if instt is None: abort(404, 'Foreign_key constraint fails: Provide institute_id') dis = Discipline.query.get(data['discipline_id']) if dis is None: abort(404, 'Foreign_key constraint fails: Provide discipline_id') try: new_lab = Lab(**data) new_lab.save() return jsonify(new_lab.to_client()) except (TypeError, AttributeError), e: current_app.logger.error("Error while saving lab data: %s" % e) abort(400, 'Invalid attributes in request data')
def technologies(): if request.method == 'GET': return jsonify_list(Technology.get_all()) if request.method == 'POST': data = parse_request(request) if not data: abort(400, 'Your data should be in JSON format') try: new_technology = Technology(**data) new_technology.save() return jsonify(new_technology.to_client()) except (TypeError, AttributeError), e: current_app.logger.error("Error while saving technology data: %s" % e) # return 'Error: Provide correct attribute name' abort(400, 'Invalid attributes in request data')
def developers(): if request.method == 'GET': return jsonify_list(Developer.get_all()) if request.method == 'POST': data = parse_request(request) if not data: abort(400, 'Your data should be in JSON format') if 'institute_id' not in data: abort(400, 'Provide institute_id') # instt = Institute.query.get(data['institute_id']) try: new_develop = Developer(**data) new_develop.save() return jsonify(new_develop.to_client()) except TypeError, e: current_app.logger.error("Error while saving developer data: %s" % e) # return jsonify(error='Error: Provide correct attribute name') abort(400, 'Invalid attributes in request data')
def search(): if request.method == 'GET': args = {} args = request.args.to_dict() current_app.logger.debug("args received for /search request: %s" % args) if 'institute' in args: args['institute_id'] = \ Institute.query.filter_by(name=args['institute']).first().id del(args['institute']) if 'discipline' in args: args['discipline_id'] = \ Discipline.query.filter_by(name=args['discipline']).first().id del(args['discipline']) # print args labs = Lab.query.filter_by(**args).all() if not len(labs): abort(404, 'No labs found with your search query') return jsonify_list([lab.to_client() for lab in labs])
def get_roles(): return jsonify_list([i.to_client() for i in Role.get_all()])
def get_names(): global system return jsonify_list([i.to_client()['name'] for i in system.get_all_users()])
def get_emails(): global system return jsonify_list([i.to_client()['email'] for i in system.user_set])