Repository navigation
feat: publier une mission et la lire, côté API (#176) - #186
Merged
Merged
Conversation
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>
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #176 (la partie API) · Suivi : #166 · Contrat : #183 · Proposition : #182
Ce qui a été fait
Le module
missionsde l'API (contracts/missions.yaml, tag « missions »), avec sa migrationV20261114_1830__missions.sql:429avecRetry-Afteret rien n'est publié. Deux publications simultanées se comptent l'une après l'autre (verrou en base) ;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), jamais403. Les lectures publiques sont ouvertes sans connexion dansSecuriteConfig(GET /api/missionsetGET /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é
MissionsTest, 14 tests écrits avant le code (ils échouaient en 404), puis verts :409) ;429) sans publication à moitié, et un autre compte n'est pas limité ;ModulesTest(le module n'appelle queAnnuaireetDemandes). Après la mise à jour surmain:MissionsTestetModulesTestrepassent.Décisions et alternatives écartées
404plutôt que403pour tout ce que la personne n'a pas le droit de savoir exister (conventions §5).429et non409 limite_atteintecomme le disait Missions · M2 : publier une mission #176 (conventions §6).409 demande_non_publieepour l'instant :demandesn'a pas encore d'état « publiée » (Module · Freelance : du besoin au cahier des charges publié (@sowibrr) #158). Pour l'instant on exige seulement que la demande soit la mienne.demande: un module ne lit pas les tables d'un autre.Ce qui n'est pas dans cette PR (reste de #176)
PATCH /api/missions/{id}(modifier l'annonce) ;Pistes d'amélioration
ON DELETE CASCADE). Missions · M6 : avis, profil prouvé, données personnelles #180 doit les fermer à la place, pour ne pas perdre les propositions des autres.nombrePropositionsvaut 0 jusqu'à Missions · M3 : candidater, choisir, fixer le devis #177.Outils d'IA utilisés : Claude Code (Claude Sonnet 5.5) pour le code et les tests.
🤖 Generated with Claude Code