Exemple #1
0
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')
Exemple #2
0
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')
Exemple #3
0
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])
Exemple #4
0
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])
Exemple #5
0
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])
Exemple #6
0
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])
Exemple #7
0
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])
Exemple #8
0
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])
Exemple #9
0
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])
Exemple #10
0
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])
Exemple #11
0
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])
Exemple #12
0
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])
Exemple #13
0
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])
Exemple #14
0
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')
Exemple #15
0
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')
Exemple #16
0
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')
Exemple #17
0
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')
Exemple #18
0
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')
Exemple #19
0
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])
Exemple #20
0
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')
Exemple #21
0
def get_roles():
    return jsonify_list([i.to_client() for i in Role.get_all()])
Exemple #22
0
def get_names():
    global system
    return jsonify_list([i.to_client()['name'] for i in system.get_all_users()])
Exemple #23
0
def get_emails():
    global system
    return jsonify_list([i.to_client()['email'] for i in system.user_set])