1 00:00:02,250 --> 00:00:07,800 Alors maintenant, pour terminer dans ce module, je veux m'assurer que nous sauvegardons également les commandes sur un serveur et bien 2 00:00:07,800 --> 00:00:10,530 sûr que nous les récupérons également à partir de là. 3 00:00:10,540 --> 00:00:16,810 Maintenant, nous avons le créateur d'action de commandes ici et là, nous pouvons à nouveau profiter de Redux Thunk 4 00:00:16,810 --> 00:00:22,780 et retourner notre fonction ici, qui obtient cette fonction de répartition, qui devrait être asynchrone avec le mot 5 00:00:22,810 --> 00:00:25,280 clé async afin que nous puissions utiliser 6 00:00:25,570 --> 00:00:32,110 async wait et dans cette fonction ici que nous renvoyons, finalement j'enverrai mon objet d'action mais avant cela, nous pouvons 7 00:00:32,110 --> 00:00:38,320 maintenant envoyer une demande pour stocker cette commande sur un serveur et nous pouvons emprunter cette demande au 8 00:00:38,320 --> 00:00:41,650 créateur de l'action produits. Il n'y a pas vraiment 9 00:00:41,710 --> 00:00:46,930 de grande différence si nous créons un produit ou cette commande, nous pouvons donc copier l'intégralité de ce 10 00:00:46,930 --> 00:00:59,170 code de création de produit ici jusqu'à ici et le déplacer vers les commandes. fichier js. 11 00:00:59,180 --> 00:01:00,450 Maintenant, bien sûr, vous pouvez 12 00:01:00,470 --> 00:01:05,530 également ajouter la gestion des erreurs ici, je ne l'ai pas ici, une chose que je veux au moins ajouter est que 13 00:01:05,540 --> 00:01:07,880 je ne reçois pas de contrôle si la réponse n'est 14 00:01:07,880 --> 00:01:13,130 pas correcte, auquel cas je veux pour lancer une nouvelle erreur, quelque chose s'est mal passé, mais cela ne devrait pas être le 15 00:01:13,130 --> 00:01:14,500 sujet ici car nous avons couvert 16 00:01:14,510 --> 00:01:16,410 la gestion des erreurs et le chargement des 17 00:01:16,440 --> 00:01:20,420 filateurs, pas vraiment la partie sur laquelle je veux me concentrer ici, au lieu de cela, assurons-nous d'envoyer 18 00:01:20,450 --> 00:01:21,080 cette demande 19 00:01:21,110 --> 00:01:25,150 à la bonne adresse et cela ne devrait pas être le nœud des produits, mais disons le nœud 20 00:01:25,520 --> 00:01:32,260 des commandes qui a du sens, je suppose parce que nous voulons stocker nos commandes. Peut-être que nous voulons également stocker nos commandes spécifiques à cet utilisateur afin que nous puissions stocker 21 00:01:32,260 --> 00:01:38,740 cela dans / commandes / U1 qui est mon ID utilisateur factice, je suppose ici. Plus tard, ce sera différent, plus tard, 22 00:01:38,740 --> 00:01:42,040 nous aurons un véritable ID ici, un ID dynamique, 23 00:01:42,040 --> 00:01:48,350 pour l'instant, codons-le ici pour que nous ayons un sous-dossier, un sous-dossier par utilisateur plus tard. 24 00:01:48,610 --> 00:01:53,980 Ce devrait être une demande de publication, car nous ajoutons, nous ajoutons de nouvelles données, nous ajoutons une nouvelle commande. 25 00:01:53,980 --> 00:01:55,360 Cet en-tête doit être défini et bien 26 00:01:55,360 --> 00:01:58,170 sûr, les données que nous envoyons sont différentes. Là, je veux 27 00:01:58,210 --> 00:02:05,020 envoyer mes articles de carte et mon montant total et une autre chose importante, la date de la commande. 28 00:02:05,890 --> 00:02:12,820 Je veux envoyer ma date ici convertie en une chaîne avec toISOString sur l'objet date pour que nous 29 00:02:12,820 --> 00:02:17,530 le créons localement dans l'application, puis nous enregistrons l'horodatage sur le serveur. 30 00:02:17,530 --> 00:02:22,180 Maintenant, dans votre application, vous pouvez également faire cette création de date sur le serveur, mais comme ce 31 00:02:22,180 --> 00:02:27,100 cours ne doit pas se concentrer sur la programmation côté serveur, nous le ferons ici et l'enverrons au serveur 32 00:02:27,100 --> 00:02:29,450 sans trop nous inquiéter ce qu'un autre serveur 33 00:02:29,530 --> 00:02:34,500 pourrait faire pour nous, faisons à la place toutes les choses ici et envoyons simplement cet horodatage terminé au serveur. 34 00:02:34,570 --> 00:02:40,300 Maintenant, cela ajoutera une commande ici et une fois que nous aurons terminé, nous récupérerons nos données de réponse 35 00:02:40,330 --> 00:02:46,090 qui comprendront cet ID généré automatiquement si vous vous en souvenez, nous l'avons également fait lors de la création du produit. 36 00:02:46,090 --> 00:02:51,820 Donc donc maintenant, lorsque nous ajoutons une commande, nous transmettons bien sûr nos articles et le montant, mais maintenant je veux également 37 00:02:51,820 --> 00:02:55,990 transmettre l'ID que je reçois de resData. nom, c'est la même logique que 38 00:02:56,170 --> 00:03:02,710 nous avons utilisée lorsque nous avons créé un produit et il y a une chose supplémentaire, mon instantané de date doit bien 39 00:03:02,710 --> 00:03:05,040 sûr être le même que celui créé ici. 40 00:03:05,050 --> 00:03:14,010 En fait, ce que je vais faire, c'est que je vais créer mon instantané ici, la date avec une nouvelle date, puis utiliser cette constante ici pour 41 00:03:14,010 --> 00:03:20,840 créer ma version de chaîne et utiliser la même constante ici pour la transmettre avec mes données de commande. 42 00:03:20,850 --> 00:03:23,730 Donc, ici, la date fait référence à cette constante de 43 00:03:23,730 --> 00:03:29,400 date, de sorte que j'utilise un seul et même horodatage, à la fois localement dans mes données gérées avec Redux qui sont 44 00:03:29,400 --> 00:03:35,670 les données avec lesquelles je travaille ici dans cette application en cours d'exécution et bien sûr, j'ai également le même horodatage sur le serveur qui 45 00:03:35,670 --> 00:03:41,880 sont les données que je chargerai à l'avenir ou d'autres appareils chargeront. Et maintenant, nous devons juste travailler 46 00:03:41,900 --> 00:03:45,500 sur le réducteur de commandes pour ajouter une commande. 47 00:03:45,500 --> 00:03:48,450 L'ID est maintenant quelque chose que je reçois 48 00:03:48,470 --> 00:03:52,910 de l'extérieur, alors j'ai ici orderData. C'est parce que c'est ce 49 00:03:52,940 --> 00:03:58,700 que nous transmettons ici, c'est que l'ID généré automatiquement Firebase nous donne et la date est 50 00:03:58,910 --> 00:04:06,100 également reçue de l'extérieur, ici nous pouvons maintenant utiliser orderData. date comme ça et avec ça, nous avons toute la logique pour, 51 00:04:06,250 --> 00:04:07,600 espérons-le, ajouter une commande. 52 00:04:07,630 --> 00:04:14,710 Maintenant, revenons ici et ajoutons cela au panier et cliquez sur commander maintenant, cela semble fonctionner, si nous revenons en arrière, nous voyons 53 00:04:14,740 --> 00:04:20,890 maintenant un nœud de commandes ici sur Firebase avec un sous-dossier U1 pour notre utilisateur avec l'ID unique généré 54 00:04:20,890 --> 00:04:27,400 et là-dedans, les données de commande avec l'horodatage avec le prix, avec les éléments de la carte qui était cette seule 55 00:04:27,400 --> 00:04:31,570 chemise blanche et que tout ne semble pas trop mal je dirais.