#Le boss final

#Notions

  • Nested Navigation
  • Gestion avancĂ©s des Ă©tats de l’UI
  • CrĂ©er une commande avec une requĂŞte POST et des DTO (Data Transfer Object)

#A vous de jouer

Mettez en place l’écran de commande comme sur la vidéo suivante :

On doit pouvoir passer une commande avec les règles enoncées ci-dessous.

#Quelques règles UI

  • On doit pouvoir cliquer sur la card d’un ingrĂ©dient pour le cocher, par que sur le checkbox
  • Les photos des ingrĂ©dients doivent ĂŞtre affichĂ©es
  • Le bouton de validation doit ĂŞtre dĂ©sactivĂ© si le nombre d’ingrĂ©dients est infĂ©rieur Ă  4
  • On affiche les Ă©tapes avec une progress bar pour indiquer oĂą on en est dans la commande
  • On veut un message Ă  la fin pour confirmer que la commande a bien Ă©tĂ© passĂ©e (l’API vous renvoi)

#Quelques règles business

  • Il faut charger les ingrĂ©dients disponibles et les magasins disponibles depuis le serveur avant de pouvoir commander
  • C’est Ă  vous de passer la date dans le champs placedAt de la commande
  • On ne peut commander que si on est connectĂ©
  • On ne peut commander que dans un restaurant Ă  la fois
  • On ne peut choisir qu’un seul pain
  • On peut choisir 2 viandes maximum
  • On peut des toppings et des sauces de manière illimitĂ©
  • Les ingrĂ©dients de tout type coutent 2€
  • Il faut un minimum de 4 ingrĂ©dients pour commander, le pain n’est pas obligatoire

#🛟 Aide

  • Utilisez des objets simplifiĂ©s pour l’envoi de la commande, on appelle ça des DTO (Data Transfer Object) plutĂ´t que de rĂ©utiliser les objets que nous avions prĂ©cĂ©demment, notamment car le format pour POST est diffĂ©rent de celui pour GET.

  • Vous devrez surement faire des manipulations pour pouvoir afficher les images des ingrĂ©dients, Strapi ne renvoi pas les URL complètes, il manque le nom de domaine, Ă  vous de trouver une solution.

  • Vous n’êtes pas obligĂ© de dĂ©sĂ©rialiser le retour de la requĂŞte de post d’une commande, vous pouvez juste afficher un message de succès.

  • Comment crĂ©er des relations par API : https://docs.strapi.io/dev-docs/api/rest/relations

  • Flow & Combine : https://medium.com/@theAndroidDeveloper/the-most-important-aspect-of-the-kotlin-flow-operator-combine-e59b2e38fcb2