﻿1
00:00:01,130 --> 00:00:04,270
‫Jonas: Vamos continuar criando algumas funções de

2
00:00:04,270 --> 00:00:07,793
‫fábrica, desta vez para atualizar e criar alguns recursos.

3
00:00:09,280 --> 00:00:11,750
‫E então, agora que já sabemos como

4
00:00:11,750 --> 00:00:14,640
‫funciona, é muito simples continuar fazendo o mesmo para

5
00:00:14,640 --> 00:00:15,543
‫a atualização.

6
00:00:16,660 --> 00:00:18,413
‫Portanto, as exportações. updateOne, e

7
00:00:21,200 --> 00:00:24,520
‫vamos seguir em frente e copiar o código novamente

8
00:00:24,520 --> 00:00:25,993
‫do controlador de tour.

9
00:00:27,330 --> 00:00:28,832
‫OK.

10
00:00:28,832 --> 00:00:30,740
‫E agora temos uma tonelada de

11
00:00:30,740 --> 00:00:33,022
‫arquivos abertos porque, na verdade, estamos alterando todos

12
00:00:33,022 --> 00:00:34,573
‫eles ao mesmo tempo.

13
00:00:36,860 --> 00:00:40,253
‫Então, vamos copiar e

14
00:00:42,110 --> 00:00:43,850
‫colar aqui.

15
00:00:43,850 --> 00:00:46,953
‫E então, o que nos interessa é, novamente, esta parte.

16
00:00:49,130 --> 00:00:50,530
‫OK.

17
00:00:50,530 --> 00:00:53,950
‫E agora, é claro, precisamos criar essa função de fábrica

18
00:00:53,950 --> 00:00:56,130
‫porque não queremos retornar isso.

19
00:00:56,130 --> 00:00:58,120
‫Em vez disso, queremos retornar

20
00:00:58,120 --> 00:01:01,210
‫uma função que, por sua vez, retornará isso.

21
00:01:01,210 --> 00:01:02,043
‫Direito?

22
00:01:04,000 --> 00:01:06,240
‫Então isso é muito simples.

23
00:01:06,240 --> 00:01:09,480
‫Usamos uma função de seta simples onde passamos o modelo

24
00:01:09,480 --> 00:01:13,300
‫e, em seguida, retornamos implicitamente o que quer que venha depois da seta.

25
00:01:13,300 --> 00:01:14,773
‫Então, tudo isso.

26
00:01:15,830 --> 00:01:16,663
‫Tudo bem.

27
00:01:17,690 --> 00:01:21,010
‫Assim como antes, vamos substituir o modelo

28
00:01:21,010 --> 00:01:22,460
‫específico por um

29
00:01:22,460 --> 00:01:26,453
‫geral e, em seguida, substituir tudo isso aqui por documento.

30
00:01:27,500 --> 00:01:31,030
‫Ou, na verdade, com o doutor, como fizemos antes.

31
00:01:31,030 --> 00:01:32,443
‫E aqui não é

32
00:01:33,640 --> 00:01:36,640
‫nenhum documento, e aqui embaixo, para onde realmente enviamos os

33
00:01:36,640 --> 00:01:39,730
‫dados, seria bom dar a ele o nome da propriedade

34
00:01:39,730 --> 00:01:41,370
‫dos dados que estamos enviando.

35
00:01:41,370 --> 00:01:46,370
‫Por exemplo, revisões e, em seguida, o documento ou tours.

36
00:01:48,340 --> 00:01:49,173
‫OK.

37
00:01:49,173 --> 00:01:52,600
‫Mas isso é um pouco demais para implementá-lo agora.

38
00:01:52,600 --> 00:01:55,630
‫E então, vou simplesmente deixar assim para onde

39
00:01:55,630 --> 00:01:57,670
‫enviei, novamente, os dados.

40
00:01:57,670 --> 00:01:58,660
‫Tudo bem.

41
00:01:58,660 --> 00:02:00,010
‫Então foram nossos dados

42
00:02:00,010 --> 00:02:02,600
‫aqui, e então o envelope ali será, novamente,

43
00:02:02,600 --> 00:02:03,923
‫chamado de dados.

44
00:02:05,610 --> 00:02:06,443
‫Tudo bem.

45
00:02:06,443 --> 00:02:08,650
‫E então, isso deve funcionar

46
00:02:08,650 --> 00:02:12,240
‫agora porque todo o resto é realmente o mesmo.

47
00:02:12,240 --> 00:02:15,936
‫E assim, podemos ir em frente, nos livrar de tudo

48
00:02:15,936 --> 00:02:17,320
‫isso e simplesmente dizer

49
00:02:18,420 --> 00:02:20,137
‫fábrica. updateOne, passe

50
00:02:22,260 --> 00:02:24,993
‫o modelo Tour e dê um basta no dia.

51
00:02:26,910 --> 00:02:28,060
‫Tudo bem?

52
00:02:28,060 --> 00:02:29,323
‫Então, muito simples.

53
00:02:30,530 --> 00:02:32,643
‫Em seguida, a mesma coisa para os usuários.

54
00:02:33,938 --> 00:02:36,920
‫Então, novamente, temos updateUser.

55
00:02:36,920 --> 00:02:39,190
‫Esta rota ainda não foi implementada.

56
00:02:39,190 --> 00:02:42,790
‫E então, vamos simplesmente substituir tudo isso aqui pela

57
00:02:42,790 --> 00:02:45,237
‫nossa função de fábrica updateOne.

58
00:02:46,800 --> 00:02:47,850
‫Tudo bem.

59
00:02:47,850 --> 00:02:51,030
‫E então, como antes, esta função updateUser

60
00:02:51,030 --> 00:02:53,600
‫é apenas para administradores, ok?

61
00:02:53,600 --> 00:02:56,640
‫E apenas para atualizar dados que não

62
00:02:56,640 --> 00:03:01,640
‫sejam a senha, pois lembre-se, sempre que usarmos, onde está isso, então

63
00:03:01,710 --> 00:03:05,240
‫sempre que usarmos findById e update, todo o

64
00:03:05,240 --> 00:03:07,890
‫middleware seguro não será executado.

65
00:03:07,890 --> 00:03:11,160
‫Então, lembre-se de como falamos sobre isso algumas vezes.

66
00:03:11,160 --> 00:03:12,990
‫E então, novamente,

67
00:03:12,990 --> 00:03:17,498
‫é muito importante que não tentemos alterar as senhas

68
00:03:17,498 --> 00:03:19,710
‫aqui usando este updateUser.

69
00:03:19,710 --> 00:03:20,810
‫OK?

70
00:03:20,810 --> 00:03:22,360
‫Vamos realmente escrever isso aqui.

71
00:03:27,640 --> 00:03:28,473
‫Com isso.

72
00:03:30,070 --> 00:03:30,903
‫Excelente.

73
00:03:30,903 --> 00:03:32,460
‫E agora, finalmente,

74
00:03:32,460 --> 00:03:34,593
‫vamos colocá-lo no controlador de revisão.

75
00:03:36,700 --> 00:03:37,533
‫Tudo bem.

76
00:03:38,420 --> 00:03:40,507
‫Portanto, as exportações. updateReview

77
00:03:50,830 --> 00:03:53,260
‫e, em seguida, nosso Review.

78
00:03:53,260 --> 00:03:55,060
‫Então esse é muito simples.

79
00:03:55,060 --> 00:03:58,573
‫Vamos agora adicionar essas rotas ao Postman também.

80
00:04:00,210 --> 00:04:01,703
‫Portanto, temos

81
00:04:02,840 --> 00:04:07,840
‫Excluir comentário e agora vamos simplesmente adicioná-lo aqui como PATCH.

82
00:04:08,020 --> 00:04:10,830
‫E a coisa que também precisamos implementar a rota

83
00:04:10,830 --> 00:04:12,280
‫no roteador de revisão.

84
00:04:12,280 --> 00:04:14,130
‫Então, vamos fazer isso também.

85
00:04:14,130 --> 00:04:19,130
‫Mas, primeiro, vou salvá-lo aqui nos comentários.

86
00:04:22,730 --> 00:04:25,443
‫Portanto, atualize a revisão.

87
00:04:28,090 --> 00:04:31,263
‫Portanto, aqui, nas rotas de revisão, devemos

88
00:04:32,270 --> 00:04:35,223
‫adicionar o método patch e, em seguida,

89
00:04:37,580 --> 00:04:39,203
‫reviewController. updateReview.

90
00:04:44,610 --> 00:04:45,443
‫Tudo bem.

91
00:04:47,950 --> 00:04:51,410
‫Então, vamos dar uma olhada em um

92
00:04:51,410 --> 00:04:55,913
‫desses comentários aqui, digamos este, e atualizar a classificação para quatro.

93
00:04:57,270 --> 00:04:58,103
‫OK.

94
00:05:00,470 --> 00:05:01,783
‫Portanto, o

95
00:05:09,060 --> 00:05:10,700
‫corpo, defina-o para quatro.

96
00:05:10,700 --> 00:05:12,093
‫E envie agora.

97
00:05:13,760 --> 00:05:18,530
‫Ok, e como podemos ver, recebemos nossa nova análise de volta

98
00:05:18,530 --> 00:05:22,070
‫com a classificação atualizada, conforme o esperado.

99
00:05:22,070 --> 00:05:24,950
‫E, novamente, cuidaremos da autorização um pouco mais

100
00:05:24,950 --> 00:05:26,300
‫adiante nesta seção.

101
00:05:27,282 --> 00:05:29,963
‫Por enquanto, eu só queria fazer isso funcionar.

102
00:05:32,280 --> 00:05:37,280
‫Então, usuários, agora também vamos atualizar os usuários.

103
00:05:38,100 --> 00:05:38,933
‫OK?

104
00:05:42,640 --> 00:05:45,963
‫Então GET e PATCH.

105
00:05:47,930 --> 00:05:49,583
‫Então, vamos trazer todos os usuários aqui.

106
00:05:53,970 --> 00:05:55,383
‫Vamos dizer este.

107
00:06:04,991 --> 00:06:06,413
‫E vamos mudar

108
00:06:09,600 --> 00:06:10,640
‫o

109
00:06:10,640 --> 00:06:14,443
‫nome para Administrador, que antes era simplesmente admin.

110
00:06:15,680 --> 00:06:16,513
‫Tudo bem?

111
00:06:18,420 --> 00:06:21,960
‫E então, este funcionou bem.

112
00:06:21,960 --> 00:06:26,010
‫Ok, então novamente, estou salvando tudo isso aqui na minha coleção porque, então, um

113
00:06:26,010 --> 00:06:27,320
‫pouco mais tarde, eu

114
00:06:27,320 --> 00:06:29,880
‫posso realmente ir em frente e criar a

115
00:06:29,880 --> 00:06:32,673
‫documentação de todos os dados da coleção que temos aqui.

116
00:06:35,330 --> 00:06:36,863
‫Então, atualize o

117
00:06:39,370 --> 00:06:42,740
‫usuário, coloque aquele aqui e este aqui.

118
00:06:42,740 --> 00:06:43,710
‫Perfeito.

119
00:06:43,710 --> 00:06:46,800
‫Portanto, atualizar os usuários agora está funcionando para

120
00:06:46,800 --> 00:06:50,350
‫todos os nossos três recursos usando a função de fábrica.

121
00:06:50,350 --> 00:06:52,980
‫E então, vamos adicionar o próximo,

122
00:06:52,980 --> 00:06:54,767
‫que será o createOne.

123
00:06:57,979 --> 00:06:59,770
‫Portanto, exportações, createOne.

124
00:07:03,290 --> 00:07:04,983
‫E novamente, passamos no modelo.

125
00:07:05,840 --> 00:07:07,820
‫E a partir daí, criamos uma nova função.

126
00:07:07,820 --> 00:07:09,280
‫E isso pode, mais

127
00:07:09,280 --> 00:07:11,103
‫uma vez, realmente copiá-lo do Tour aqui.

128
00:07:14,880 --> 00:07:15,713
‫Tudo bem.

129
00:07:17,420 --> 00:07:21,373
‫E então, o que precisamos aqui é apenas esta parte.

130
00:07:23,580 --> 00:07:27,400
‫Portanto, modele e documente.

131
00:07:27,400 --> 00:07:30,897
‫E aqui embaixo, nós novamente o chamamos de dados.

132
00:07:30,897 --> 00:07:32,450
‫Tudo bem.

133
00:07:32,450 --> 00:07:34,890
‫E então, é isso mesmo.

134
00:07:34,890 --> 00:07:36,620
‫Essa é a nossa função de fábrica.

135
00:07:36,620 --> 00:07:40,253
‫E então, novamente, vamos vir aqui e substituí-lo.

136
00:07:41,830 --> 00:07:44,377
‫Então fábrica. createOne, Tour.

137
00:07:48,860 --> 00:07:51,910
‫Então você vê que nosso código

138
00:07:51,910 --> 00:07:55,040
‫nos controladores está ficando realmente limpo, certo?

139
00:07:55,040 --> 00:07:57,970
‫Mas, na verdade, não vamos conseguir substituir

140
00:07:57,970 --> 00:08:01,710
‫todas as funções que temos aqui por fábricas, porque

141
00:08:01,710 --> 00:08:03,670
‫senão, nem precisaríamos desse arquivo

142
00:08:03,670 --> 00:08:05,480
‫de controlador, certo?

143
00:08:05,480 --> 00:08:08,750
‫Poderíamos então simplesmente criar esses manipuladores dinamicamente, basicamente

144
00:08:08,750 --> 00:08:11,270
‫no arquivo do roteador, certo?

145
00:08:11,270 --> 00:08:13,947
‫E assim, podemos basicamente pular toda essa

146
00:08:13,947 --> 00:08:16,320
‫etapa do arquivo do controlador.

147
00:08:16,320 --> 00:08:17,600
‫Mas, novamente, ainda

148
00:08:17,600 --> 00:08:19,730
‫precisamos porque temos algumas outras coisas lá.

149
00:08:19,730 --> 00:08:23,080
‫Por exemplo, esses métodos aqui para

150
00:08:23,080 --> 00:08:27,418
‫obter as estatísticas do passeio, ou este plano

151
00:08:27,418 --> 00:08:29,560
‫mensal, e sim.

152
00:08:29,560 --> 00:08:33,750
‫Portanto, faz sentido realmente manter este arquivo, certo?

153
00:08:33,750 --> 00:08:35,130
‫Então, a seguir,

154
00:08:35,130 --> 00:08:37,930
‫para os usuários, na verdade não precisamos do

155
00:08:37,930 --> 00:08:39,460
‫createOne porque, para criar

156
00:08:39,460 --> 00:08:41,630
‫novos usuários, já temos a função

157
00:08:41,630 --> 00:08:44,290
‫signUp, e não podemos realmente substituí-la por

158
00:08:44,290 --> 00:08:47,240
‫uma fábrica porque é realmente diferente deste genérico.

159
00:08:47,240 --> 00:08:48,073
‫OK?

160
00:08:49,150 --> 00:08:54,140
‫Mas podemos fazer isso no controlador de revisão, ok?

161
00:08:54,140 --> 00:08:58,230
‫Então, basicamente, queremos substituir esse createReview.

162
00:08:58,230 --> 00:08:59,990
‫Agora você vê que

163
00:08:59,990 --> 00:09:01,840
‫também, neste, temos alguma etapa adicional.

164
00:09:01,840 --> 00:09:04,170
‫Portanto, temos esse código que

165
00:09:04,170 --> 00:09:07,330
‫também não está em nossa função createOne genérica.

166
00:09:07,330 --> 00:09:09,165
‫E então, como podemos consertar isso?

167
00:09:09,165 --> 00:09:11,800
‫Bem, podemos realmente criar um

168
00:09:11,800 --> 00:09:15,610
‫middleware que será executado antes do createReview, certo?

169
00:09:15,610 --> 00:09:19,170
‫E isso também o torna um pouco mais desacoplado.

170
00:09:19,170 --> 00:09:22,610
‫Então, basicamente, este código aqui estará em sua própria

171
00:09:22,610 --> 00:09:23,960
‫função, e

172
00:09:23,960 --> 00:09:26,430
‫realmente desacoplado de createReview, porque, na verdade,

173
00:09:26,430 --> 00:09:28,550
‫ele não tem muito a ver

174
00:09:28,550 --> 00:09:30,400
‫com a criação da revisão.

175
00:09:30,400 --> 00:09:32,630
‫Ele simplesmente define alguns dados, certo?

176
00:09:32,630 --> 00:09:37,627
‫E então, vamos chamar isso de tour pelo conjunto e IDs de usuário.

177
00:09:41,720 --> 00:09:44,173
‫Então, peça, ah, falta resposta.

178
00:09:47,200 --> 00:09:48,504
‫OK?

179
00:09:48,504 --> 00:09:50,110
‫E tudo o que

180
00:09:50,110 --> 00:09:53,730
‫vamos fazer aqui é basicamente definir esses IDs no corpo e,

181
00:09:53,730 --> 00:09:56,100
‫em seguida, ir direto para o

182
00:09:56,100 --> 00:09:58,660
‫próximo middleware, onde a revisão é realmente criada.

183
00:09:58,660 --> 00:09:59,650
‫Tudo bem?

184
00:09:59,650 --> 00:10:01,350
‫Portanto, antes

185
00:10:01,350 --> 00:10:04,430
‫de esquecermos, vamos adicionar esse middleware.

186
00:10:04,430 --> 00:10:08,993
‫Portanto, nas rotas de revisão, está bem aqui na postagem.

187
00:10:10,780 --> 00:10:13,467
‫Portanto, reviewController, setTourUserIds.

188
00:10:15,700 --> 00:10:16,533
‫OK?

189
00:10:16,533 --> 00:10:20,073
‫Portanto, mais uma função de middleware nesta pilha.

190
00:10:22,020 --> 00:10:22,853
‫OK.

191
00:10:22,853 --> 00:10:26,620
‫De qualquer forma, vamos então nos livrar do que temos

192
00:10:26,620 --> 00:10:28,610
‫aqui porque isso pode ser

193
00:10:28,610 --> 00:10:32,300
‫facilmente substituído por nossa função de fábrica, mais uma vez.

194
00:10:32,300 --> 00:10:37,300
‫Então, crie um, depois a Revisão e é isso.

195
00:10:39,660 --> 00:10:40,493
‫OK.

196
00:10:41,540 --> 00:10:43,483
‫E apenas para testar se isso

197
00:10:44,740 --> 00:10:47,883
‫ainda funciona, vamos simplesmente prosseguir e criar uma nova avaliação no Tour.

198
00:10:49,656 --> 00:10:50,489
‫OK?

199
00:10:50,489 --> 00:10:52,463
‫E para isso, precisamos dos IDs de tour,

200
00:10:54,120 --> 00:10:55,903
‫então digamos também Get All Tours.

201
00:10:58,310 --> 00:11:02,500
‫E agora temos que o usuário pertencente não existe mais, então vamos simplesmente

202
00:11:02,500 --> 00:11:04,600
‫prosseguir e fazer o login novamente.

203
00:11:06,020 --> 00:11:07,753
‫Portanto, obtenha um novo token aqui.

204
00:11:08,600 --> 00:11:10,933
‫E aí vamos nós, como administrador.

205
00:11:12,253 --> 00:11:16,490
‫Então agora, Get All Tours, vamos lá.

206
00:11:16,490 --> 00:11:19,423
‫Vamos apenas escolher um deles.

207
00:11:20,330 --> 00:11:21,980
‫Então, digamos, The Forest Hiker.

208
00:11:21,980 --> 00:11:25,720
‫Acho que esse aqui já tem algumas resenhas, não é?

209
00:11:25,720 --> 00:11:26,830
‫Oh não, não faz.

210
00:11:26,830 --> 00:11:29,343
‫Portanto, este é bom para experimentar agora.

211
00:11:30,539 --> 00:11:34,773
‫E então, crie uma nova avaliação no tour.

212
00:11:35,930 --> 00:11:39,110
‫Lembre-se, temos que alterar o ID aqui.

213
00:11:39,110 --> 00:11:40,610
‫E agora podemos postar

214
00:11:40,610 --> 00:11:43,520
‫essa avaliação apenas com a avaliação e a avaliação.

215
00:11:43,520 --> 00:11:45,330
‫Mas acho que na

216
00:11:45,330 --> 00:11:48,260
‫verdade não vai funcionar porque estamos logados como

217
00:11:48,260 --> 00:11:51,410
‫um administrador e apenas usuários regulares podem postar comentários.

218
00:11:51,410 --> 00:11:52,243
‫OK?

219
00:11:54,550 --> 00:11:57,163
‫Tudo bem, então ainda vamos fazer isso aqui.

220
00:11:58,810 --> 00:11:59,963
‫Surpreendente.

221
00:12:01,270 --> 00:12:04,850
‫Mas vamos obter este erro que acabei de dizer.

222
00:12:04,850 --> 00:12:07,850
‫Portanto, você não tem permissão para executar.

223
00:12:07,850 --> 00:12:09,620
‫E então, precisamos fazer

224
00:12:09,620 --> 00:12:12,670
‫login novamente, desta vez como um usuário diferente.

225
00:12:12,670 --> 00:12:16,093
‫E vamos dar uma olhada em qual temos, na verdade.

226
00:12:20,010 --> 00:12:21,110
‫Ah ok.

227
00:12:21,110 --> 00:12:23,433
‫Então, vamos usar o teste.

228
00:12:25,100 --> 00:12:28,563
‫Ou talvez teste fosse aquele com a senha errada.

229
00:12:30,020 --> 00:12:30,963
‫Mas vamos ver.

230
00:12:33,477 --> 00:12:34,310
‫Ah sim.

231
00:12:34,310 --> 00:12:36,473
‫Então, vamos experimentar o testuser.

232
00:12:39,206 --> 00:12:40,290
‫E este funciona.

233
00:12:40,290 --> 00:12:43,700
‫E então, na verdade, podemos ir em frente e deletar este

234
00:12:43,700 --> 00:12:47,063
‫outro porque eu meio que esqueci a senha dele.

235
00:12:48,890 --> 00:12:50,137
‫OK.

236
00:12:50,137 --> 00:12:51,060
‫E, neste caso, não há problema.

237
00:12:51,060 --> 00:12:54,110
‫Podemos simplesmente excluir usuários como quisermos, já que

238
00:12:54,110 --> 00:12:56,012
‫estamos apenas em desenvolvimento.

239
00:12:56,012 --> 00:12:57,200
‫OK?

240
00:12:57,200 --> 00:13:00,203
‫Agora devemos ser capazes de realmente adicionar esta revisão.

241
00:13:02,930 --> 00:13:05,310
‫E, de fato, aqui vamos nós.

242
00:13:05,310 --> 00:13:06,143
‫Perfeito.

243
00:13:06,143 --> 00:13:08,560
‫Então isso encerra esta palestra.

244
00:13:08,560 --> 00:13:10,200
‫Tudo o que precisamos fazer

245
00:13:10,200 --> 00:13:12,160
‫no próximo é criar as funções

246
00:13:12,160 --> 00:13:15,490
‫de fábrica para obter um e obter todos os documentos

247
00:13:15,490 --> 00:13:16,973
‫de um determinado recurso.

