﻿1
00:00:00,980 --> 00:00:02,760
‫Instrutor: Tudo bem, nesta aula,

2
00:00:02,760 --> 00:00:04,720
‫vamos falar sobre algo chamado

3
00:00:04,720 --> 00:00:06,910
‫de rotas aninhadas, o que são,

4
00:00:06,910 --> 00:00:08,690
‫por que precisamos delas

5
00:00:08,690 --> 00:00:11,163
‫e como podemos realmente implementá-las no Express.

6
00:00:12,944 --> 00:00:15,470
‫Vamos pensar por um segundo

7
00:00:15,470 --> 00:00:18,566
‫como, na prática, queremos criar uma nova revisão.

8
00:00:18,566 --> 00:00:21,520
‫Até este ponto, ao criar novas revisões, sempre passamos

9
00:00:21,520 --> 00:00:24,020
‫manualmente o ID do tour e

10
00:00:24,020 --> 00:00:26,920
‫o ID do usuário no corpo da solicitação

11
00:00:26,920 --> 00:00:30,300
‫e, em seguida, criamos a revisão a partir daí, certo.

12
00:00:30,300 --> 00:00:33,180
‫Tudo bem durante o desenvolvimento, mas é claro que não

13
00:00:33,180 --> 00:00:34,980
‫é assim que uma revisão será

14
00:00:34,980 --> 00:00:36,433
‫criada no mundo real.

15
00:00:37,680 --> 00:00:40,610
‫Portanto, no mundo real, o ID

16
00:00:40,610 --> 00:00:44,010
‫do usuário deve vir do usuário conectado no momento

17
00:00:44,010 --> 00:00:47,740
‫e um ID do tour deve vir do tour atual.

18
00:00:47,740 --> 00:00:49,700
‫Idealmente, isso deve ser codificado

19
00:00:49,700 --> 00:00:51,877
‫bem na rota, ou seja, na URL.

20
00:00:53,020 --> 00:00:56,300
‫Ao enviar uma solicitação de postagem para

21
00:00:56,300 --> 00:01:00,140
‫uma nova revisão, queremos enviar para um URL como este.

22
00:01:00,140 --> 00:01:03,143
‫Vamos escrever isso aqui apenas como um comentário.

23
00:01:05,826 --> 00:01:08,869
‫O ideal é que a gente

24
00:01:08,869 --> 00:01:13,869
‫queira fazer um pedido de postagem, de tour, e o ID

25
00:01:15,490 --> 00:01:19,343
‫do tour, não importa muito aqui, e depois revisões.

26
00:01:20,650 --> 00:01:23,100
‫Ok, agora, assim, temos o ID

27
00:01:23,100 --> 00:01:25,580
‫do tour direto no URL e o

28
00:01:25,580 --> 00:01:28,030
‫ID do usuário também virá do

29
00:01:28,030 --> 00:01:29,913
‫usuário conectado no momento.

30
00:01:31,130 --> 00:01:35,330
‫O que vemos aqui agora é uma chamada rota aninhada.

31
00:01:35,330 --> 00:01:37,330
‫Eles fazem muito sentido quando há

32
00:01:37,330 --> 00:01:40,570
‫uma relação clara entre pais e filhos entre os recursos.

33
00:01:40,570 --> 00:01:43,840
‫Esse é claramente o caso aqui, certo.

34
00:01:43,840 --> 00:01:47,530
‫Resenhas são claramente fruto da turnê.

35
00:01:47,530 --> 00:01:49,320
‫Essa rota aninhada

36
00:01:49,320 --> 00:01:51,580
‫basicamente significa acessar o recurso

37
00:01:51,580 --> 00:01:54,810
‫de avaliações no recurso do passeio, tudo bem.

38
00:01:54,810 --> 00:01:57,420
‫Da mesma forma, também queremos acessar

39
00:01:57,420 --> 00:02:01,193
‫as avaliações de um determinado tour da mesma maneira.

40
00:02:02,310 --> 00:02:05,560
‫Digamos então uma solicitação get, e

41
00:02:05,560 --> 00:02:09,650
‫novamente para tour slash tour ID e revisões slash.

42
00:02:09,650 --> 00:02:11,390
‫Idealmente, isso nos proporcionaria

43
00:02:11,390 --> 00:02:13,583
‫todos os comentários sobre esse passeio.

44
00:02:14,970 --> 00:02:17,110
‫Poderíamos ir ainda mais longe

45
00:02:17,110 --> 00:02:19,653
‫e também especificar o ID da revisão.

46
00:02:21,840 --> 00:02:24,490
‫Então, novamente, apenas uma string aleatória aqui,

