scholarr/app/services/scholars
Justin Visser f8e3098fc3 fix(backend): harden bulk endpoints and redact pdf-queue email for non-admins
- W1: _parse_ids_param now returns 400 on non-integer input instead of 500
- W2: bulk_delete_scholars wraps commit in IntegrityError guard; router
  catches ScholarServiceError → 409
- W3: Move `from typing import Any` to top-level import in application.py
- W4: Redact requested_by_email in PDF queue response for non-admin users
2026-03-07 17:57:37 +01:00
..
__init__.py ci: add CodeQL security scanning and Dependabot 2026-02-27 00:05:17 +01:00
application.py fix(backend): harden bulk endpoints and redact pdf-queue email for non-admins 2026-03-07 17:57:37 +01:00
author_search.py refactor: decompose scholars service and pdf_queue into focused modules 2026-02-27 14:39:12 +01:00
author_search_cache.py fix: resolve all mypy type errors across service modules 2026-02-27 15:49:27 +01:00
constants.py ci: add CodeQL security scanning and Dependabot 2026-02-27 00:05:17 +01:00
exceptions.py ci: add CodeQL security scanning and Dependabot 2026-02-27 00:05:17 +01:00
search_hints.py Initial release prep 2026-02-27 10:46:05 +01:00
uploads.py Initial release prep 2026-02-27 10:46:05 +01:00
validators.py Initial release prep 2026-02-27 10:46:05 +01:00