Skip to content
Snippets Groups Projects
Commit 6dca751d authored by Tor-Einar Skog's avatar Tor-Einar Skog
Browse files

All endpoints in place

parent 8a27e821
No related branches found
No related tags found
No related merge requests found
...@@ -46,12 +46,55 @@ async def print_model_list_default_language() -> str: ...@@ -46,12 +46,55 @@ async def print_model_list_default_language() -> str:
async def print_model_list(language: str) -> str: async def print_model_list(language: str) -> str:
return _print_model_list(language) return _print_model_list(language)
####### Model metadata endpoints #######
@app.get("/models/{model_id}/description/{language}", name="Get a model's description")
async def get_model_description(model_id:str, language:str, response:Response):
return _result_or_404(_get_model_description(model_id, language), model_id, response)
@app.get("/models/{model_id}/description/", name="Get a model's description (default language)")
async def get_model_description(model_id:str, response:Response):
return _result_or_404(_get_model_description(model_id, VIPSModel.default_language), model_id, response)
@app.get("/models/{model_id}/name/{language}", name="Get a model's name")
async def get_model_name(model_id: str, language: str, response:Response):
return _result_or_404(_get_model_name(model_id, language), model_id, response)
@app.get("/models/{model_id}/name/", name="Get a model's name (default language)")
async def get_model_name(model_id: str, response:Response):
return _result_or_404(_get_model_name(model_id, VIPSModel.default_language), model_id, response)
@app.get("/models/{model_id}/license/", name="Get a model's license")
async def get_model_license(model_id: str, response:Response):
requested_model = get_model_instance(model_id)
return requested_model.license if requested_model is not None else _result_or_404(None, model_id, response)
@app.get("/models/{model_id}/copyright/", name="Get a model's copyright")
async def get_model_copyright(model_id: str, response:Response):
requested_model = get_model_instance(model_id)
return requested_model.copyright if requested_model is not None else _result_or_404(None, model_id, response)
@app.get("/models/{model_id}/warningstatusinterpretation/{language}/", name="How to interpret the warning status (red-yellow-green, what does it mean?) in the specified language (<a href='http://www.loc.gov/standards/iso639-2/php/English_list.php'>ISO-639-2</a>)")
async def get_model_warning_status_interpretation(model_id: str, language: str, response:Response):
return _result_or_404(_get_model_warning_status_interpretation(model_id, language), model_id, response)
@app.get("/models/{model_id}/warningstatusinterpretation/", name="How to interpret the warning status (red-yellow-green, what does it mean?) (default language)")
async def get_model_warning_status_interpretation(model_id: str, response:Response):
return _result_or_404(_get_model_warning_status_interpretation(model_id, VIPSModel.default_language), model_id, response)
@app.get("/models/{model_id}/usage/{language}/", name="Get a model's usage instructions")
async def get_model_usage(model_id: str, language: str, response:Response):
return _result_or_404(_get_model_usage(model_id, language), model_id, response)
@app.get("/models/{model_id}/usage/", name="Get a model's usage instructions (default language)")
async def get_model_usage(model_id: str, response:Response):
return _result_or_404(_get_model_usage(model_id, VIPSModel.default_language), model_id, response)
####### Model running endpoints ####### ####### Model running endpoints #######
@app.post("/models/run/", name="Run a model") @app.post("/models/run/", name="Run a model")
async def run_model_from_config_only(model_configuration:ModelConfiguration, response:Response): async def run_model_from_config_only(model_configuration:ModelConfiguration, response:Response):
result = _run_model(model_configuration.model_id, model_configuration) result = _run_model(model_configuration.model_id, model_configuration)
return _result_or_404(result, model_id=model_id, response=response) return _result_or_404(result, model_id=model_configuration.model_id, response=response)
@app.post("/models/{model_id}/run/", name="Run a model") @app.post("/models/{model_id}/run/", name="Run a model")
async def run_model_from_config_only(model_id, model_configuration:ModelConfiguration, response:Response): async def run_model_from_config_only(model_id, model_configuration:ModelConfiguration, response:Response):
...@@ -59,11 +102,34 @@ async def run_model_from_config_only(model_id, model_configuration:ModelConfigur ...@@ -59,11 +102,34 @@ async def run_model_from_config_only(model_id, model_configuration:ModelConfigur
return _result_or_404(result, model_id=model_id, response=response) return _result_or_404(result, model_id=model_id, response=response)
####### Helper functions #######
# Dealing with no method overload in Python :-)
def _get_model_usage(model_id: str, language: str):
requested_model = get_model_instance(model_id)
if requested_model is not None:
return requested_model.get_model_usage(language)
return None
def _get_model_warning_status_interpretation(model_id: str, language: str):
requested_model = get_model_instance(model_id)
if requested_model is not None:
return requested_model.get_warning_status_interpretation(language)
return None
def _get_model_name(model_id: str, language: str):
requested_model = get_model_instance(model_id)
if requested_model is not None:
return requested_model.get_model_name(language)
return None
####### Helper functions ####### def _get_model_description(model_id: str, language: str):
# Dealing with no method overload in Python :-) requested_model = get_model_instance(model_id)
if requested_model is not None:
return requested_model.get_model_description(language)
return None
def _run_model(model_id:str, model_configuration:ModelConfiguration): def _run_model(model_id:str, model_configuration:ModelConfiguration):
""" """
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment