Skip to content

feat: publier une mission et la lire, côté API (#176) - #186

Merged
algabah2004 merged 2 commits into
mainfrom
176-publier-une-mission
Nov 14, 2026
Merged

algabah2004 merged 2 commits into
mainfrom
176-publier-une-mission

Conversation

@sowibrr

@sowibrr sowibrr commented Nov 14, 2026

Copy link
Copy Markdown
Collaborator

Closes #176 (la partie API) · Suivi : #166 · Contrat : #183 · Proposition : #182

Ce qui a été fait

Le module missions de l'API (contracts/missions.yaml, tag « missions »), avec sa migration V20261114_1830__missions.sql :

  • créer un brouillon, seul ou depuis sa demande (404 si la demande n'est pas la mienne) ;
  • lire une mission et lister les missions publiques ou les miennes, par curseur ;
  • publier : au plus 5 par période de 24 h et par compte, sinon 429 avec Retry-After et rien n'est publié. Deux publications simultanées se comptent l'une après l'autre (verrou en base) ;
  • fermer une mission publiée ;
  • inviter un développeur (deux fois la même personne : sans effet).

Qui voit quoi : le client toujours ; tout le monde une annonce publique publiée, fermée ou terminée ; un invité une mission sur invitation dès qu'elle n'est plus un brouillon. Pour tous les autres, la mission n'existe pas (404), jamais 403. Les lectures publiques sont ouvertes sans connexion dans SecuriteConfig (GET /api/missions et GET /api/missions/*) ; le détail du travail restera fermé.

Toutes les erreurs de champ sont signalées ensemble dans un seul 400. Le budget est un entier d'unité mineure avec sa devise ISO 4217 ; la base refuse un budget sans devise.

Comment c'est vérifié

  • tests : MissionsTest, 14 tests écrits avant le code (ils échouaient en 404), puis verts :
    • un brouillon n'est visible que de son client ;
    • une mission sur invitation n'est visible que des invités, et un brouillon invité reste invisible ;
    • publier deux fois ou avec une version périmée (409) ;
    • budget négatif ou devise inconnue ;
    • plus de 5 publications par jour (429) sans publication à moitié, et un autre compte n'est pas limité ;
    • le curseur sans doublon.
  • suite complète de l'API en local : 384 tests, 0 échec, y compris ModulesTest (le module n'appelle que Annuaire et Demandes). Après la mise à jour sur main : MissionsTest et ModulesTest repassent.

Décisions et alternatives écartées

Ce qui n'est pas dans cette PR (reste de #176)

Pistes d'amélioration

Outils d'IA utilisés : Claude Code (Claude Sonnet 5.5) pour le code et les tests.

🤖 Generated with Claude Code

Le module missions : créer un brouillon (seul ou depuis sa demande),
publier (au plus 5 par 24 h et par compte, sinon 429 avec Retry-After),
fermer, inviter un développeur, lire une mission et lister les missions
publiques ou les siennes, par curseur. Une mission sur invitation, un
brouillon ou la mission d'un autre n'existent pas pour qui n'a pas le
droit de les voir (404). Les lectures publiques sont ouvertes sans
connexion dans la sécurité.

Outils d'IA : Claude Code (Claude Sonnet 5.5).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@sowibrr
sowibrr requested a review from algabah2004 as a code owner November 14, 2026 18:31
algabah2004 pushed a commit that referenced this pull request Nov 14, 2026
…ions (#186)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
algabah2004 added a commit that referenced this pull request Nov 14, 2026
… côte à côte (#164)

* feat: l'orientation parle aux non-techniciens et présente les options côte à côte

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat: l'assistant explique d'abord, la personne peut préciser son besoin et retrouve ses demandes

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix: migration des précisions en 1835, la 1830 est prise par les missions (#186)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Algassimou Bah <algassimou.bah@systalink.fr>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@algabah2004
algabah2004 merged commit af51393 into main Nov 14, 2026
7 checks passed
@algabah2004
algabah2004 deleted the 176-publier-une-mission branch November 14, 2026 19:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Missions · M2 : publier une mission

2 participants