47
00:02:24,490 --> 00:02:25,703
‫mas você entendeu.

48
00:02:26,643 --> 00:02:28,550
‫Nesse caso, obteríamos revisão com

49
00:02:28,550 --> 00:02:30,420
‫o ID disso

50
00:02:30,420 --> 00:02:32,603
‫aqui no tour com esse ID.

51
00:02:34,140 --> 00:02:36,520
‫É disso que tratam as rotas aninhadas.

52
00:02:36,520 --> 00:02:40,220
‫Esta é uma maneira mais fácil de ler

53
00:02:40,220 --> 00:02:44,795
‫e entender como a API funciona para nossos usuários da API.

54
00:02:44,795 --> 00:02:47,130
‫É muito mais fácil do que brincar

55
00:02:47,130 --> 00:02:50,100
‫com strings de consulta e todas essas coisas assim.

56
00:02:50,100 --> 00:02:52,580
‫Além disso, realmente mostra

57
00:02:52,580 --> 00:02:55,850
‫como existe essa relação clara entre esses

58
00:02:55,850 --> 00:02:58,610
‫recursos, novamente, avaliações e passeios.

59
00:02:58,610 --> 00:03:00,410
‫Tudo bem, mas chega de conversa.

60
00:03:00,410 --> 00:03:02,510
‫Agora vamos realmente implementar isso começando

61
00:03:02,510 --> 00:03:04,600
‫com a rota do post.

62
00:03:04,600 --> 00:03:08,100
‫Agora, como a rota realmente começa com tours, ela será

63
00:03:08,100 --> 00:03:11,150
‫redirecionada para o nosso roteador de tours.

64
00:03:11,150 --> 00:03:14,600
‫Teremos que implementar essa funcionalidade pelo menos por agora,

65
00:03:14,600 --> 00:03:16,890
‫no roteador de tour, embora isso

66
00:03:16,890 --> 00:03:19,530
‫pareça um pouco contra-intuitivo, já que estamos,

67
00:03:19,530 --> 00:03:21,793
‫na verdade, lidando com revisões.

68
00:03:23,190 --> 00:03:26,650
‫Mas, novamente, por enquanto, vamos implementá-lo assim.

69
00:03:26,650 --> 00:03:29,690
‫Chegamos ao nosso roteador de usuário e primeiro,

70
00:03:32,040 --> 00:03:33,550
‫já que vamos usar

71
00:03:33,550 --> 00:03:34,870
‫análises aqui,

72
00:03:34,870 --> 00:03:37,483
‫precisamos importar o controlador de análises.

73
00:03:42,370 --> 00:03:46,140
‫Requer controlador.

74
00:03:46,140 --> 00:03:49,763
‫Talvez eu devesse apenas ter copiado a linha de antes.

75
00:03:52,080 --> 00:03:55,693
‫Controladores e revisão do controlador.

76
00:03:57,380 --> 00:04:01,010
‫Tudo bem, agora aqui no final, e vamos realmente

77
00:04:01,010 --> 00:04:02,730
‫pegar nosso código para

78
00:04:02,730 --> 00:04:04,970
‫este exemplo aqui apenas como

79
00:04:08,100 --> 00:04:09,223
‫uma referência.

80
00:04:13,518 --> 00:04:15,750
‫Para que agora possamos realmente implementá-lo.

81
00:04:15,750 --> 00:04:18,910
‫A rota que vamos implementar aqui

82
00:04:20,960 --> 00:04:24,673
‫é a barra de ID e, em seguida, analisa.

83
00:04:26,240 --> 00:04:28,600
‫Essa parte do tour aqui, como vocês

84
00:04:28,600 --> 00:04:30,457
‫já sabem, é onde

85
00:04:30,457 --> 00:04:33,300
‫montamos esse roteador e portanto, não precisamos repetir aqui.

86
00:04:33,300 --> 00:04:37,090
‫Mas então, temos o ID do tour e, em seguida, reduzimos os comentários.

87
00:04:37,090 --> 00:04:38,590
‫Para deixar isso bem claro,

88
00:04:38,590 --> 00:04:40,440
‫vamos chamá-lo de tour ID, pois

89
00:04:42,850 --> 00:04:44,040
‫agora estamos lidando

90
00:04:44,040 --> 00:04:45,440
‫com diferentes recursos aqui.

91
00:04:45,440 --> 00:04:48,363
‫Portanto, é um pouco mais claro chamá-lo do que realmente é.

92
00:04:52,885 --> 00:04:55,844
‫Agora queremos implementar a revisão de criação.

93
00:04:55,844 --> 00:04:58,094
‫Authcontroller dot protect.

94
00:05:00,960 --> 00:05:04,403
‫Também queremos restringir o acesso apenas aos

95
00:05:11,472 --> 00:05:15,805
‫usuários e, claro, nosso controlador de revisão ponto criar

96
00:05:19,740 --> 00:05:22,033
‫revisão, tudo bem.

97
00:05:22,980 --> 00:05:26,000
‫Novamente, é um pouco estranho e contra-intuitivo

98
00:05:26,000 --> 00:05:28,880
‫chamar o controlador de revisão aqui na

99
00:05:28,880 --> 00:05:30,593
‫rota do usuário.

100
00:05:31,620 --> 00:05:34,273
‫Bem, na verdade, não deve estar na rota do usuário.

101
00:05:35,200 --> 00:05:36,990
‫Por algum motivo, abri as

102
00:05:36,990 --> 00:05:41,140
‫rotas do usuário e não as rotas do tour, sinto muito por isso.

103
00:05:41,140 --> 00:05:44,403
‫Vamos cortar a partir daqui, chegar às nossas rotas de turismo e

104
00:05:45,420 --> 00:05:47,320
‫realmente fazer aqui na parte inferior.

105
00:05:49,697 --> 00:05:52,523
‫Claro que também precisamos obter o controlador de revisão.

106
00:05:56,490 --> 00:05:59,580
‫Portanto, agora devemos estar prontos para ir.

107
00:05:59,580 --> 00:06:01,640
‫Esse foi um bug estúpido.

108
00:06:01,640 --> 00:06:03,920
‫Mas de qualquer forma, o que

109
00:06:03,920 --> 00:06:06,610
‫eu estava dizendo é que não faz muito

110
00:06:06,610 --> 00:06:09,720
‫sentido chamar o controlador de revisão na rota do

111
00:06:09,720 --> 00:06:12,300
‫tour, mas novamente, por enquanto, precisamos fazer

112
00:06:12,300 --> 00:06:15,000
‫assim porque a rota começa com o tour.

113
00:06:15,000 --> 00:06:17,680
‫É este roteador que será ativado.

114
00:06:17,680 --> 00:06:19,460
‫No próximo vídeo, vamos consertar

115
00:06:19,460 --> 00:06:21,350
‫isso, mas por enquanto, queremos apenas

116
00:06:21,350 --> 00:06:22,870
‫fazer funcionar e

117
00:06:22,870 --> 00:06:25,840
‫nos familiarizar com todo esse conceito de rotas aninhadas.

118
00:06:25,840 --> 00:06:29,540
‫De qualquer forma, agora obtivemos nosso ID de passeio na rota, mas

119
00:06:29,540 --> 00:06:30,880
‫é claro, precisamos

120
00:06:30,880 --> 00:06:34,250
‫informar ao controlador que ele deve usar este ID de passeio

121
00:06:34,250 --> 00:06:37,113
‫e também o ID do usuário conectado no momento.

122
00:06:38,100 --> 00:06:39,240
‫Agora precisamos ir

123
00:06:39,240 --> 00:06:41,400
‫em frente e atualizar nosso controlador de revisão

124
00:06:43,630 --> 00:06:45,433
‫aqui mesmo na criação de revisão.

125
00:06:53,817 --> 00:06:56,370
‫O que vamos fazer é isso.

126
00:06:56,370 --> 00:07:01,360
‫Diremos que, se não houver solicitação ponto body ponto tour, basicamente,

127
00:07:02,990 --> 00:07:06,210
‫se não especificarmos o ID do tour

128
00:07:06,210 --> 00:07:08,180
‫e o corpo, queremos

129
00:07:08,180 --> 00:07:10,870
‫defini-lo como sendo aquele que vem

130
00:07:10,870 --> 00:07:12,603
‫da URL.

131
00:07:14,080 --> 00:07:17,373
‫Req. Dot body dot tour é igual a request,

132
00:07:19,210 --> 00:07:21,910
‫e agora lembre-se de como esse

133
00:07:21,910 --> 00:07:25,850
‫parâmetro de URL está nos parâmetros de ponto de solicitação e,

134
00:07:25,850 --> 00:07:29,603
‫claro, o nome do próprio parâmetro, então ID do tour.

135
00:07:32,930 --> 00:07:34,640
‫Esta é a primeira parte e

136
00:07:34,640 --> 00:07:37,060
‫a segunda, também precisamos fazer o mesmo com o usuário.

137
00:07:38,450 --> 00:07:41,740
‫Se não houver um usuário de ponto de

138
00:07:41,740 --> 00:07:46,710
‫solicitação ou, na verdade, o usuário de ponto de corpo de solicitação de solicitação,

139
00:07:46,710 --> 00:07:50,180
‫bem, o usuário de ponto de corpo de solicitação

140
00:07:51,910 --> 00:07:56,910
‫de ponto deve ser a ID de usuário de ponto de solicitação de ponto.

141
00:07:58,750 --> 00:08:01,520
‫E, novamente, obtemos o usuário do

142
00:08:01,520 --> 00:08:05,193
‫ponto de solicitação do middleware de proteção, e é isso.

143
00:08:06,130 --> 00:08:11,130
‫Vamos apenas colocar um comentário aqui, rotas aninhadas.

144
00:08:13,390 --> 00:08:15,120
‫Com isso, realmente fazemos com

145
00:08:15,120 --> 00:08:17,700
‫que o usuário ainda possa especificar manualmente o

146
00:08:17,700 --> 00:08:19,603
‫tour e a ID do usuário.

147
00:08:20,677 --> 00:08:21,860
‫O que estamos

148
00:08:21,860 --> 00:08:24,250
‫fazendo aqui é simplesmente defini-los quando não estão

149
00:08:24,250 --> 00:08:27,343
‫lá ou quando não estão especificados no corpo da solicitação.

150
00:08:28,827 --> 00:08:32,263
‫Isso deve ser o suficiente para testarmos agora.

151
00:08:33,410 --> 00:08:35,320
‫Tudo bem, então vamos dar

152
00:08:35,320 --> 00:08:37,853
‫uma olhada nos usuários que temos neste momento.

153
00:08:41,820 --> 00:08:43,610
‫Temos esses dois

154
00:08:43,610 --> 00:08:46,610
‫usuários regulares, o usuário de teste e o

155
00:08:46,610 --> 00:08:49,390
‫Jonas aqui, mas esquecemos a senha dele.

156
00:08:49,390 --> 00:08:51,550
‫Vamos excluir este

157
00:08:51,550 --> 00:08:53,730
‫usuário e criar um novo.

158
00:08:53,730 --> 00:08:58,730
‫Tudo bem, então no Compass, os usuários, e é

159
00:09:00,400 --> 00:09:01,773
‫este aqui.

160
00:09:07,220 --> 00:09:09,723
‫Vamos recriar esse usuário basicamente.

161
00:09:11,220 --> 00:09:14,793
‫Tudo o que realmente precisamos são esses dois dados.

162
00:09:17,110 --> 00:09:18,543
‫Na verdade, isso é se inscrever.

163
00:09:26,820 --> 00:09:28,310
‫O mesmo nome, o

164
00:09:29,600 --> 00:09:31,743
‫mesmo email e a mesma senha também.

165
00:09:35,657 --> 00:09:38,690
‫Neste ponto, já estamos logados como este

166
00:09:38,690 --> 00:09:42,170
‫usuário, o chamado Jonas, vamos manter isso em mente.

167
00:09:42,170 --> 00:09:44,950
‫Em seguida, precisamos escolher em qual

168
00:09:44,950 --> 00:09:47,600
‫tour queremos criar a revisão.

169
00:09:47,600 --> 00:09:49,790
‫Vamos fazer isso de novo aqui no

170
00:09:49,790 --> 00:09:52,773
‫The Forest Hiker para que recebamos várias avaliações no mesmo passeio.

171
00:09:54,240 --> 00:09:55,090
‫O que

172
00:09:55,090 --> 00:09:57,380
‫vamos fazer agora é basicamente acessar aquela rota aninhada

173
00:09:57,380 --> 00:09:58,430
‫que acabamos de criar.

174
00:10:02,135 --> 00:10:03,350
‫Temos os passeios.

175
00:10:03,350 --> 00:10:05,980
‫Agora precisamos obter o ID do tour

176
00:10:05,980 --> 00:10:08,050
‫e, novamente, usaremos este para

177
00:10:08,050 --> 00:10:09,323
‫The Forest

178
00:10:12,490 --> 00:10:16,430
‫Hiker e, em seguida, reduzir as avaliações e, em seguida,

179
00:10:16,430 --> 00:10:18,283
‫lembrar de uma postagem.

180
00:10:19,230 --> 00:10:21,963
‫Em seguida, também precisamos especificar a autorização, então

181
00:10:23,100 --> 00:10:27,010
‫o token do portador, e agora no corpo, tudo o que

182
00:10:27,010 --> 00:10:28,610
‫realmente precisamos é

183
00:10:28,610 --> 00:10:30,673
‫especificar a classificação e a revisão.

184
00:10:36,830 --> 00:10:37,860
‫A avaliação

185
00:10:45,220 --> 00:10:47,160
‫é cinco e algum texto aqui.

186
00:10:47,160 --> 00:10:50,913
‫Portanto, isso já deve ser suficiente para experimentar.

187
00:10:51,920 --> 00:10:52,753
‫Vamos mandar.

188
00:10:53,769 --> 00:10:56,520
‫Agora não temos permissão para realizar

189
00:10:56,520 --> 00:11:00,100
‫essa ação, por algum motivo, o que é estranho.

190
00:11:00,100 --> 00:11:03,460
‫Nós nos inscrevemos como este Jonas, e na verdade

191
00:11:03,460 --> 00:11:05,610
‫ele é apenas um usuário normal

192
00:11:06,490 --> 00:11:08,203
‫como deveria ser.

193
00:11:09,090 --> 00:11:11,533
‫Vamos dar uma olhada em nosso roteador.

194
00:11:13,154 --> 00:11:17,170
‫Aqui, tudo bem, é usuário, não usuários.

195
00:11:19,120 --> 00:11:22,930
‫Um pequeno bug como esse pode, como você

196
00:11:22,930 --> 00:11:27,333
‫pode ver, travar toda a rota, então vamos tentar novamente agora.

197
00:11:28,530 --> 00:11:31,750
‫E agora temos a revisão final

198
00:11:31,750 --> 00:11:35,300
‫com o tour e o usuário definidos corretamente.

199
00:11:35,300 --> 00:11:38,140
‫Pelo menos eu espero que sim.

200
00:11:38,140 --> 00:11:41,250
‫O tour ID, você vê, termina aqui em 951 e,

201
00:11:41,250 --> 00:11:43,260
‫portanto, é exatamente o mesmo aqui.

202
00:11:43,260 --> 00:11:47,640
‫O usuário é este 1f3 e, de fato, é

203
00:11:47,640 --> 00:11:49,343
‫exatamente o mesmo.

204
00:11:50,660 --> 00:11:53,280
‫Tudo bem, agora devemos ser capazes

205
00:11:53,280 --> 00:11:56,170
‫de confirmar isso, e este tour get

206
00:11:56,170 --> 00:11:59,230
‫aqui já é aquele em que estávamos

207
00:11:59,230 --> 00:12:01,165
‫criando a nova revisão.

208
00:12:01,165 --> 00:12:04,460
‫Vamos dar uma olhada e, de fato,

209
00:12:04,460 --> 00:12:06,660
‫agora temos duas análises.

210
00:12:06,660 --> 00:12:09,140
‫Este é o que acabamos de criar.

211
00:12:09,140 --> 00:12:11,790
‫Fica no tour correto e claro,

212
00:12:11,790 --> 00:12:15,450
‫também o usuário correto com o nome de Jonas.

213
00:12:15,450 --> 00:12:17,973
‫Incrível, isso é muito legal.

214
00:12:19,620 --> 00:12:22,520
‫Vamos salvar isso.

215
00:12:22,520 --> 00:12:24,720
‫Vou criar uma nova pasta aqui novamente.

216
00:12:25,610 --> 00:12:29,473
‫Vou chamá-lo de tours e críticas.

217
00:12:31,086 --> 00:12:33,663
‫Agora aqui, vamos

218
00:12:34,705 --> 00:12:39,705
‫criar, criar uma nova revisão no tour.

219
00:12:46,220 --> 00:12:49,537
‫Isso deveria ser realmente do lado de fora e assim.

220
00:12:54,397 --> 00:12:56,103
‫Vamos realmente colocar esse aqui.

221
00:12:57,450 --> 00:13:01,293
‫Realmente não funciona como deveria por algum motivo.

222
00:13:02,130 --> 00:13:03,403
‫E aqui vamos nós.

223
00:13:05,800 --> 00:13:08,260
‫Tudo bem, funcionou bem,

224
00:13:08,260 --> 00:13:10,870
‫mas, como mencionei antes, a implementação

225
00:13:10,870 --> 00:13:13,450
‫é um pouco confusa neste ponto.

226
00:13:13,450 --> 00:13:16,890
‫E, novamente, isso ocorre porque tecnicamente definimos uma rota

227
00:13:16,890 --> 00:13:19,333
‫de revisão no roteador de tour.

228
00:13:20,220 --> 00:13:22,650
‫Isso é um pouco confuso e, portanto, no

229
00:13:22,650 --> 00:13:24,193
‫próximo vídeo, vamos consertar isso.

