lekss361
|
f8023a16f8
|
refactor(admin): extract _check_token into shared AdminTokenAuth dep
Per audit batch #127 P2 hygiene (issue #128).
## Problem
Identical `_check_token` function в 3 admin files:
- backend/app/api/v1/admin_scrape.py:37-44
- backend/app/api/v1/admin_leads.py:26-33
- backend/app/api/v1/admin_jobs.py:24-31
## Fix
New `backend/app/core/deps.py` с `verify_admin_token` + Annotated alias:
```python
AdminTokenAuth = Annotated[None, Depends(verify_admin_token)]
```
Заменено в 27 endpoints (18 admin_scrape + 6 admin_leads + 3 admin_jobs):
- Removed local `_check_token` definitions
- `_: None = Depends(_check_token)` → `_: AdminTokenAuth`
- Removed unused imports (`Header`, `HTTPException`, `settings` где не используется)
## Semantics preserved
Все 3 original implementations были identical (503 if env missing + 401 if
mismatch, same header `X-Admin-Token`, same env `SCRAPE_ADMIN_TOKEN`).
Минор: 503 detail text unified to `"admin disabled — set SCRAPE_ADMIN_TOKEN"`
(в оригинале три разные строки — `"admin scrape disabled..."` etc).
Cosmetic — detail в HTTP 503 не парсится клиентским кодом.
## Tests
`uv run pytest tests/ -x -k admin` → 64/64 passed.
## Vault
`code/patterns/Pattern_Admin_Token_Dependency_May14.md` — created.
Closes #128
Refs: #127
|
2026-05-14 23:39:55 +03:00 |
|