R-009 — Endpoint retorna a posição atual na jornada de áudio

TLDR: GET /v1/audios/journey devolve posição atual, total e estado de conclusão; usuário sem jornada recebe 404.

Regra originalmente identificada como RN08 em docs/audio/audio_journey/RULES.md.

Given / When / Then

Dado que o usuário possui um UserJourney associado Quando acessa GET /v1/audios/journey Então recebe:

  • journey_completed — true quando current_journey_audio é null
  • current_position — UserJourney.current_position: posição do current_journey_audio; quando concluída, posição do previous_journey_audio
  • total — UserJourney.total_items: journey.journey_audios.count()
  • user_id — request.user.id

Dado que o usuário não possui UserJourney Quando acessa GET /v1/audios/journey Então recebe HTTP 404

Teste vinculado

tests/audios/test_views_urls.py — test_journey_view_returns_current_position_and_total, test_journey_view_returns_completed_state, test_journey_view_returns_404_when_no_user_journey

Referências