Skip to content

Exposer et enregistrer le profil complet dans GET /me, PATCH /me et /config #385

Closed

Description

@PaulThiberville

Contexte

Epic : #6
Maquette : sans objet — API seule
API › Compte · API › Découverte (/config) · Compte-et-Monetisation · Modele-de-Donnees · E-09 · D-023
Issu du découpage de #38 (décision de Paul du 2026-10-13). La migration du profil (#126, PR #381 fusionnée le 2026-10-13) a créé les colonnes et tables ; ce ticket les expose et les enregistre. L'écran qui les consomme est #387.

Comportement attendu

Critères d'acceptation

  • PATCH /me enregistre bio, quartier, anecdotes et parcours à la une en une transaction, et GET /me renvoie les valeurs enregistrées
  • 422 sur : bio ou réponse de plus de 150 caractères, plus de 3 anecdotes, question en double ou inactive, plus de 3 parcours à la une, parcours non publié ou d'un autre auteur
  • Un échec de validation ne modifie aucun champ (transaction annulée), test à l'appui
  • GET /me n'affiche jamais un parcours à la une sorti de published, test à l'appui
  • GET /config liste les questions actives dans l'ordre, sans les inactives
  • Schémas OpenAPI à jour, types partagés dans packages/shared

Notes techniques

Nouveau comportement d'un endpoint authentifié, données persistées : niveau 2 probable, revue OWASP ciblée (contrôle d'accès sur les parcours à la une, validation des entrées).

Activity

  1. added this to the v0.3 milestone on Oct 13, 2026
  2. PaulThiberville commented on Oct 13, 2026

    @PaulThiberville
    CollaboratorAuthor

    🔨 Démarrage — plan :

    1. packages/shared : UpdateMe étendu (bio, neighborhood, nullables ; anecdotes, featuredRouteIds), Me étendu (bio, quartier, anecdotes avec libellé, parcours à la une ordonnés, certification : critères avec valeur, seuil et état), AppConfig étendu (questions d'anecdote actives, seuils de certification), règle des critères testée.
    2. apps/api/src/users : lecture et écriture du profil en une transaction ; questions actives et parcours publiés de l'appelant vérifiés dans la transaction (lignes verrouillées en lecture), lecture des parcours à la une avec jointure status = 'published' et author_id = user_id ; valeurs de la certification (parcours vérifiés, note moyenne, parcours réalisés).
    3. Routes GET /me, PATCH /me, GET /config et tests d'intégration sur widoo_test. Corps invalide : 422 validation_error (règle D-071 du wiki API › Conventions : 400 pour une query, 422 pour un corps), alors que le gestionnaire d'erreurs répond aujourd'hui 400 à tout schéma invalide : aligné dans cette PR.
      Branche issue/385-profile-me-config, une PR Fixes #385, niveau 2.
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