Compare commits

...

2 Commits

Author SHA1 Message Date
krateng 97fc38f919 Graceful handling of missing templates 2022-05-26 14:56:04 +02:00
krateng 397d5e7c13 API root path now returns JSON error, fix GH-150 2022-05-26 14:43:29 +02:00
2 changed files with 8 additions and 3 deletions

View File

@ -47,9 +47,12 @@ def init_apis(server):
server.get(altpath_empty_cl)(alias_api) server.get(altpath_empty_cl)(alias_api)
server.post(altpath_empty_cl)(alias_api) server.post(altpath_empty_cl)(alias_api)
def invalid_api(pth): def invalid_api(pth=''):
response.status = 404 response.status = 404
return {"error":"Invalid API"} return {"error":"Invalid API"}
server.get("/apis/<pth:path>")(invalid_api) server.get("/apis/<pth:path>")(invalid_api)
server.post("/apis/<pth:path>")(invalid_api) server.post("/apis/<pth:path>")(invalid_api)
server.get("/apis")(invalid_api)
server.post("/apis")(invalid_api)

View File

@ -10,6 +10,7 @@ import time
# server stuff # server stuff
from bottle import Bottle, static_file, request, response, FormsDict, redirect, BaseRequest, abort from bottle import Bottle, static_file, request, response, FormsDict, redirect, BaseRequest, abort
import waitress import waitress
from jinja2.exceptions import TemplateNotFound
# doreah toolkit # doreah toolkit
from doreah.logging import log from doreah.logging import log
@ -212,10 +213,11 @@ def jinja_page(name):
"_urikeys":keys, #temporary! "_urikeys":keys, #temporary!
} }
loc_context["filterkeys"], loc_context["limitkeys"], loc_context["delimitkeys"], loc_context["amountkeys"], loc_context["specialkeys"] = uri_to_internal(keys) loc_context["filterkeys"], loc_context["limitkeys"], loc_context["delimitkeys"], loc_context["amountkeys"], loc_context["specialkeys"] = uri_to_internal(keys)
template = jinja_environment.get_template(name + '.jinja')
try: try:
template = jinja_environment.get_template(name + '.jinja')
res = template.render(**loc_context) res = template.render(**loc_context)
except TemplateNotFound:
abort(404,f"Not found: '{name}'")
except (ValueError, IndexError): except (ValueError, IndexError):
abort(404,"This Artist or Track does not exist") abort(404,"This Artist or Track does not exist")