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()
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()
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()
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()