From 7a35489f353b7f930b9a45b17d3c4c5eaacc8729 Mon Sep 17 00:00:00 2001 From: Viktor Barzin Date: Sun, 22 Feb 2026 15:12:02 +0000 Subject: [PATCH] Add debug CLI districts subcommand --- cli/districts.py | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 cli/districts.py diff --git a/cli/districts.py b/cli/districts.py new file mode 100644 index 0000000..619fed5 --- /dev/null +++ b/cli/districts.py @@ -0,0 +1,41 @@ +"""Debug CLI — district commands.""" +import click +import httpx + +from cli._context import CliContext, get_http_headers, output, error_output +from services import district_service + + +@click.group("districts") +def districts_group() -> None: + """District management commands.""" + pass + + +@districts_group.command("list") +@click.pass_context +def list_districts(ctx: click.Context) -> None: + """List all available districts.""" + cli_ctx: CliContext = ctx.obj["cli_ctx"] + + try: + if cli_ctx.use_http: + resp = httpx.get( + f"{cli_ctx.api_base_url}/api/get_districts", + headers=get_http_headers(cli_ctx.user_email), + ) + resp.raise_for_status() + data = resp.json() + else: + data = district_service.get_all_districts() + + if cli_ctx.json_output: + output(data, json_mode=True) + else: + print(f"Available districts ({len(data)}):") + for name in sorted(data.keys()): + print(f" {name}: {data[name]}") + except httpx.HTTPStatusError as e: + error_output(f"HTTP {e.response.status_code}: {e.response.text}", cli_ctx.json_output) + except Exception as e: + error_output(str(e), cli_ctx.json_output)