Finalising tweaks before deployment.
This commit is contained in:
@@ -18,7 +18,7 @@ def fares_query(
|
||||
toc: str | None = None,
|
||||
) -> list[dict[str, dict[str, str]]]:
|
||||
url = f"https://fares.ballast-data.co.uk/fares?origin={origin}&destination={destination}"
|
||||
url += f"&toc={toc}" if toc is not None else ""
|
||||
url += f"&toc={toc.upper()}" if toc is not None else ""
|
||||
response = requests.get(
|
||||
url=url,
|
||||
auth=(
|
||||
|
||||
+10
-4
@@ -35,6 +35,8 @@ COLUMN_RENAMES = {
|
||||
"restriction_code": "Restriction",
|
||||
}
|
||||
|
||||
VALID_QUERY_TERMS = ["origin", "destination", "toc"]
|
||||
|
||||
DEFAULT_TEMPLATE_PATH = Path(__file__).parents[2] / "media/template.html"
|
||||
|
||||
logger: Logger = Logger(name=__name__, level=INFO)
|
||||
@@ -46,10 +48,10 @@ class FaresHandler(BaseHTTPRequestHandler):
|
||||
text = self.requestline.split(" ")[1].split("?")
|
||||
if len(text) == 1:
|
||||
return {}
|
||||
text = text[1]
|
||||
return {
|
||||
(_s := s.split("="))[0]: _s[-1] if _s[-1] != "" else None
|
||||
for s in text.split("&")
|
||||
_s[0]: _s[-1] if _s[-1] != "" else None
|
||||
for s in text[1].split("&")
|
||||
if (_s := s.split("="))[0] in VALID_QUERY_TERMS
|
||||
}
|
||||
|
||||
def content_of_GET(self, template_path: Path = DEFAULT_TEMPLATE_PATH) -> str:
|
||||
@@ -76,6 +78,7 @@ class FaresHandler(BaseHTTPRequestHandler):
|
||||
text = "No Fares Found."
|
||||
with open(template_path, "r") as rf:
|
||||
return rf.read().replace("<!-- Content -->", text)
|
||||
|
||||
text = '<table style="margin-left: auto; margin-right: auto;">'
|
||||
text += (
|
||||
'<tr style="font-size: 1.6em;"> <th> Flow </th> <th> Fares </th> </tr>\n'
|
||||
@@ -119,9 +122,11 @@ class FaresHandler(BaseHTTPRequestHandler):
|
||||
self.end_headers()
|
||||
_ = self.wfile.write(content.encode())
|
||||
return None
|
||||
|
||||
except ConnectionError as ex:
|
||||
logger.warning(f"{type(ex)} | {ex}")
|
||||
self.send_response(503, "Upstream API refused to respond.")
|
||||
self.send_response(503, "Our upstream API refused to respond.")
|
||||
|
||||
except Exception as ex:
|
||||
logger.critical(f"{type(ex)} | {ex}")
|
||||
self.send_response(
|
||||
@@ -129,6 +134,7 @@ class FaresHandler(BaseHTTPRequestHandler):
|
||||
"Something abnormal occured, apologies. It has been logged with importance.",
|
||||
)
|
||||
raise ex
|
||||
|
||||
self.end_headers()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user