def properties(request): study_props = qs.get_study_property_list() tree_props = qt.get_tree_property_list() results = { "tree_properties" : tree_props, "study_properties" : study_props } return results
def find_trees(request): # set defaults verbose = False exact = False property_type = None property_value = None if (request.body): payload = request.json_body # check that we only have valid parameters valid_parameters = ['verbose','property','value','exact'] parameters = payload.keys() extra_params = set(parameters).difference(valid_parameters) if len(extra_params) > 0: return HTTPBadRequest() if 'verbose' in payload: verbose = payload['verbose'] if 'property' in payload: if 'value' in payload: property_type = payload['property'] property_value = payload['value'] # is this a valid property? tree_properties = qt.get_tree_property_list() if property_type not in tree_properties: _msg="Tree property {p} is unknown".format(p=property_type) raise HTTPBadRequest(body=_msg) else: _msg="No value given for property {p}".format(p=property_type) raise HTTPBadRequest(body=_msg) # query time! if (property_type is None): resultlist = qt.get_all_trees(verbose) else: resultlist = qt.query_trees(verbose,property_type,property_value) resultdict = { "matched_studies" : resultlist} return resultdict