﻿1
00:00:01,130 --> 00:00:04,270
‫Jonas: Sigamos creando algunas funciones de fábrica,

2
00:00:04,270 --> 00:00:07,793
‫esta vez para actualizar y crear algunos recursos.

3
00:00:09,280 --> 00:00:11,750
‫Entonces, ahora que ya sabemos cómo funciona,

4
00:00:11,750 --> 00:00:14,640
‫es realmente sencillo seguir haciendo lo mismo para

5
00:00:14,640 --> 00:00:15,543
‫la actualización.

6
00:00:16,660 --> 00:00:18,413
‫Entonces exporta. updateOne, y

7
00:00:21,200 --> 00:00:24,520
‫de hecho sigamos adelante y copiemos el código nuevamente desde

8
00:00:24,520 --> 00:00:25,993
‫el controlador de recorrido.

9
00:00:27,330 --> 00:00:28,832
‫Bueno.

10
00:00:28,832 --> 00:00:30,740
‫Y ahora tenemos un montón de

11
00:00:30,740 --> 00:00:33,022
‫archivos abiertos porque en realidad los estamos cambiando

12
00:00:33,022 --> 00:00:34,573
‫todos al mismo tiempo.

13
00:00:36,860 --> 00:00:40,253
‫Copiemos esto y peguemos

14
00:00:42,110 --> 00:00:43,850
‫aquí.

15
00:00:43,850 --> 00:00:46,953
‫Entonces, lo que nos interesa es, nuevamente, esta parte.

16
00:00:49,130 --> 00:00:50,530
‫Bueno.

17
00:00:50,530 --> 00:00:53,950
‫Y ahora, por supuesto, necesitamos crear esa función de fábrica

18
00:00:53,950 --> 00:00:56,130
‫porque no queremos devolver esto.

19
00:00:56,130 --> 00:00:58,120
‫En su lugar, queremos devolver

20
00:00:58,120 --> 00:01:01,210
‫una función que, a su vez, devolverá esto.

21
00:01:01,210 --> 00:01:02,043
‫¿Derecha?

22
00:01:04,000 --> 00:01:06,240
‫Entonces eso es muy simple.

23
00:01:06,240 --> 00:01:09,480
‫Usamos una función de flecha simple en la que pasamos

24
00:01:09,480 --> 00:01:13,300
‫el modelo y luego devolvemos implícitamente lo que venga después de la flecha.

25
00:01:13,300 --> 00:01:14,773
‫Entonces, todo esto.

26
00:01:15,830 --> 00:01:16,663
‫Está bien.

27
00:01:17,690 --> 00:01:21,010
‫Así que, al igual que antes, reemplacemos el

28
00:01:21,010 --> 00:01:22,460
‫modelo específico por

29
00:01:22,460 --> 00:01:26,453
‫uno general, y luego reemplacemos todo esto aquí con document.

30
00:01:27,500 --> 00:01:31,030
‫O en realidad, con doc, como lo hicimos antes.

31
00:01:31,030 --> 00:01:32,443
‫Y aquí no hay

32
00:01:33,640 --> 00:01:36,640
‫ningún documento, y luego aquí abajo, donde realmente enviamos

33
00:01:36,640 --> 00:01:39,730
‫los datos, sería bueno darle el nombre de propiedad de

34
00:01:39,730 --> 00:01:41,370
‫los datos que estamos enviando.

35
00:01:41,370 --> 00:01:46,370
‫Por ejemplo, reseñas y luego el documento o recorridos.

36
00:01:48,340 --> 00:01:49,173
‫Bueno.

37
00:01:49,173 --> 00:01:52,600
‫Pero eso es demasiado trabajo para implementarlo ahora.

38
00:01:52,600 --> 00:01:55,630
‫Entonces, simplemente lo dejaré así donde

39
00:01:55,630 --> 00:01:57,670
‫envié, nuevamente, datos.

40
00:01:57,670 --> 00:01:58,660
‫Está bien.

41
00:01:58,660 --> 00:02:00,010
‫Así fueron nuestros datos

42
00:02:00,010 --> 00:02:02,600
‫aquí, y luego el sobre allí, nuevamente,

43
00:02:02,600 --> 00:02:03,923
‫se llamará datos.

44
00:02:05,610 --> 00:02:06,443
‫Está bien.

45
00:02:06,443 --> 00:02:08,650
‫Entonces, esto debería funcionar

46
00:02:08,650 --> 00:02:12,240
‫ahora porque todo lo demás es realmente igual.

47
00:02:12,240 --> 00:02:15,936
‫Entonces, podemos seguir adelante, deshacernos de todo esto

48
00:02:15,936 --> 00:02:17,320
‫y simplemente decir

49
00:02:18,420 --> 00:02:20,137
‫fábrica. updateOne, pase

50
00:02:22,260 --> 00:02:24,993
‫el modelo Tour y termine el día.

51
00:02:26,910 --> 00:02:28,060
‫¿Está bien?

52
00:02:28,060 --> 00:02:29,323
‫Entonces, realmente simple.

53
00:02:30,530 --> 00:02:32,643
‫A continuación, lo mismo para los usuarios.

54
00:02:33,938 --> 00:02:36,920
‫Entonces, nuevamente, tenemos updateUser.

55
00:02:36,920 --> 00:02:39,190
‫Esta ruta aún no está implementada.

56
00:02:39,190 --> 00:02:42,790
‫Entonces, simplemente reemplacemos todo esto aquí con nuestra

57
00:02:42,790 --> 00:02:45,237
‫función de fábrica updateOne.

58
00:02:46,800 --> 00:02:47,850
‫Está bien.

59
00:02:47,850 --> 00:02:51,030
‫Y así, como antes, esta función updateUser es

60
00:02:51,030 --> 00:02:53,600
‫solo para administradores, ¿de acuerdo?

61
00:02:53,600 --> 00:02:56,640
‫Y solo para actualizar los datos que no

62
00:02:56,640 --> 00:03:01,640
‫son la contraseña, porque recuerde, cada vez que usamos, dónde está eso, así

63
00:03:01,710 --> 00:03:05,240
‫que cada vez que usamos findById y actualizamos, no

64
00:03:05,240 --> 00:03:07,890
‫se ejecuta todo el middleware seguro.

65
00:03:07,890 --> 00:03:11,160
‫Así que recuerda cómo hablamos de eso un par de veces.

66
00:03:11,160 --> 00:03:12,990
‫Y entonces, nuevamente,

67
00:03:12,990 --> 00:03:17,498
‫es realmente importante que no intentemos cambiar las contraseñas

68
00:03:17,498 --> 00:03:19,710
‫aquí usando este updateUser.

69
00:03:19,710 --> 00:03:20,810
‫¿Okey?

70
00:03:20,810 --> 00:03:22,360
‫De hecho, escribamos eso aquí.

71
00:03:27,640 --> 00:03:28,473
‫Con este.

72
00:03:30,070 --> 00:03:30,903
‫Excelente.

73
00:03:30,903 --> 00:03:32,460
‫Y ahora, finalmente, también,

74
00:03:32,460 --> 00:03:34,593
‫pongámoslo en el controlador de revisión.

75
00:03:36,700 --> 00:03:37,533
‫Está bien.

76
00:03:38,420 --> 00:03:40,507
‫Entonces exporta. updateReview

77
00:03:50,830 --> 00:03:53,260
‫y luego nuestra Revisión.

78
00:03:53,260 --> 00:03:55,060
‫Entonces ese es muy simple.

79
00:03:55,060 --> 00:03:58,573
‫Ahora sigamos adelante y agreguemos estas rutas a Postman también.

80
00:04:00,210 --> 00:04:01,703
‫Así que

81
00:04:02,840 --> 00:04:07,840
‫tenemos Eliminar revisión, y ahora simplemente agreguemos aquí como PATCH.

82
00:04:08,020 --> 00:04:10,830
‫Y lo que también necesitamos para implementar la ruta en

83
00:04:10,830 --> 00:04:12,280
‫el enrutador de revisión.

84
00:04:12,280 --> 00:04:14,130
‫Así que hagámoslo también.

85
00:04:14,130 --> 00:04:19,130
‫Pero primero, lo guardaré aquí en reseñas.

86
00:04:22,730 --> 00:04:25,443
‫Así que Actualizar Revisión.

87
00:04:28,090 --> 00:04:31,263
‫Entonces, aquí, en las rutas de revisión, debemos

88
00:04:32,270 --> 00:04:35,223
‫agregar el método de parche y luego

89
00:04:37,580 --> 00:04:39,203
‫revisarController. updateReview.

90
00:04:44,610 --> 00:04:45,443
‫Está bien.

91
00:04:47,950 --> 00:04:51,410
‫Entonces, echemos un vistazo a una de

92
00:04:51,410 --> 00:04:55,913
‫estas revisiones aquí, digamos esta, y actualicemos la calificación a cuatro.

93
00:04:57,270 --> 00:04:58,103
‫Bueno.

94
00:05:00,470 --> 00:05:01,783
‫Así que el

95
00:05:09,060 --> 00:05:10,700
‫cuerpo, ajústelo a cuatro.

96
00:05:10,700 --> 00:05:12,093
‫Y envíalo ahora.

97
00:05:13,760 --> 00:05:18,530
‫De acuerdo, y como podemos ver, recuperamos nuestra nueva revisión con

98
00:05:18,530 --> 00:05:22,070
‫la calificación actualizada, tal como se esperaba.

99
00:05:22,070 --> 00:05:24,950
‫Y nuevamente, nos ocuparemos de la autorización un poco más

100
00:05:24,950 --> 00:05:26,300
‫adelante en la sección.

101
00:05:27,282 --> 00:05:29,963
‫Por ahora, solo quería que esto funcionara.

102
00:05:32,280 --> 00:05:37,280
‫Entonces, usuarios, ahora también actualice a los usuarios.

103
00:05:38,100 --> 00:05:38,933
‫¿Okey?

104
00:05:42,640 --> 00:05:45,963
‫Así que OBTENGA y PARCHE.

105
00:05:47,930 --> 00:05:49,583
‫Así que consigamos a todos los usuarios aquí.

106
00:05:53,970 --> 00:05:55,383
‫Digamos éste.

107
00:06:04,991 --> 00:06:06,413
‫Y cambiemos el

108
00:06:09,600 --> 00:06:10,640
‫nombre

109
00:06:10,640 --> 00:06:14,443
‫a Administrador, que antes era simplemente admin.

110
00:06:15,680 --> 00:06:16,513
‫¿Está bien?

111
00:06:18,420 --> 00:06:21,960
‫Y entonces, este también funcionó.

112
00:06:21,960 --> 00:06:26,010
‫De acuerdo, de nuevo, estoy guardando todo esto aquí en mi colección porque luego,

113
00:06:26,010 --> 00:06:27,320
‫un poco más tarde,

114
00:06:27,320 --> 00:06:29,880
‫puedo seguir adelante y crear documentación a partir

115
00:06:29,880 --> 00:06:32,673
‫de todos los datos de esta colección que tenemos aquí.

116
00:06:35,330 --> 00:06:36,863
‫Así que Update

117
00:06:39,370 --> 00:06:42,740
‫User, pon ese aquí y este aquí.

118
00:06:42,740 --> 00:06:43,710
‫Perfecto.

119
00:06:43,710 --> 00:06:46,800
‫Por lo tanto, la actualización de usuarios ahora

120
00:06:46,800 --> 00:06:50,350
‫funciona para los tres recursos que utilizan la función de fábrica.

121
00:06:50,350 --> 00:06:52,980
‫Y entonces, sigamos adelante y agreguemos el

122
00:06:52,980 --> 00:06:54,767
‫siguiente, que será createOne.

123
00:06:57,979 --> 00:06:59,770
‫Así que exporta, createOne.

124
00:07:03,290 --> 00:07:04,983
‫Y nuevamente, pasamos el modelo.

125
00:07:05,840 --> 00:07:07,820
‫Y a partir de ahí, creamos una nueva función.

126
00:07:07,820 --> 00:07:09,280
‫Y eso puede, una

127
00:07:09,280 --> 00:07:11,103
‫vez más, copiarlo del Tour aquí.

128
00:07:14,880 --> 00:07:15,713
‫Está bien.

129
00:07:17,420 --> 00:07:21,373
‫Entonces, lo que necesitamos aquí es solo esta parte.

130
00:07:23,580 --> 00:07:27,400
‫Así que modele y documente.

131
00:07:27,400 --> 00:07:30,897
‫Y aquí abajo, nuevamente lo llamamos datos.

132
00:07:30,897 --> 00:07:32,450
‫Está bien.

133
00:07:32,450 --> 00:07:34,890
‫Y entonces, eso es todo.

134
00:07:34,890 --> 00:07:36,620
‫Esa es nuestra función de fábrica.

135
00:07:36,620 --> 00:07:40,253
‫Y entonces, nuevamente, vengamos aquí y reemplácelo.

136
00:07:41,830 --> 00:07:44,377
‫Entonces fábrica. createOne, Tour.

137
00:07:48,860 --> 00:07:51,910
‫Entonces ves que nuestro código en los

138
00:07:51,910 --> 00:07:55,040
‫controladores ahora se está volviendo realmente limpio, ¿verdad?

139
00:07:55,040 --> 00:07:57,970
‫Pero en realidad, no vamos a poder reemplazar

140
00:07:57,970 --> 00:08:01,710
‫todas las funciones que tenemos aquí con fábricas, porque de lo

141
00:08:01,710 --> 00:08:03,670
‫contrario, ni siquiera necesitaríamos este

142
00:08:03,670 --> 00:08:05,480
‫archivo de controlador, ¿verdad?

143
00:08:05,480 --> 00:08:08,750
‫Entonces podríamos simplemente crear estos controladores sobre la marcha, básicamente,

144
00:08:08,750 --> 00:08:11,270
‫en el archivo del enrutador, ¿verdad?

145
00:08:11,270 --> 00:08:13,947
‫Y así, básicamente podríamos omitir todo este

146
00:08:13,947 --> 00:08:16,320
‫paso del archivo del controlador.

147
00:08:16,320 --> 00:08:17,600
‫Pero nuevamente, todavía lo

148
00:08:17,600 --> 00:08:19,730
‫necesitamos porque tenemos algunas otras cosas allí.

149
00:08:19,730 --> 00:08:23,080
‫Por ejemplo, estos métodos aquí para

150
00:08:23,080 --> 00:08:27,418
‫obtener las estadísticas del recorrido, o este plan

151
00:08:27,418 --> 00:08:29,560
‫mensual, y sí.

152
00:08:29,560 --> 00:08:33,750
‫Así que tiene sentido conservar este archivo, ¿de acuerdo?

153
00:08:33,750 --> 00:08:35,130
‫Entonces, a continuación,

154
00:08:35,130 --> 00:08:37,930
‫para los usuarios, en realidad no necesitamos createOne

155
00:08:37,930 --> 00:08:39,460
‫porque, para crear nuevos

156
00:08:39,460 --> 00:08:41,630
‫usuarios, ya tenemos la función de

157
00:08:41,630 --> 00:08:44,290
‫registro, y realmente no podemos reemplazarla con

158
00:08:44,290 --> 00:08:47,240
‫una fábrica porque realmente es diferente de esta genérica.

159
00:08:47,240 --> 00:08:48,073
‫¿Okey?

160
00:08:49,150 --> 00:08:54,140
‫Pero podemos hacerlo en el controlador de revisión, ¿de acuerdo?

161
00:08:54,140 --> 00:08:58,230
‫Básicamente, queremos reemplazar este createReview.

162
00:08:58,230 --> 00:08:59,990
‫Ahora ves que también,

163
00:08:59,990 --> 00:09:01,840
‫en este, tenemos algún paso adicional.

164
00:09:01,840 --> 00:09:04,170
‫Entonces tenemos este código que

165
00:09:04,170 --> 00:09:07,330
‫tampoco está en nuestra función createOne genérica.

166
00:09:07,330 --> 00:09:09,165
‫Entonces, ¿cómo podemos arreglar eso?

167
00:09:09,165 --> 00:09:11,800
‫Bueno, en realidad podemos crear un

168
00:09:11,800 --> 00:09:15,610
‫middleware que se ejecutará antes de createReview, ¿de acuerdo?

169
00:09:15,610 --> 00:09:19,170
‫Y entonces, eso en realidad también lo hace un poco más desacoplado.

170
00:09:19,170 --> 00:09:22,610
‫Entonces, básicamente, este código aquí tendrá su propia función

171
00:09:22,610 --> 00:09:23,960
‫y estará

172
00:09:23,960 --> 00:09:26,430
‫realmente desacoplado de createReview, porque en realidad

173
00:09:26,430 --> 00:09:28,550
‫no tiene mucho que ver con

174
00:09:28,550 --> 00:09:30,400
‫la creación de la revisión.

175
00:09:30,400 --> 00:09:32,630
‫Simplemente establece algunos datos, ¿verdad?

176
00:09:32,630 --> 00:09:37,627
‫Entonces, llamemos realmente a este recorrido establecido y a los ID de usuario.

177
00:09:41,720 --> 00:09:44,173
‫Así que pide, ah, falta la respuesta.

178
00:09:47,200 --> 00:09:48,504
‫¿Okey?

179
00:09:48,504 --> 00:09:50,110
‫Y todo lo que

180
00:09:50,110 --> 00:09:53,730
‫vamos a hacer aquí es básicamente establecer estas ID en

181
00:09:53,730 --> 00:09:56,100
‫el cuerpo y luego pasar directamente

182
00:09:56,100 --> 00:09:58,660
‫al siguiente middleware, donde se crea la revisión.

183
00:09:58,660 --> 00:09:59,650
‫¿Bien?

184
00:09:59,650 --> 00:10:01,350
‫Entonces, antes de

185
00:10:01,350 --> 00:10:04,430
‫que lo olvidemos, agreguemos este middleware.

186
00:10:04,430 --> 00:10:08,993
‫Entonces, en las rutas de revisión, está aquí en la publicación.

187
00:10:10,780 --> 00:10:13,467
‫Así que reviewController, setTourUserIds.

188
00:10:15,700 --> 00:10:16,533
‫¿Okey?

189
00:10:16,533 --> 00:10:20,073
‫Entonces, otra función de middleware en esta pila.

190
00:10:22,020 --> 00:10:22,853
‫Bueno.

191
00:10:22,853 --> 00:10:26,620
‫De todos modos, vamos a deshacernos de lo que tenemos

192
00:10:26,620 --> 00:10:28,610
‫aquí porque es fácilmente

193
00:10:28,610 --> 00:10:32,300
‫reemplazable con nuestra función de fábrica, una vez más.

194
00:10:32,300 --> 00:10:37,300
‫Así que createOne, luego Review, y eso es todo.

195
00:10:39,660 --> 00:10:40,493
‫Bueno.

196
00:10:41,540 --> 00:10:43,483
‫Y solo para probar si esto

197
00:10:44,740 --> 00:10:47,883
‫todavía funciona, simplemente sigamos adelante y creemos una nueva revisión en Tour.

198
00:10:49,656 --> 00:10:50,489
‫¿Okey?

199
00:10:50,489 --> 00:10:52,463
‫Y para eso, necesitamos las identificaciones del recorrido, así

200
00:10:54,120 --> 00:10:55,903
‫que también digamos Obtener todos los recorridos.

201
00:10:58,310 --> 00:11:02,500
‫Y ahora obtenemos que la pertenencia del usuario ya no existe, así que simplemente

202
00:11:02,500 --> 00:11:04,600
‫sigamos adelante e inicie sesión nuevamente.

203
00:11:06,020 --> 00:11:07,753
‫Así que consigue una nueva ficha aquí.

204
00:11:08,600 --> 00:11:10,933
‫Y así, ahí vamos, como administrador.

205
00:11:12,253 --> 00:11:16,490
‫Así que ahora, Get All Tours, aquí vamos.

206
00:11:16,490 --> 00:11:19,423
‫Elijamos uno de ellos.

207
00:11:20,330 --> 00:11:21,980
‫Así que digamos, The Forest Hiker.

208
00:11:21,980 --> 00:11:25,720
‫Creo que este ya tiene algunas críticas, ¿no?

209
00:11:25,720 --> 00:11:26,830
‫Oh no, no es así.

210
00:11:26,830 --> 00:11:29,343
‫Así que este es bueno para probarlo ahora.

211
00:11:30,539 --> 00:11:34,773
‫Y así, cree una nueva reseña en el recorrido.

212
00:11:35,930 --> 00:11:39,110
‫Recuerde, tenemos que cambiar la identificación aquí.

213
00:11:39,110 --> 00:11:40,610
‫Y ahora podemos publicar

214
00:11:40,610 --> 00:11:43,520
‫esta revisión solo con la calificación y la revisión.

215
00:11:43,520 --> 00:11:45,330
‫Pero creo que en

216
00:11:45,330 --> 00:11:48,260
‫realidad no va a funcionar porque hemos iniciado sesión

217
00:11:48,260 --> 00:11:51,410
‫como administrador y solo los usuarios habituales pueden publicar reseñas.

218
00:11:51,410 --> 00:11:52,243
‫¿Okey?

219
00:11:54,550 --> 00:11:57,163
‫Muy bien, sigamos haciendo esto aquí.

220
00:11:58,810 --> 00:11:59,963
‫Alucinante.

221
00:12:01,270 --> 00:12:04,850
‫Pero obtendremos este error que estaba diciendo.

222
00:12:04,850 --> 00:12:07,850
‫Entonces no tienes permiso para realizar.

223
00:12:07,850 --> 00:12:09,620
‫Entonces, necesitamos iniciar sesión

224
00:12:09,620 --> 00:12:12,670
‫nuevamente, esta vez como un usuario diferente.

225
00:12:12,670 --> 00:12:16,093
‫Y echemos un vistazo a cuál tenemos, en realidad.

226
00:12:20,010 --> 00:12:21,110
‫Ah bien.

227
00:12:21,110 --> 00:12:23,433
‫Así que usemos test.

228
00:12:25,100 --> 00:12:28,563
‫O tal vez la prueba era la que tenía la contraseña incorrecta.

229
00:12:30,020 --> 00:12:30,963
‫Pero veamos.

230
00:12:33,477 --> 00:12:34,310
‫Ah sí.

231
00:12:34,310 --> 00:12:36,473
‫Experimentemos con testuser.

232
00:12:39,206 --> 00:12:40,290
‫Y este funciona.

233
00:12:40,290 --> 00:12:43,700
‫Y entonces, en realidad, podemos continuar y eliminar

234
00:12:43,700 --> 00:12:47,063
‫este otro porque olvidé su contraseña.

235
00:12:48,890 --> 00:12:50,137
‫Bueno.

236
00:12:50,137 --> 00:12:51,060
‫Y en este caso, no hay problema.

237
00:12:51,060 --> 00:12:54,110
‫Simplemente podemos eliminar usuarios como queramos, ya que

238
00:12:54,110 --> 00:12:56,012
‫solo estamos en desarrollo.

239
00:12:56,012 --> 00:12:57,200
‫¿Okey?

240
00:12:57,200 --> 00:13:00,203
‫Ahora deberíamos poder agregar esta revisión.

241
00:13:02,930 --> 00:13:05,310
‫Y de hecho, aquí vamos.

242
00:13:05,310 --> 00:13:06,143
‫Perfecto.

243
00:13:06,143 --> 00:13:08,560
‫Así que concluye esta conferencia.

244
00:13:08,560 --> 00:13:10,200
‫Todo lo que tenemos que

245
00:13:10,200 --> 00:13:12,160
‫hacer en el siguiente es crear las

246
00:13:12,160 --> 00:13:15,490
‫funciones de fábrica para obtener uno y obtener todos los documentos

247
00:13:15,490 --> 00:13:16,973
‫de un determinado recurso.

