Une nouvelle commande

Exercice 3 sur 4 du chapitre 2 · 100 XP · 2 objectifs vérifiés par des tests

Notions abordées : Corps de requêtePOST201

Les commerçants appellent Margot pour commander une course, et Margot tape tout sur son téléphone. Elle voudrait que l'application enregistre la commande directement.

Votre mission

  1. Ajoutez au contrôleur une méthode Store, branchée sur POST /livraisons.
  2. Elle lit client et quartier dans le corps JSON de la requête.
  3. Elle ajoute la livraison à la tournée, avec le numéro suivant (la tournée en compte 4 : la nouvelle est la 5), pas encore livrée.
  4. Elle répond 201 avec la nouvelle livraison en JSON.

L'onglet « Requêtes » a une commande toute prête à envoyer.

Rappel

ctx.Request().Input("client") lit un champ, qu'il vienne d'un corps JSON, d'un formulaire ou de la query string. Pour remplir une struct d'un coup, il y a aussi ctx.Request().Bind(&livraison).

En Go, une valeur qu'on ne donne pas prend sa valeur zéro : 0 pour un nombre, "" pour une chaîne, false pour un booléen. Livraison{Client: "…"} laisse donc Livree à false.

La tournée vit en mémoire : elle repart de ses quatre livraisons à chaque redémarrage de l'application. Au chapitre 4, elle passera dans une base de données.