minor alignments (#498)

* minor alignments

* fix test

* fix test
This commit is contained in:
Tom Kralidis
2020-07-25 14:44:30 -04:00
committed by GitHub
parent 2af77a2dce
commit fc4c6c9bef
5 changed files with 109 additions and 107 deletions
+2 -2
View File
@@ -115,7 +115,7 @@ class API:
@pre_process
@jsonldify
def root(self, headers_, format_):
def landing_page(self, headers_, format_):
"""
Provide API
@@ -197,7 +197,7 @@ class API:
'type', 'stac-collection'):
fcm['stac'] = True
content = render_j2_template(self.config, 'root.html', fcm)
content = render_j2_template(self.config, 'landing_page.html', fcm)
return headers_, 200, content
if format_ == 'jsonld':
+50 -49
View File
@@ -96,7 +96,8 @@ def landing_page():
:returns: HTTP response
"""
headers, status_code, content = api_.root(request.headers, request.args)
headers, status_code, content = api_.landing_page(
request.headers, request.args)
response = make_response(content, status_code)
@@ -148,7 +149,7 @@ def conformance():
@APP.route('/collections')
@APP.route('/collections/<collection_id>')
def describe_collections(collection_id=None):
def collections(collection_id=None):
"""
OGC API collections endpoint
@@ -169,7 +170,7 @@ def describe_collections(collection_id=None):
@APP.route('/collections/<collection_id>/queryables')
def get_collection_queryables(collection_id=None):
def collection_queryables(collection_id=None):
"""
OGC API collections querybles endpoint
@@ -191,7 +192,7 @@ def get_collection_queryables(collection_id=None):
@APP.route('/collections/<collection_id>/items')
@APP.route('/collections/<collection_id>/items/<item_id>')
def dataset(collection_id, item_id=None):
def collection_items(collection_id, item_id=None):
"""
OGC API collections items endpoint
@@ -216,6 +217,51 @@ def dataset(collection_id, item_id=None):
return response
@APP.route('/processes')
@APP.route('/processes/<process_id>')
def processes(process_id=None):
"""
OGC API - Processes description endpoint
:param process_id: process identifier
:returns: HTTP response
"""
headers, status_code, content = api_.describe_processes(
request.headers, request.args, process_id)
response = make_response(content, status_code)
if headers:
response.headers = headers
return response
@APP.route('/processes/<process_id>/jobs', methods=['GET', 'POST'])
def process_jobs(process_id=None):
"""
OGC API - Processes jobs endpoint
:param process_id: process identifier
:returns: HTTP response
"""
if request.method == 'GET':
headers, status_code, content = ({}, 200, "[]")
elif request.method == 'POST':
headers, status_code, content = api_.execute_process(
request.headers, request.args, request.data, process_id)
response = make_response(content, status_code)
if headers:
response.headers = headers
return response
@APP.route('/stac')
def stac_catalog_root():
"""
@@ -256,51 +302,6 @@ def stac_catalog_path(path):
return response
@APP.route('/processes')
@APP.route('/processes/<process_id>')
def describe_processes(process_id=None):
"""
OGC API - Processes description endpoint
:param process_id: process identifier
:returns: HTTP response
"""
headers, status_code, content = api_.describe_processes(
request.headers, request.args, process_id)
response = make_response(content, status_code)
if headers:
response.headers = headers
return response
@APP.route('/processes/<process_id>/jobs', methods=['GET', 'POST'])
def execute_process(process_id=None):
"""
OGC API - Processes jobs endpoint
:param process_id: process identifier
:returns: HTTP response
"""
if request.method == 'GET':
headers, status_code, content = ({}, 200, "[]")
elif request.method == 'POST':
headers, status_code, content = api_.execute_process(
request.headers, request.args, request.data, process_id)
response = make_response(content, status_code)
if headers:
response.headers = headers
return response
@click.command()
@click.pass_context
@click.option('--debug', '-d', default=False, is_flag=True, help='debug')
+52 -52
View File
@@ -79,7 +79,7 @@ async def landing_page(request: Request):
:returns: Starlette HTTP Response
"""
headers, status_code, content = api_.root(
headers, status_code, content = api_.landing_page(
request.headers, request.query_params)
response = Response(content=content, status_code=status_code)
@@ -134,7 +134,7 @@ async def conformance(request: Request):
@app.route('/collections/')
@app.route('/collections/{collection_id}')
@app.route('/collections/{collection_id}/')
async def describe_collections(request: Request, collection_id=None):
async def collections(request: Request, collection_id=None):
"""
OGC API collections endpoint
@@ -157,7 +157,7 @@ async def describe_collections(request: Request, collection_id=None):
@app.route('/collections/{collection_id}/queryables')
@app.route('/collections/{collection_id}/queryables/')
async def get_collection_queryables(request: Request, collection_id=None):
async def collection_queryables(request: Request, collection_id=None):
"""
OGC API collections queryables endpoint
@@ -182,7 +182,7 @@ async def get_collection_queryables(request: Request, collection_id=None):
@app.route('/collections/{collection_id}/items/')
@app.route('/collections/{collection_id}/items/{item_id}')
@app.route('/collections/{collection_id}/items/{item_id}/')
async def dataset(request: Request, collection_id=None, item_id=None):
async def collection_items(request: Request, collection_id=None, item_id=None):
"""
OGC API collections items endpoint
@@ -212,6 +212,54 @@ async def dataset(request: Request, collection_id=None, item_id=None):
return response
@app.route('/processes')
@app.route('/processes/')
@app.route('/processes/{process_id}')
@app.route('/processes/{process_id}/')
async def processes(request: Request, process_id=None):
"""
OGC API - Processes description endpoint
:param process_id: identifier of process to describe
:returns: Starlette HTTP Response
"""
headers, status_code, content = api_.describe_processes(
request.headers, request.query_params, process_id)
response = Response(content=content, status_code=status_code)
if headers:
response.headers.update(headers)
return response
@app.route('/processes/{process_id}/jobs', methods=['GET', 'POST'])
@app.route('/processes/{process_id}/jobs/', methods=['GET', 'POST'])
async def process_jobs(request: Request, process_id=None):
"""
OGC API - Processes jobs endpoint
:param process_id: identifier of process to execute
:returns: Starlette HTTP Response
"""
if request.method == 'GET':
headers, status_code, content = ({}, 200, "[]")
elif request.method == 'POST':
headers, status_code, content = api_.execute_process(
request.headers, request.query_params, request.data, process_id)
response = Response(content=content, status_code=status_code)
if headers:
response.headers.update(headers)
return response
@app.route('/stac')
async def stac_catalog_root(request: Request):
"""
@@ -254,54 +302,6 @@ async def stac_catalog_path(request: Request):
return response
@app.route('/processes')
@app.route('/processes/')
@app.route('/processes/{process_id}')
@app.route('/processes/{process_id}/')
async def describe_processes(request: Request, process_id=None):
"""
OGC API - Processes description endpoint
:param process_id: identifier of process to describe
:returns: Starlette HTTP Response
"""
headers, status_code, content = api_.describe_processes(
request.headers, request.query_params, process_id)
response = Response(content=content, status_code=status_code)
if headers:
response.headers.update(headers)
return response
@app.route('/processes/{process_id}/jobs', methods=['GET', 'POST'])
@app.route('/processes/{process_id}/jobs/', methods=['GET', 'POST'])
async def execute_process(request: Request, process_id=None):
"""
OGC API - Processes jobs endpoint
:param process_id: identifier of process to execute
:returns: Starlette HTTP Response
"""
if request.method == 'GET':
headers, status_code, content = ({}, 200, "[]")
elif request.method == 'POST':
headers, status_code, content = api_.execute_process(
request.headers, request.query_params, request.data, process_id)
response = Response(content=content, status_code=status_code)
if headers:
response.headers.update(headers)
return response
@click.command()
@click.pass_context
@click.option('--debug', '-d', default=False, is_flag=True, help='debug')
+5 -4
View File
@@ -101,13 +101,13 @@ def test_api(config, api_, openapi):
def test_api_exception(config, api_):
req_headers = make_req_headers()
rsp_headers, code, response = api_.root(req_headers, {'f': 'foo'})
rsp_headers, code, response = api_.landing_page(req_headers, {'f': 'foo'})
assert code == 400
def test_root(config, api_):
req_headers = make_req_headers()
rsp_headers, code, response = api_.root(req_headers, {})
rsp_headers, code, response = api_.landing_page(req_headers, {})
root = json.loads(response)
assert rsp_headers['Content-Type'] == 'application/json'
@@ -128,13 +128,14 @@ def test_root(config, api_):
assert 'description' in root
assert root['description'] == 'pygeoapi provides an API to geospatial data'
rsp_headers, code, response = api_.root(req_headers, {'f': 'html'})
rsp_headers, code, response = api_.landing_page(req_headers, {'f': 'html'})
assert rsp_headers['Content-Type'] == 'text/html'
def test_root_structured_data(config, api_):
req_headers = make_req_headers()
rsp_headers, code, response = api_.root(req_headers, {"f": "jsonld"})
rsp_headers, code, response = api_.landing_page(
req_headers, {"f": "jsonld"})
root = json.loads(response)
assert rsp_headers['Content-Type'] == 'application/ld+json'