Beispiel #1
0
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
Beispiel #2
0
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