arbret/backend
counterweight db7a0dbe28
refactor(backend): extract date range validation utilities
Issue #5: Date validation logic was duplicated across availability
and booking routes.

Changes:
- Add date_validation.py with shared utilities:
  - get_bookable_date_range: returns (min_date, max_date) tuple
  - validate_date_in_range: validates date with contextual errors
- Update routes/availability.py to use shared utilities
- Update routes/booking.py to use shared utilities
- Remove redundant _get_date_range_bounds and _get_bookable_date_range
- Error messages now include context (book, set availability, etc.)
2025-12-22 00:02:41 +01:00
..
routes refactor(backend): extract date range validation utilities 2025-12-22 00:02:41 +01:00
tests refactor(auth): unify authorization patterns with MANAGE_OWN_PROFILE permission 2025-12-21 23:50:06 +01:00
auth.py Add ruff linter/formatter for Python 2025-12-21 21:54:26 +01:00
database.py Extract duplicated DATABASE_URL parsing to database.py 2025-12-21 23:16:29 +01:00
date_validation.py refactor(backend): extract date range validation utilities 2025-12-22 00:02:41 +01:00
env.example reviewed 2025-12-20 22:38:39 +01:00
invite_utils.py Add ruff linter/formatter for Python 2025-12-21 21:54:26 +01:00
jobs.py fix: guard pool initialization with asyncio.Lock to prevent race condition 2025-12-21 23:23:21 +01:00
main.py Use connection pool for job enqueueing instead of per-request 2025-12-21 23:13:22 +01:00
models.py refactor(auth): unify authorization patterns with MANAGE_OWN_PROFILE permission 2025-12-21 23:50:06 +01:00
pagination.py refactor(backend): extract pagination utilities 2025-12-22 00:00:24 +01:00
pyproject.toml Phase 1: Add pgqueuer infrastructure 2025-12-21 22:37:04 +01:00
pytest.ini tests passing 2025-12-18 22:08:31 +01:00
schemas.py refactor: derive Permission type from generated OpenAPI schema 2025-12-21 23:55:47 +01:00
seed.py Add ruff linter/formatter for Python 2025-12-21 21:54:26 +01:00
shared_constants.py Add ruff linter/formatter for Python 2025-12-21 21:54:26 +01:00
validate_constants.py Add ruff linter/formatter for Python 2025-12-21 21:54:26 +01:00
validation.py Add ruff linter/formatter for Python 2025-12-21 21:54:26 +01:00
words.txt first implementation 2025-12-20 11:12:11 +01:00
worker.py fix: handle malformed JSON payloads in worker with error logging 2025-12-21 23:24:28 +01:00