Skip to content

Brancher la fiche parcours de l'app sur GET /routes/:id et /timeline (E-05) #537

Open

Description

@PaulThiberville

Contexte

Epic : #9
Maquette : E-05 · validée le 2026-09-23 (reprise de #36)
API › Fiche parcours · Ecrans › E-05 · E-05 · E-06 · D-088 · D-093

Suite de #36 (PR #536, découverte de CODE du 19/10) : l'API sert GET /v1/routes/:id et /timeline, mais l'app lit toujours ses fixtures (apps/mobile/src/route/source.ts fournit fixtureSource par défaut, rien ne le remplace par le client). Pour ne pas toucher l'app, #36 a aussi servi les objets photo à côté des URL (photos, place.photo) au lieu de les remplacer, comme le prévoit le contrat de D-093. Ce ticket branche la fiche sur l'API et achève ce contrat.

Comportement attendu

  • La fiche (E-05) et sa timeline (E-06, usePlanTimeline) lisent GET /v1/routes/:id et GET /v1/routes/:id/timeline par packages/api-client (getRoute, getRouteTimeline), à la place de fixtureSource.
  • Photos en objets { url, credit } (type Photo de Servir « À ne pas manquer » et les photos d'étape avec leur crédit (snapshot du Go, fiche) #508) : RouteHero, StepItem et GoPage lisent photos et place.photo ; photoUrls et place.photoUrl sont retirés du schéma partagé route-detail.ts et de la réponse de l'API, sans seconde définition.
  • packages/api-client : la réponse removed de getRoute transmet details.near (pour « Voir des parcours proches », 410) ; getRouteTimeline envoie token pour un parcours privé ouvert par lien.
  • Hors connexion ou API en erreur : état d'erreur de la fiche déjà prévu (retenter), jamais les fixtures en production. Les fixtures ne restent que pour les tests et le mode recette, s'il existe.
  • Aucun appel à Mapbox Directions depuis l'app : la géométrie arrive dans transition.geometry.

Critères d'acceptation

  • Sur un build branché sur staging, la fiche d'un parcours de démo s'ouvre depuis une card avec les données de l'API (titre, étapes, chiffres, avis), sur iOS et Android
  • fixtureSource n'est plus la source par défaut de RouteSheetSourceContext en dehors des tests
  • photoUrls et place.photoUrl retirés du schéma partagé et de la réponse ; le crédit d'une photo s'affiche quand il n'est pas null ; tests de l'API et de l'app à jour
  • Test (packages/api-client) : getRoute sur une 410 rend removedAt et near ; getRouteTimeline transmet token
  • Un parcours privé ouvert par lien affiche sa fiche et sa timeline
  • API injoignable : état d'erreur de la fiche, sans plantage ni donnée de fixture
  • Test à 150 % de texte système mentionné dans la PR

Notes techniques

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions