﻿1
00:00:01,010 --> 00:00:03,970
‫Instructeur : Très bien, et maintenant juste pour

2
00:00:03,970 --> 00:00:07,183
‫terminer cette partie, créons des usines pour obtenir des documents.

3
00:00:08,740 --> 00:00:11,963
‫Et commençons par getOne ici, d'accord ?

4
00:00:12,910 --> 00:00:17,910
‫Exportations. getOne, mais celui-ci est en fait un peu plus

5
00:00:18,580 --> 00:00:20,690
‫délicat, et c'est parce que nous avons

6
00:00:20,690 --> 00:00:22,710
‫une population dans le gestionnaire getTour.

7
00:00:22,710 --> 00:00:24,803
‫Alors, jetons un coup d'œil à cela.

8
00:00:25,900 --> 00:00:30,090
‫Donc, ici, dans celui-ci, nous avons cette population ici, qui est différente

9
00:00:30,090 --> 00:00:32,570
‫de tous les autres gestionnaires d'obtention

10
00:00:32,570 --> 00:00:35,220
‫dans les autres ressources, n'est-ce pas ?

11
00:00:35,220 --> 00:00:37,620
‫Mais bon, ce n'est pas vraiment

12
00:00:37,620 --> 00:00:40,670
‫un problème car nous allons simplement nous permettre

13
00:00:40,670 --> 00:00:45,670
‫de passer un objet d'options de remplissage dans notre fonction getOne, d'accord ?

14
00:00:48,030 --> 00:00:50,840
‫Ainsi, au lieu de simplement transmettre

15
00:00:50,840 --> 00:00:55,700
‫le modèle, nous aurons également le remplissage, donc les options, d'accord.

16
00:00:57,890 --> 00:01:00,370
‫Et donc, à partir de là, nous retournerons ensuite

17
00:01:00,370 --> 00:01:02,053
‫la fonction de gestionnaire normale.

18
00:01:03,360 --> 00:01:06,563
‫Alors, allons-y et copiez encore tout cela, très

19
00:01:10,850 --> 00:01:11,683
‫bien.

20
00:01:13,730 --> 00:01:15,330
‫Donc, nous n'avons pas besoin de celui-ci ici.

21
00:01:17,690 --> 00:01:19,743
‫Alors ici, comme toujours,

22
00:01:23,140 --> 00:01:25,800
‫c'est modèle, et ici c'est doc.

23
00:01:25,800 --> 00:01:27,993
‫Eh bien, en fait ici,

24
00:01:30,520 --> 00:01:33,850
‫document, et ici, encore une fois, données égales à doc.

25
00:01:33,850 --> 00:01:36,210
‫Maintenant, nous devons également apporter quelques

26
00:01:36,210 --> 00:01:38,390
‫modifications ici maintenant à cause de

27
00:01:38,390 --> 00:01:41,610
‫ce remplissage, donc fondamentalement, nous allons d'abord créer la

28
00:01:41,610 --> 00:01:44,950
‫requête, puis, s'il y a l'objet options de remplissage,

29
00:01:44,950 --> 00:01:46,550
‫nous l'ajouterons ensuite

30
00:01:46,550 --> 00:01:50,810
‫à la requête, puis par le Fin, attendez cette requête, d'accord ?

31
00:01:50,810 --> 00:01:51,643
‫Avoir du sens ?

32
00:01:53,390 --> 00:01:55,890
‫Alors, traduisons ce que je viens de dire.

33
00:01:55,890 --> 00:02:00,773
‫Ainsi, la requête est simplement égale à Model. findById, comme ça,

34
00:02:02,770 --> 00:02:04,993
‫non ?

35
00:02:06,630 --> 00:02:10,980
‫Ensuite, s'il existe un objet d'options de remplissage, eh

36
00:02:10,980 --> 00:02:12,193
‫bien,

37
00:02:13,420 --> 00:02:15,020
‫dans ce cas,

38
00:02:15,020 --> 00:02:20,020
‫la requête sera une requête. remplir avec les options de remplissage, d'accord ?

39
00:02:24,410 --> 00:02:27,370
‫Et puis, enfin, nous attendons notre requête et

40
00:02:27,370 --> 00:02:28,853
‫l'enregistrons dans le document.

41
00:02:30,010 --> 00:02:35,010
‫Alors, attendez une requête comme celle-ci, d'accord.

42
00:02:36,210 --> 00:02:38,660
‫Et donc, c'est en fait ça.

43
00:02:38,660 --> 00:02:40,360
‫Donc, cette logique que nous

44
00:02:40,360 --> 00:02:43,200
‫avons ici avec ne pas attendre la requête tout de

45
00:02:43,200 --> 00:02:45,300
‫suite, mais simplement l'enregistrer dans une variable,

46
00:02:45,300 --> 00:02:48,220
‫afin que nous puissions ensuite, à l'étape suivante, la manipuler.

47
00:02:48,220 --> 00:02:50,770
‫En fait, nous avons déjà fait ce genre

48
00:02:50,770 --> 00:02:54,020
‫de choses avant de créer nos fonctionnalités d'API, n'est-ce pas ?

49
00:02:54,020 --> 00:02:57,210
‫Donc, seulement à la fin, lorsque toute la requête est

50
00:02:57,210 --> 00:03:00,563
‫prête, nous l'attendrons et la stockerons quelque part dans une variable.

51
00:03:02,260 --> 00:03:06,600
‫Maintenant, allons-y et utilisons celui-ci partout, en commençant bien

52
00:03:06,600 --> 00:03:08,803
‫sûr par le Tour.

53
00:03:10,470 --> 00:03:12,170
‫Ainsi, getTour sera désormais

54
00:03:13,670 --> 00:03:15,473
‫usine. getOne,

55
00:03:18,260 --> 00:03:20,900
‫et passez l'objet Options de visite

56
00:03:20,900 --> 00:03:24,440
‫et de remplissage, vous vous en souvenez ?

57
00:03:24,440 --> 00:03:29,440
‫Et donc, ce que nous allons faire, c'est dire chemin et critiques.

58
00:03:31,590 --> 00:03:35,540
‫Bon, alors rappelez-vous que la propriété path est essentiellement

59
00:03:35,540 --> 00:03:37,720
‫le champ que nous

60
00:03:37,720 --> 00:03:40,950
‫voulons remplir, et ensuite nous pouvons également spécifier

61
00:03:40,950 --> 00:03:43,750
‫select, alors rappelez-vous celui-ci, où nous

62
00:03:43,750 --> 00:03:47,770
‫spécifions lequel des champs nous voulons réellement obtenir, n'est-ce pas?

63
00:03:47,770 --> 00:03:48,603
‫Mais dans

64
00:03:48,603 --> 00:03:50,050
‫ce cas, nous n'avons rien de

65
00:03:50,050 --> 00:03:51,900
‫tout cela, alors laissons les choses comme ça.

66
00:03:53,180 --> 00:03:57,723
‫Et maintenant, nous pouvons réellement aller de l'avant et supprimer tout cela.

67
00:03:58,910 --> 00:04:00,570
‫Tellement bon.

68
00:04:00,570 --> 00:04:03,473
‫Et, juste pour être sûr, testons cela rapidement.

69
00:04:06,200 --> 00:04:07,963
‫Donc, on va faire un certain Tour,

70
00:04:10,880 --> 00:04:12,630
‫et, effectivement, ça marche toujours.

71
00:04:12,630 --> 00:04:15,503
‫Voyons si celui-ci avait des critiques.

72
00:04:16,630 --> 00:04:19,210
‫Oh, oui, en fait, et vous

73
00:04:19,210 --> 00:04:22,993
‫voyez que le processus de population fonctionne également toujours.

74
00:04:24,920 --> 00:04:28,177
‫Donc, c'était réussi, je dirais.

75
00:04:28,177 --> 00:04:30,870
‫Et donc, maintenant, utilisons également ce getOne dans

76
00:04:30,870 --> 00:04:32,710
‫toutes les autres ressources.

77
00:04:32,710 --> 00:04:36,833
‫Donc, le contrôleur utilisateur ici où nous avons, voyons où

78
00:04:38,200 --> 00:04:40,603
‫il se trouve, ah, ici.

79
00:04:43,760 --> 00:04:47,047
‫Alors, disons usine. getOne, mais

80
00:04:48,930 --> 00:04:52,290
‫uniquement avec le modèle utilisateur et aucun

81
00:04:52,290 --> 00:04:54,343
‫objet d'options de remplissage.

82
00:04:56,900 --> 00:04:58,740
‫D'accord, et puisque nous sommes

83
00:04:58,740 --> 00:05:02,030
‫ici, modifions simplement le message d'erreur ici pour créer

84
00:05:02,030 --> 00:05:03,850
‫un utilisateur, donc

85
00:05:03,850 --> 00:05:07,583
‫cet itinéraire n'est pas défini, il ne le sera jamais,

86
00:05:08,980 --> 00:05:11,703
‫et veuillez utiliser l'inscription à la place.

87
00:05:17,010 --> 00:05:19,110
‫Ensuite, et enfin,

88
00:05:19,110 --> 00:05:23,410
‫la même chose pour les critiques en gros.

89
00:05:23,410 --> 00:05:25,063
‫Donc, les exportations. getReview est

90
00:05:29,018 --> 00:05:31,427
‫égal à l'usine. getOne review,

91
00:05:35,450 --> 00:05:40,193
‫et je pense que nous n'avons pas encore (marmonne) nos itinéraires.

92
00:05:41,360 --> 00:05:46,357
‫Et, en effet, nous ne le faisons pas, donc en ajoutant ceci très

93
00:05:46,357 --> 00:05:49,107
‫rapidement ici, reviewController. getReview, d'accord ?

94
00:05:54,300 --> 00:05:56,423
‫Testons aussi rapidement celui-ci, juste

95
00:05:58,870 --> 00:06:01,300
‫parce que je veux aussi l'ajouter ici

96
00:06:01,300 --> 00:06:03,203
‫à Postman, d'accord ?

97
00:06:04,950 --> 00:06:08,453
‫Donc, il suffit de copier celui-ci parce que c'est similaire, et

98
00:06:10,560 --> 00:06:12,393
‫puis, en effet, c'est get.

99
00:06:15,300 --> 00:06:20,300
‫Et, oui, fonctionne parfaitement bien, stockez-le ici dans les critiques

100
00:06:23,730 --> 00:06:24,987
‫et getReview.

101
00:06:28,258 --> 00:06:30,560
‫D'accord, maintenant tout ce

102
00:06:30,560 --> 00:06:35,560
‫qui manque, c'est une fonction d'usine getAll, n'est-ce pas ?

103
00:06:36,070 --> 00:06:37,320
‫Donc, en

104
00:06:39,200 --> 00:06:42,380
‫gros, pour remplacer ce getAllTours, getAllUsers, que

105
00:06:42,380 --> 00:06:46,003
‫nous devrions également avoir quelque part ici, donc

106
00:06:46,970 --> 00:06:50,530
‫getAllUsers, et aussi getAllReviews, alors copions-le encore ici

107
00:06:50,530 --> 00:06:53,540
‫à partir du contrôleur Tour car en

108
00:06:53,540 --> 00:06:56,380
‫fait c'est celui qui est vraiment

109
00:06:56,380 --> 00:06:59,920
‫complet car il a tout ces fonctionnalités d'API,

110
00:06:59,920 --> 00:07:03,390
‫et donc, après avoir créé notre fonction d'usine

111
00:07:03,390 --> 00:07:07,083
‫getAll, les trois ressources obtiendront alors ces fonctionnalités d'API.

112
00:07:09,299 --> 00:07:12,840
‫Encore une fois, en copiant tout cela,

113
00:07:15,230 --> 00:07:17,433
‫exportez. getAll, et

114
00:07:24,630 --> 00:07:28,390
‫donc maintenant, nous devrons en fait exiger ces fonctionnalités

115
00:07:28,390 --> 00:07:29,743
‫d'API ici, et

116
00:07:31,690 --> 00:07:35,780
‫en fait nous pouvons en fait les supprimer d'ici car

117
00:07:35,780 --> 00:07:38,320
‫nous n'en aurons plus besoin car

118
00:07:38,320 --> 00:07:43,277
‫nous les transférons maintenant vers la fabrique de gestionnaires, n'est-ce pas ?

119
00:07:45,360 --> 00:07:49,403
‫Maintenant, ici, tout ce que nous avons à faire est

120
00:07:50,370 --> 00:07:53,243
‫de remplacer, comme toujours, par model,

121
00:07:56,300 --> 00:07:58,703
‫puis ici, doc et data.

122
00:08:01,700 --> 00:08:03,253
‫Maintenant, d'accord, parfait.

123
00:08:07,480 --> 00:08:09,133
‫Alors, voyons

124
00:08:13,947 --> 00:08:17,453
‫si cela fonctionne, getAll avec Tour.

125
00:08:22,530 --> 00:08:25,530
‫Et maintenant, je veux vraiment voir

126
00:08:25,530 --> 00:08:28,300
‫si cela fonctionne toujours avec toutes

127
00:08:28,300 --> 00:08:31,380
‫ces fonctionnalités, et c'est donc ici,

128
00:08:31,380 --> 00:08:33,830
‫getAll Tours, et donc,

129
00:08:33,830 --> 00:08:38,467
‫ajoutons notre chaîne de requête ici, et disons une durée

130
00:08:43,040 --> 00:08:47,063
‫supérieure ou égale à 10, et trions par prix.

131
00:08:50,470 --> 00:08:53,133
‫D'accord, et nous obtenons donc deux résultats ici.

132
00:08:56,170 --> 00:08:58,490
‫D'accord, ça ne marche pas.

133
00:08:58,490 --> 00:09:03,030
‫Quoi qu'il en soit, nous obtenons les deux résultats (rires) ici,

134
00:09:03,030 --> 00:09:06,290
‫et ils ont tous les deux une durée

135
00:09:06,290 --> 00:09:09,360
‫supérieure à 10, et le prix est

136
00:09:09,360 --> 00:09:13,420
‫de 1497, et le second est plus élevé, d'accord ?

137
00:09:13,420 --> 00:09:15,810
‫Mettons-le ici comme à sept, donc nous obtenons

138
00:09:15,810 --> 00:09:17,673
‫un peu plus de résultats.

139
00:09:19,949 --> 00:09:21,249
‫D'accord, et maintenant nous en avons cinq.

140
00:09:23,560 --> 00:09:27,480
‫Bon, de toute façon, faisons maintenant la même chose pour les critiques,

141
00:09:28,910 --> 00:09:32,440
‫car je suis vraiment ravi de tester ces fonctionnalités de

142
00:09:32,440 --> 00:09:34,350
‫l'API sur les critiques également.

143
00:09:34,350 --> 00:09:36,510
‫Maintenant, un problème que nous avons

144
00:09:36,510 --> 00:09:39,740
‫ici est que ce gestionnaire de route a en fait ces

145
00:09:40,706 --> 00:09:44,610
‫deux lignes de code que tous les autres gestionnaires getAll n'ont pas, d'accord ?

146
00:09:44,610 --> 00:09:47,730
‫Mais, ce que nous allons faire ici, c'est simplement copier également

147
00:09:47,730 --> 00:09:50,730
‫ce code dans notre usine de gestionnaires, d'accord ?

148
00:09:50,730 --> 00:09:52,150
‫C'est une sorte

149
00:09:52,150 --> 00:09:56,040
‫de hack parce que nous n'avons vraiment besoin de celui-ci que pour

150
00:09:56,040 --> 00:09:59,210
‫les critiques de getAll, mais contourner ce serait un peu

151
00:09:59,210 --> 00:10:02,500
‫trop de travail ici dans cette situation, et une fois

152
00:10:02,500 --> 00:10:05,623
‫de plus, je veux simplement rester simple ici, d'accord.

153
00:10:07,010 --> 00:10:08,593
‫Alors, copions

154
00:10:10,530 --> 00:10:15,150
‫ceci ici, et j'ajoute un commentaire ici pour

155
00:10:16,500 --> 00:10:21,500
‫permettre les getReviews imbriquées sur la tournée, d'accord ?

156
00:10:24,980 --> 00:10:29,533
‫Et donc ce filtre, on va aussi le passer ici, d'accord ?

157
00:10:31,260 --> 00:10:33,363
‫Encore une fois, c'est un petit

158
00:10:35,400 --> 00:10:37,460
‫hack, mais je vais

159
00:10:37,460 --> 00:10:41,770
‫le laisser comme ça parce que je pense que c'est raisonnable, d'accord.

160
00:10:41,770 --> 00:10:44,223
‫Quoi qu'il en soit, débarrassons-nous maintenant de

161
00:10:45,260 --> 00:10:48,373
‫ça, donc usine. getAll et révisez, d'accord ?

162
00:10:54,476 --> 00:10:57,493
‫Mettons cela ici à côté de tous les autres.

163
00:11:02,430 --> 00:11:03,430
‫Et maintenant,

164
00:11:03,430 --> 00:11:07,340
‫comme vous le voyez, nous n'avons même plus besoin de ce catchAsync

165
00:11:07,340 --> 00:11:09,200
‫ici, donc je vais le commenter

166
00:11:09,200 --> 00:11:12,300
‫ici parce que, qui sait, peut-être qu'à l'avenir nous en

167
00:11:12,300 --> 00:11:15,523
‫aurons besoin pour une autre fonction Middleware ici, tout droit.

168
00:11:16,870 --> 00:11:18,660
‫Donc, cela a l'air bien

169
00:11:18,660 --> 00:11:21,783
‫et propre, et testons maintenant les critiques de getAll.

170
00:11:23,420 --> 00:11:28,420
‫Très bien, alors enregistrons simplement les modifications ici également.

171
00:11:30,240 --> 00:11:32,310
‫Nous n'en avons pas

172
00:11:32,310 --> 00:11:36,143
‫besoin, mais je veux en fait obtenir toutes les critiques.

173
00:11:37,530 --> 00:11:39,743
‫Donc, pour le moment, nous

174
00:11:40,980 --> 00:11:43,430
‫avons quatre avis, et essayons donc de

175
00:11:43,430 --> 00:11:46,853
‫filtrer les avis uniquement avec une note de quatre, disons.

176
00:11:48,860 --> 00:11:53,860
‫Donc, chaîne de requête, note égale à quatre.

177
00:11:57,820 --> 00:12:00,170
‫Oh, et ça marche

178
00:12:00,170 --> 00:12:02,850
‫vraiment, tellement bien, c'est vraiment bien.

179
00:12:02,850 --> 00:12:06,780
‫Donc, juste comme ça, nous avons accès à toutes ces fonctionnalités d'API

180
00:12:06,780 --> 00:12:11,780
‫comme le filtrage, le tri, la pagination et toutes ces bonnes choses que nous avons

181
00:12:11,810 --> 00:12:13,988
‫implémentées (rires) il y a longtemps dans

182
00:12:13,988 --> 00:12:15,890
‫le cours, n'est-ce pas ?

183
00:12:15,890 --> 00:12:17,380
‫Et, je veux

184
00:12:17,380 --> 00:12:21,423
‫aussi m'assurer que ces critiques getAll on Tour fonctionnent toujours.

185
00:12:22,300 --> 00:12:24,120
‫Alors, vérifions cela, et,

186
00:12:24,120 --> 00:12:26,893
‫oui, vous voyez que c'est effectivement le cas.

187
00:12:28,050 --> 00:12:30,380
‫Ainsi, l'ID de tournée que

188
00:12:30,380 --> 00:12:34,490
‫nous avons ici est exactement celui ici et ici.

189
00:12:34,490 --> 00:12:36,840
‫Donc, celui-ci fonctionne

190
00:12:36,840 --> 00:12:39,580
‫également toujours, et utilisons

191
00:12:39,580 --> 00:12:44,060
‫donc enfin getAll pour le contrôleur utilisateur, d'accord.

192
00:12:44,060 --> 00:12:46,733
‫Donc, fondamentalement, remplaçant simplement

193
00:12:47,760 --> 00:12:52,760
‫ceci, donc l'usine. utilisateur getAll, d'accord.

194
00:12:55,180 --> 00:12:57,174
‫Et, plaçons

195
00:12:57,174 --> 00:13:01,483
‫celui-ci près des autres, d'accord.

196
00:13:04,960 --> 00:13:06,910
‫Et puis celui-ci aussi, donc

197
00:13:06,910 --> 00:13:09,650
‫fondamentalement, tous ceux-ci sont générés par les

198
00:13:09,650 --> 00:13:11,590
‫fonctions d'usine ensemble,

199
00:13:11,590 --> 00:13:14,383
‫puis tous les autres simplement au-dessus d'eux.

200
00:13:15,800 --> 00:13:18,580
‫D'accord, faisons de même ici, celui-ci est déjà

201
00:13:18,580 --> 00:13:20,290
‫beau et propre, et

202
00:13:20,290 --> 00:13:23,153
‫de même pour le contrôleur Tour, alors qu'avons-nous

203
00:13:24,170 --> 00:13:25,620
‫d'autre ici ?

204
00:13:27,430 --> 00:13:29,263
‫Celui-ci, nous pouvons nous en débarrasser,

205
00:13:30,690 --> 00:13:34,000
‫et, d'accord, je pense que ça a l'air bien comme ça.

206
00:13:34,000 --> 00:13:37,150
‫Encore une fois, nous pouvons commenter ce morceau de

207
00:13:37,150 --> 00:13:40,410
‫code car, pour l'instant du moins, nous n'en avons plus besoin.

208
00:13:40,410 --> 00:13:44,623
‫Et donc, juste pour le tester à nouveau ici avec

209
00:13:45,640 --> 00:13:47,423
‫les utilisateurs, rassemblons-les tous,

210
00:13:48,890 --> 00:13:50,973
‫et, en effet, les voici.

211
00:13:53,320 --> 00:13:55,960
‫On peut maintenant aussi dire

212
00:13:55,960 --> 00:13:58,873
‫qu'on ne veut que ceux qui ont

213
00:14:00,490 --> 00:14:03,760
‫le rôle d'utilisateur, et, effectivement, ça marche aussi.

214
00:14:03,760 --> 00:14:07,500
‫Génial, et cela termine en fait cette partie de la

215
00:14:07,500 --> 00:14:10,170
‫création de fonctions d'usine de gestionnaires,

216
00:14:10,170 --> 00:14:14,300
‫et c'était vraiment un énorme pas en avant dans notre

217
00:14:14,300 --> 00:14:16,030
‫projet, alors n'oubliez

218
00:14:16,030 --> 00:14:18,710
‫pas que, un peu plus tard, nous

219
00:14:18,710 --> 00:14:22,080
‫allons également créer une ressource de réservation, et

220
00:14:22,080 --> 00:14:25,070
‫vous voyez donc que probablement nous allons pouvoir

221
00:14:25,070 --> 00:14:27,310
‫créer l'API principale pour ces

222
00:14:27,310 --> 00:14:32,310
‫réservations en cinq secondes environ, en utilisant simplement ces cinq fonctions d'usine, d'accord.

223
00:14:32,350 --> 00:14:34,750
‫Quoi qu'il en soit, bon travail, excellent travail, et

224
00:14:34,750 --> 00:14:36,683
‫je vous verrai dans le prochain.

