Use path segments for journey result URLs
This commit is contained in:
parent
ce6e8afcc8
commit
1c230ce0d6
3 changed files with 76 additions and 55 deletions
50
app.py
50
app.py
|
|
@ -389,9 +389,15 @@ def _results_url(
|
|||
**params,
|
||||
)
|
||||
if journey_type == "inbound":
|
||||
params["journey_type"] = "inbound"
|
||||
return url_for(
|
||||
"back_results",
|
||||
station_crs=station_crs,
|
||||
slug=slug,
|
||||
travel_date=travel_date,
|
||||
**params,
|
||||
)
|
||||
return url_for(
|
||||
"results",
|
||||
"out_results",
|
||||
station_crs=station_crs,
|
||||
slug=slug,
|
||||
travel_date=travel_date,
|
||||
|
|
@ -463,18 +469,17 @@ def search() -> ResponseReturnValue:
|
|||
return redirect(url_for("index"))
|
||||
|
||||
|
||||
@app.route("/results/<station_crs>/<slug>/<travel_date>")
|
||||
def results(station_crs: str, slug: str, travel_date: str) -> ResponseReturnValue:
|
||||
return _results(
|
||||
station_crs,
|
||||
slug,
|
||||
travel_date,
|
||||
request.args.get("journey_type", "outbound"),
|
||||
request.args.get("return_date"),
|
||||
)
|
||||
@app.route("/results/<station_crs>/<slug>/out/<travel_date>")
|
||||
def out_results(station_crs: str, slug: str, travel_date: str) -> ResponseReturnValue:
|
||||
return _results(station_crs, slug, travel_date, "outbound", None)
|
||||
|
||||
|
||||
@app.route("/results/<station_crs>/<slug>/<travel_date>/return/<return_date>")
|
||||
@app.route("/results/<station_crs>/<slug>/back/<travel_date>")
|
||||
def back_results(station_crs: str, slug: str, travel_date: str) -> ResponseReturnValue:
|
||||
return _results(station_crs, slug, travel_date, "inbound", None)
|
||||
|
||||
|
||||
@app.route("/results/<station_crs>/<slug>/return/<travel_date>/<return_date>")
|
||||
def return_results(
|
||||
station_crs: str, slug: str, travel_date: str, return_date: str
|
||||
) -> ResponseReturnValue:
|
||||
|
|
@ -1108,7 +1113,7 @@ def _results(
|
|||
station_crs=station_crs,
|
||||
slug=slug,
|
||||
travel_date=travel_date,
|
||||
journey_type=journey_type if journey_type == "inbound" else None,
|
||||
path_journey_type="back" if journey_type == "inbound" else "out",
|
||||
)
|
||||
|
||||
summary_html = _build_summary_html(
|
||||
|
|
@ -1331,7 +1336,7 @@ def _results(
|
|||
station_crs=station_crs,
|
||||
slug=slug,
|
||||
travel_date=travel_date,
|
||||
journey_type=journey_type if journey_type == "inbound" else None,
|
||||
path_journey_type="back" if journey_type == "inbound" else "out",
|
||||
)
|
||||
|
||||
return render_template(
|
||||
|
|
@ -1480,15 +1485,20 @@ def api_walkon_fares(
|
|||
return jsonify({"error": str(e)}), 500
|
||||
|
||||
|
||||
@app.route("/api/results_refresh/<station_crs>/<slug>/<travel_date>")
|
||||
def api_results_refresh(station_crs: str, slug: str, travel_date: str) -> Response:
|
||||
return _api_results_refresh(
|
||||
station_crs, slug, travel_date, request.args.get("return_date")
|
||||
)
|
||||
@app.route(
|
||||
"/api/results_refresh/<station_crs>/<slug>/<path_journey_type>/<travel_date>"
|
||||
)
|
||||
def api_results_refresh(
|
||||
station_crs: str, slug: str, path_journey_type: str, travel_date: str
|
||||
) -> Response:
|
||||
if path_journey_type not in {"out", "back"}:
|
||||
abort(404)
|
||||
journey_type = "inbound" if path_journey_type == "back" else "outbound"
|
||||
return _api_results_refresh(station_crs, slug, travel_date, None, journey_type)
|
||||
|
||||
|
||||
@app.route(
|
||||
"/api/results_refresh/<station_crs>/<slug>/<travel_date>/return/<return_date>"
|
||||
"/api/results_refresh/<station_crs>/<slug>/return/<travel_date>/<return_date>"
|
||||
)
|
||||
def api_return_results_refresh(
|
||||
station_crs: str, slug: str, travel_date: str, return_date: str
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue