From e85d0eab63c3ea9b8c0c81726635c71c82faaf37 Mon Sep 17 00:00:00 2001 From: Deeman Date: Sat, 28 Feb 2026 09:55:13 +0100 Subject: [PATCH] fix(api): lowercase default metric names to match ALLOWED_METRICS Co-Authored-By: Claude Sonnet 4.6 --- web/src/beanflows/api/routes.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web/src/beanflows/api/routes.py b/web/src/beanflows/api/routes.py index 07ce6a2..f0d5221 100644 --- a/web/src/beanflows/api/routes.py +++ b/web/src/beanflows/api/routes.py @@ -136,7 +136,7 @@ async def list_commodities(): @api_key_required(scopes=["read"]) async def commodity_metrics(code: int): """Time series metrics for a commodity. Query params: metrics, start_year, end_year.""" - raw_metrics = request.args.getlist("metrics") or ["Production", "Exports", "Imports", "Ending_Stocks"] + raw_metrics = request.args.getlist("metrics") or ["production", "exports", "imports", "ending_stocks"] metrics = [m for m in raw_metrics if m in analytics.ALLOWED_METRICS] if not metrics: return jsonify({"error": f"No valid metrics. Allowed: {sorted(analytics.ALLOWED_METRICS)}"}), 400 @@ -152,7 +152,7 @@ async def commodity_metrics(code: int): @api_key_required(scopes=["read"]) async def commodity_countries(code: int): """Country ranking for a commodity. Query params: metric, limit.""" - metric = request.args.get("metric", "Production") + metric = request.args.get("metric", "production") if metric not in analytics.ALLOWED_METRICS: return jsonify({"error": f"Invalid metric. Allowed: {sorted(analytics.ALLOWED_METRICS)}"}), 400 @@ -368,7 +368,7 @@ async def commodity_metrics_csv(code: int): return jsonify({"error": "CSV export requires a Starter or Pro plan"}), 403 raw_metrics = request.args.getlist("metrics") or [ - "Production", "Exports", "Imports", "Ending_Stocks", "Total_Distribution", + "production", "exports", "imports", "ending_stocks", "total_distribution", ] metrics = [m for m in raw_metrics if m in analytics.ALLOWED_METRICS] if not metrics: