Ejemplo n.º 1
0
def samples():
    """
    The Register of Samples

    :return: HTTP Response
    """

    # get the total register count from the XML API
    try:
        r = requests.get(config.XML_API_URL_TOTAL_COUNT)
        no_of_items = int(
            r.content.decode('utf-8').split('<RECORD_COUNT>')[1].split(
                '</RECORD_COUNT>')[0])

        page = request.values.get('page') if request.values.get(
            'page') is not None else 1
        per_page = request.values.get('per_page') if request.values.get(
            'per_page') is not None else 20
        items = _get_items(page, per_page, "IGSN")
    except Exception as e:
        print(e)
        return Response('The Samples Register is offline',
                        mimetype='text/plain',
                        status=500)

    r = pyldapi.RegisterRenderer(request, request.url, 'Sample Register',
                                 'A register of Samples', items,
                                 [config.URI_SAMPLE_CLASS], no_of_items)

    return r.render()
Ejemplo n.º 2
0
def samples():
    """
    The Register of Samples

    :return: HTTP Response
    """

    # get the total register count from the XML API
    try:
        r = requests.get(config.XML_API_URL_TOTAL_COUNT)
        search_result = re.search('<RECORD_COUNT>\s*(\d+)\s*</RECORD_COUNT>', r.content.decode('utf-8'))
        assert search_result is not None, 'Unable to read RECORD_COUNT element in XML response from {}'.format(config.XML_API_URL_TOTAL_COUNT)
        no_of_items = int(search_result.group(1))

        page = request.values.get('page') if request.values.get('page') is not None else 1
        per_page = request.values.get('per_page') if request.values.get('per_page') is not None else 20
        items = _get_items(page, per_page, "IGSN")
    except Exception as e:
        print(e)
        return Response('The Samples Register is offline:\n{}'.format(e), mimetype='text/plain', status=500)

    r = pyldapi.RegisterRenderer(
        request,
        request.url,
        'Sample Register',
        'A register of Samples',
        items,
        [config.URI_SAMPLE_CLASS],
        no_of_items
    )

    return r.render()
Ejemplo n.º 3
0
def sites():
    # get the total register count for site
    try:
        r = requests.get(config.XML_API_URL_SITES_TOTAL_COUNT)
        no_of_items = int(
            r.content.decode('utf-8').split('<RECORDS>')[1].split('</RECORDS>')
            [0])
        # no_of_items =

        page = request.values.get('page') if request.values.get(
            'page') is not None else 1
        per_page = request.values.get('per_page') if request.values.get(
            'per_page') is not None else 20
        items = _get_items(page, per_page, "ENO")
    except Exception as e:
        print(e)
        return Response('The Site Register is offline',
                        mimetype='text/plain',
                        status=500)

    r = pyldapi.RegisterRenderer(request, request.url, 'Site Register',
                                 'A register of Sites', items,
                                 [config.URI_SITE_CLASS], no_of_items)

    return r.render()
def dataset_list():
    """
    The Register of Datasets
    :return: HTTP Response
    """
    # get the total register count from the XML API
    try:
        page = request.values.get('page') if request.values.get(
            'page') is not None else 1
        page = int(page)
        per_page = request.values.get('per_page') if request.values.get(
            'per_page') is not None else 20
        per_page = int(per_page)
        items = fetch_dataset_items_from_db(page, per_page)
    except Exception as e:
        print(e)
        return Response('The Datasets Register is offline:\n{}'.format(e),
                        mimetype='text/plain',
                        status=500)
    no_of_items = fetch_dataset_count_from_db()
    r = pyldapi.RegisterRenderer(request,
                                 request.url,
                                 'Datasets Register',
                                 'A register of Datasets',
                                 items, ["http://www.w3.org/ns/dcat#Dataset"],
                                 no_of_items,
                                 per_page=per_page)
    if hasattr(r, 'vf_error'):
        pprint.pprint(r.vf_error)
        return Response(
            'The Datasets Register view is offline due to HTTP headers not able to be handled:\n{}\n\nThis usually happens on a newer version of the Google Chrome browser.\nPlease try a different browser like Firefox or Chrome v78 or earlier.'
            .format(r.vf_error),
            mimetype='text/plain',
            status=500)
    return r.render()
Ejemplo n.º 5
0
def surveys():
    # get the total register count for survey
    try:
        no_of_items = 9200  #TODO: implement a survey count in Oracle XML API
        page = request.values.get('page') if request.values.get(
            'page') is not None else 1
        per_page = request.values.get('per_page') if request.values.get(
            'per_page') is not None else 20
        items = _get_items(page, per_page, "SURVEYID")
    except Exception as e:
        print(e)
        return Response('The Survey Register is offline',
                        mimetype='text/plain',
                        status=500)

    r = pyldapi.RegisterRenderer(request, request.url, 'Survey Register',
                                 'A register of Surveys', items,
                                 [config.URI_SURVEY_CLASS], no_of_items)
    return r.render()