Files
fuelboard-relay-api/scripts/run.sh
T
FuelBoard Contributor b315f4dc47 FuelBoard Relay API: official Fuel Finder API adapter (sibling of CSV relay)
- Talks to the OFFICIAL GOV.UK Fuel Finder API instead of the public CSV
  mirror: OAuth token (/api/v1/oauth/generate_access_token), batched
  paging (500/page via batch-number) over /api/v1/pfs and
  /api/v1/pfs/fuel-prices, joined on node_id.
- Price strings parsed to pence with pounds->pence correction (< 2.0);
  50-500p sane band keeps junk out of the cheapest reference.
- Fuel mapping: E5/E10 as-is; B7/B7_STANDARD/B7S/B7P/B10 -> DIESEL;
  HVO/SDV dropped (app tracks E5/E10/DIESEL only).
- lat/lng parsed from nested location strings.
- Output contract IDENTICAL to fuelboard-relay (/health + /api/v1/stations),
  so the app/widget/alerts work unchanged; switch = point app at :8789.
- CSV mirror kept as automatic fallback (FUEL_SOURCE=auto) so the full
  path is testable before GOV.UK One Login creds exist.
- 12 unit tests against documented API shapes (no network).
2026-08-12 15:34:57 +01:00

16 lines
372 B
Bash
Executable File

#!/bin/bash
# FuelBoard Relay API launcher (official Fuel Finder API source)
set -euo pipefail
cd "$(dirname "$0")/.."
if [ ! -f .env ]; then
echo "⚠ No .env found — running in DEMO/CSV-fallback mode (no credentials)."
fi
set -a
[ -f .env ] && source .env
set +a
PORT="${FUEL_RELAY_PORT:-8789}"
exec python3 -m uvicorn app.main:app --host 0.0.0.0 --port "$PORT"