Le carnet se lit, il reste à y écrire : une commande prise dans l'application doit entrer dans la table, et plus seulement dans la mémoire.
Votre mission
- Dans
Store, après la validation, insérez la commande dans la tablelivraisonsavecfacades.DB(). - Répondez 201 avec la livraison, et le numéro que la base lui a donné.
- Une commande invalide répond toujours 422, et n'écrit rien.
- La tournée en mémoire, la slice
livraisons, n'a plus de raison d'être : retirez-la.
Rappel
InsertGetID(données) insère une ligne et renvoie le numéro que SQLite lui a attribué, ici 6, puisque le carnet en compte déjà 5. Les données sont une map[string]any, des colonnes vers leurs valeurs. Pour plusieurs lignes à la fois, Insert prend une slice de maps.
Go ne convertit jamais un type numérique en un autre sans qu'on le demande : un int64 ne va pas dans un int. int(id) fait la conversion. C'est une des règles qui étonnent en venant de PHP, et qui évitent bien des surprises ensuite.