﻿1
00:00:01,070 --> 00:00:01,970
‫-: Tudo bem.

2
00:00:01,970 --> 00:00:05,850
‫Portanto, vamos agora criar um novo documento de reserva em nosso banco de

3
00:00:05,850 --> 00:00:09,083
‫dados sempre que um usuário adquire um passeio com sucesso.

4
00:00:10,940 --> 00:00:13,400
‫Então, estamos de volta aqui no controlador

5
00:00:13,400 --> 00:00:15,130
‫de reservas e na

6
00:00:15,130 --> 00:00:18,410
‫proposta bruta, que cria as sessões de checkout, certo?

7
00:00:18,410 --> 00:00:21,990
‫E lembre-se de que aqui temos esse url de

8
00:00:21,990 --> 00:00:25,210
‫sucesso e esse url é a base da

9
00:00:25,210 --> 00:00:27,670
‫funcionalidade que vamos implementar nesta aula.

10
00:00:27,670 --> 00:00:30,400
‫Assim, sempre que um check-out

11
00:00:30,400 --> 00:00:34,440
‫for bem-sucedido, o navegador irá automaticamente para este

12
00:00:34,440 --> 00:00:39,140
‫url, que agora é basicamente a nossa página inicial, certo?

13
00:00:39,140 --> 00:00:41,190
‫É também neste momento, então,

14
00:00:41,190 --> 00:00:44,360
‫quando um checkout é bem-sucedido, queremos criar uma

15
00:00:44,360 --> 00:00:46,130
‫nova reserva, certo?

16
00:00:46,130 --> 00:00:49,200
‫Basicamente, queremos criar uma nova

17
00:00:49,200 --> 00:00:53,010
‫reserva sempre que este url for acessado.

18
00:00:53,010 --> 00:00:56,680
‫Agora poderíamos criar uma nova rota para esse sucesso, mas

19
00:00:56,680 --> 00:00:59,940
‫então teríamos que criar uma página totalmente nova e

20
00:00:59,940 --> 00:01:02,690
‫isso não vale a pena neste caso.

21
00:01:02,690 --> 00:01:06,090
‫E isso porque o que vamos fazer nesta

22
00:01:06,090 --> 00:01:08,860
‫palestra é apenas uma solução

23
00:01:08,860 --> 00:01:12,040
‫temporária, porque não é realmente seguro, ok?

24
00:01:12,040 --> 00:01:14,690
‫Portanto, lembre-se de como dissemos algumas palestras

25
00:01:14,690 --> 00:01:17,980
‫atrás e aquele belo diagrama que mais tarde,

26
00:01:17,980 --> 00:01:21,500
‫quando um site for realmente implantado em um servidor, teremos

27
00:01:21,500 --> 00:01:24,830
‫acesso ao objeto de sessão assim que a compra

28
00:01:24,830 --> 00:01:27,200
‫for concluída usando Stripe Webhooks.

29
00:01:27,200 --> 00:01:29,750
‫Assim, esses webhooks serão perfeitos para

30
00:01:29,750 --> 00:01:31,970
‫criarmos uma nova reserva.

31
00:01:31,970 --> 00:01:32,803
‫OK?

32
00:01:32,803 --> 00:01:35,040
‫Mas, por enquanto, como ainda não podemos

33
00:01:35,040 --> 00:01:36,650
‫fazer isso, vamos usar uma

34
00:01:36,650 --> 00:01:39,810
‫solução alternativa, que é simplesmente colocar os dados de que

35
00:01:39,810 --> 00:01:43,810
‫precisamos para criar uma nova reserva diretamente neste url como uma string de consulta.

36
00:01:43,810 --> 00:01:44,670
‫OK?

37
00:01:44,670 --> 00:01:47,800
‫E precisamos criar uma string de consulta porque Stripe

38
00:01:47,800 --> 00:01:51,620
‫fará apenas uma solicitação get para este url aqui e, portanto,

39
00:01:51,620 --> 00:01:55,280
‫não podemos realmente enviar um corpo ou qualquer dado com ele,

40
00:01:55,280 --> 00:01:57,680
‫exceto para a string de consulta.

41
00:01:57,680 --> 00:01:58,513
‫Tudo bem?

42
00:01:58,513 --> 00:02:02,300
‫Então, vamos fazer isso e o que precisamos aqui são basicamente

43
00:02:02,300 --> 00:02:05,660
‫os três campos obrigatórios em nosso modelo de reserva.

44
00:02:05,660 --> 00:02:07,200
‫Então, tour,

45
00:02:07,200 --> 00:02:08,930
‫usuário e preço.

46
00:02:08,930 --> 00:02:10,200
‫Portanto, o

47
00:02:10,200 --> 00:02:11,400
‫tour

48
00:02:11,400 --> 00:02:16,478
‫é igual a req.

49
00:02:16,478 --> 00:02:16,478
‫params.

50
00:02:16,478 --> 00:02:17,311
‫tourid certo?

51
00:02:18,410 --> 00:02:19,243
‫Então o que eu fiz aqui?

52
00:02:20,350 --> 00:02:21,793
‫Então está correto.

53
00:02:23,500 --> 00:02:25,290
‫Em seguida, precisamos do usuário.

54
00:02:25,290 --> 00:02:27,473
‫Então, usuário, que está a

55
00:02:28,760 --> 00:02:29,793
‫pedido. do utilizador. identificação.

56
00:02:30,700 --> 00:02:32,887
‫E finalmente precisamos do preço,

57
00:02:32,887 --> 00:02:33,807
‫que

58
00:02:33,807 --> 00:02:35,290
‫está em turnê. preço.

59
00:02:35,290 --> 00:02:38,170
‫Tudo bem.

60
00:02:38,170 --> 00:02:39,003
‫Agora, como eu disse antes,

61
00:02:40,230 --> 00:02:41,063
‫isso obviamente não é

62
00:02:42,277 --> 00:02:43,110
‫seguro, porque agora qualquer

63
00:02:44,190 --> 00:02:45,630
‫um que conheça essa estrutura de url aqui

64
00:02:45,630 --> 00:02:47,250
‫poderia simplesmente chamá-la sem passar pelo processo de checkout, certo?

65
00:02:47,250 --> 00:02:50,140
‫E então qualquer pessoa poderia

66
00:02:50,140 --> 00:02:54,760
‫simplesmente reservar um passeio sem ter que pagar.

67
00:02:54,760 --> 00:02:57,510
‫Tudo o que eles teriam que fazer seria abrir

68
00:02:57,510 --> 00:02:59,250
‫esse url com o tour, o

69
00:02:59,250 --> 00:03:01,930
‫usuário e o preço e então criariam automaticamente uma

70
00:03:01,930 --> 00:03:03,630
‫nova reserva sem pagar, certo?

71
00:03:03,630 --> 00:03:06,530
‫Então, novamente, não é realmente seguro, mas por

72
00:03:06,530 --> 00:03:08,830
‫enquanto, como uma solução alternativa, funciona

73
00:03:08,830 --> 00:03:11,900
‫muito bem, porque muitas pessoas, é claro, saberão que

74
00:03:11,900 --> 00:03:14,320
‫este é o nosso url de sucesso.

75
00:03:14,320 --> 00:03:16,080
‫OK?

76
00:03:16,080 --> 00:03:19,160
‫Porque, na verdade, vamos esconder esse fato

77
00:03:19,160 --> 00:03:22,240
‫um pouco em um segundo, ok?

78
00:03:22,240 --> 00:03:24,920
‫Portanto, vamos agora criar a função que realmente criará a nova reserva no

79
00:03:24,920 --> 00:03:25,753
‫banco de dados.

80
00:03:25,753 --> 00:03:28,790
‫Isso vai exportar dot create booking

81
00:03:28,790 --> 00:03:30,910
‫checkout e é chamado

82
00:03:30,910 --> 00:03:35,120
‫de create booking checkout porque mais tarde teremos

83
00:03:35,120 --> 00:03:37,083
‫também o create booking,

84
00:03:38,320 --> 00:03:40,610
‫que estará acessível em

85
00:03:40,610 --> 00:03:42,150
‫nossa API

86
00:03:42,150 --> 00:03:42,983
‫de

87
00:03:44,000 --> 00:03:44,833
‫reservas.

88
00:03:46,100 --> 00:03:47,150
‫Tudo bem.

89
00:03:47,150 --> 00:03:49,600
‫De qualquer forma.

90
00:03:49,600 --> 00:03:52,980
‫Aqui como sempre.

91
00:03:52,980 --> 00:03:56,313
‫E vamos começar obtendo nossos dados da string de consulta.

92
00:03:57,760 --> 00:03:59,360
‫E então para isso vou usar a estruturação.

93
00:03:59,360 --> 00:04:00,193
‫Portanto,

94
00:04:02,160 --> 00:04:03,523
‫o tour, o

95
00:04:06,460 --> 00:04:09,990
‫usuário e o preço estão disponíveis mediante solicitação. inquerir.

96
00:04:09,990 --> 00:04:13,370
‫Portanto, lembre-se de que essa é a string de consulta.

97
00:04:13,370 --> 00:04:14,763
‫Então, na verdade, só queremos criar

98
00:04:15,920 --> 00:04:17,520
‫uma nova reserva se tudo isso aqui for especificado.

99
00:04:17,520 --> 00:04:21,113
‫E então basicamente dizemos que, se eles não existirem, vamos

100
00:04:21,113 --> 00:04:22,520
‫ao próximo middleware.

101
00:04:22,520 --> 00:04:25,540
‫Então esse é o nosso procedimento padrão, certo?

102
00:04:25,540 --> 00:04:28,830
‫Portanto, dizemos que se

103
00:04:28,830 --> 00:04:31,720
‫não houver

104
00:04:31,720 --> 00:04:35,060
‫tour e nenhum usuário

105
00:04:35,060 --> 00:04:37,980
‫e nenhum preço.

106
00:04:37,980 --> 00:04:41,003
‫Então, basicamente, exigimos que todos eles existam.

107
00:04:42,190 --> 00:04:45,890
‫E então, nesse caso, vamos para o

108
00:04:45,890 --> 00:04:47,480
‫próximo middleware.

109
00:04:47,480 --> 00:04:48,680
‫Agora, o que exatamente é o próximo middleware?

110
00:04:48,680 --> 00:04:50,050
‫Lembre-se de que

111
00:04:50,050 --> 00:04:53,450
‫queremos criar uma nova reserva neste url de casa.

112
00:04:53,450 --> 00:04:55,253
‫Então, este aqui.

113
00:04:56,580 --> 00:04:58,790
‫Porque, novamente, esse é o url

114
00:04:58,790 --> 00:05:02,420
‫que é chamado sempre que uma compra é bem-sucedida com o Stripe.

115
00:05:02,420 --> 00:05:06,300
‫E então o que precisamos fazer é adicionar esta função de middleware que

116
00:05:06,300 --> 00:05:08,340
‫estamos criando agora na pilha de middleware

117
00:05:08,340 --> 00:05:09,660
‫deste manipulador de rota.

118
00:05:09,660 --> 00:05:12,380
‫Então, que manipulador de rota é esse?

119
00:05:12,380 --> 00:05:15,610
‫Bem, está em vista de rotas

120
00:05:15,610 --> 00:05:18,810
‫e é esta aqui, certo?

121
00:05:18,810 --> 00:05:21,990
‫Isso provavelmente parece um pouco confuso.

122
00:05:21,990 --> 00:05:23,393
‫Mas, novamente, este é o caminho

123
00:05:24,230 --> 00:05:26,620
‫que será atingido quando um cartão de crédito for cobrado com sucesso.

124
00:05:26,620 --> 00:05:30,943
‫E então este é também o momento em que queremos criar uma

125
00:05:32,170 --> 00:05:33,270
‫nova reserva.

126
00:05:33,270 --> 00:05:36,040
‫E aqui é onde precisamos adicionar

127
00:05:36,040 --> 00:05:39,610
‫essa função de middleware, então vamos realmente fazer isso

128
00:05:39,610 --> 00:05:42,080
‫e exigir nosso controlador e

129
00:05:42,080 --> 00:05:44,730
‫agora vamos apenas duplicar isso aqui.

130
00:05:44,730 --> 00:05:46,260
‫Então, o controlador de

131
00:05:46,260 --> 00:05:49,940
‫reserva e agora irei editar aqui logo no início, porque realmente não importa

132
00:05:51,340 --> 00:05:53,350
‫se estamos logados ou não para isso.

133
00:05:53,350 --> 00:05:57,963
‫Portanto, controlador de reservas. get, ou realmente

134
00:06:02,440 --> 00:06:06,850
‫dot create

135
00:06:06,850 --> 00:06:09,540
‫bookingcheckout.

136
00:06:09,540 --> 00:06:11,743
‫Salve e tudo

137
00:06:13,130 --> 00:06:16,780
‫bem.

138
00:06:16,780 --> 00:06:18,300
‫E, novamente, isso é apenas temporário

139
00:06:18,300 --> 00:06:19,770
‫até que tenhamos nossos sites implantados

140
00:06:19,770 --> 00:06:20,603
‫em um servidor

141
00:06:22,878 --> 00:06:25,060
‫onde seremos capazes de criar uma solução melhor para isso.

142
00:06:25,060 --> 00:06:26,230
‫OK?

143
00:06:26,230 --> 00:06:29,150
‫Então, aqui no controlador de reservas,

144
00:06:29,150 --> 00:06:32,610
‫agora é hora de realmente criar essa nova reserva.

145
00:06:32,610 --> 00:06:35,560
‫E agora precisamos importar esse modelo.

146
00:06:35,560 --> 00:06:36,950
‫Então vamos fazer isso aqui.

147
00:06:36,950 --> 00:06:41,230
‫Reserva e

148
00:06:41,230 --> 00:06:44,930
‫modelo de reserva aqui também.

149
00:06:44,930 --> 00:06:48,903
‫E por alguma razão aqui eu tenho esse caminho estranho.

150
00:06:50,810 --> 00:06:52,053
‫Então, isso não faz nenhum sentido.

151
00:06:53,520 --> 00:06:54,780
‫Não sei por que os escrevi assim naquela época.

152
00:06:54,780 --> 00:06:55,613
‫Então, o que temos lá é exatamente igual a isso.

153
00:06:57,750 --> 00:06:59,363
‫Mas é claro que isso é mais legível.

154
00:07:01,280 --> 00:07:04,830
‫De qualquer forma.

155
00:07:04,830 --> 00:07:08,170
‫Vamos agora criar essa reserva.

156
00:07:08,170 --> 00:07:11,910
‫E para isso teremos

157
00:07:11,910 --> 00:07:15,160
‫que aguardar reserva. crie com um

158
00:07:15,160 --> 00:07:21,810
‫objeto

159
00:07:21,810 --> 00:07:27,353
‫de passeio, usuário e preço.

160
00:07:28,497 --> 00:07:29,330
‫E é isso.

161
00:07:30,900 --> 00:07:32,040
‫Agora também precisamos marcar este

162
00:07:32,040 --> 00:07:33,390
‫aqui como assíncrono e como

163
00:07:33,390 --> 00:07:34,223
‫sempre catchasync.

164
00:07:35,120 --> 00:07:35,953
‫OK?

165
00:07:36,810 --> 00:07:37,843
‫E não estamos salvando isso

166
00:07:38,830 --> 00:07:40,310
‫em nenhuma variável porque realmente não precisamos disso.

167
00:07:40,310 --> 00:07:42,660
‫Não vamos enviar isso de volta como uma resposta da API.

168
00:07:44,220 --> 00:07:45,660
‫Neste ponto, tudo o que queremos fazer aqui é

169
00:07:46,582 --> 00:07:47,499
‫criar esse novo documento, ok?

170
00:07:53,252 --> 00:07:54,085
‫Em

171
00:07:54,085 --> 00:07:56,450
‫seguida, poderíamos dizer próximo, assim.

172
00:07:56,450 --> 00:07:58,250
‫E então isso iria para

173
00:07:58,250 --> 00:08:01,470
‫o próximo middleware, mas isso não é realmente ideal.

174
00:08:01,470 --> 00:08:04,970
‫Portanto, lembre-se novamente de que o próximo middleware na

175
00:08:04,970 --> 00:08:07,363
‫pilha é, obviamente, este e a

176
00:08:08,480 --> 00:08:10,680
‫visão geral do get.

177
00:08:12,280 --> 00:08:14,460
‫Então, basicamente, a

178
00:08:14,460 --> 00:08:17,220
‫função que irá renderizar nossa página.

179
00:08:17,220 --> 00:08:18,990
‫Mas lembre-se de que esse url é tudo isso.

180
00:08:18,990 --> 00:08:22,010
‫Então, tudo isso com todos esses dados aqui.

181
00:08:22,010 --> 00:08:24,450
‫E, novamente, isso não é seguro de forma alguma.

182
00:08:24,450 --> 00:08:26,640
‫E pelo menos vamos

183
00:08:26,640 --> 00:08:29,041
‫torná-lo um pouco mais seguro, certo?

184
00:08:29,041 --> 00:08:30,800
‫E então

185
00:08:30,800 --> 00:08:35,023
‫o que podemos fazer aqui é basicamente redirecionar o

186
00:08:35,980 --> 00:08:38,920
‫aplicativo agora para apenas este url.

187
00:08:38,920 --> 00:08:41,610
‫Basicamente, você está removendo

188
00:08:41,610 --> 00:08:45,200
‫a string de consulta do url original.

189
00:08:45,200 --> 00:08:46,200
‫E agora

190
00:08:46,200 --> 00:08:48,660
‫vamos usar algo que nunca usamos antes.

191
00:08:48,660 --> 00:08:52,090
‫Então isso é ótimo, certo?

192
00:08:52,090 --> 00:08:52,923
‫Então, vamos usar o redirecionamento.

193
00:08:53,837 --> 00:08:55,980
‫Tudo bem?

194
00:08:55,980 --> 00:08:57,277
‫Portanto, agora o que

195
00:08:59,007 --> 00:09:01,710
‫queremos é a url inteira, mas sem a string de consulta.

196
00:09:01,710 --> 00:09:03,300
‫Então, o que podemos

197
00:09:03,300 --> 00:09:04,763
‫fazer é

198
00:09:05,860 --> 00:09:08,193
‫apenas trapacear e copiar isso aqui.

199
00:09:10,810 --> 00:09:11,970
‫Mas vamos torná-lo um pouco mais elegante.

200
00:09:11,970 --> 00:09:15,230
‫Então, o que estamos fazendo é um pedido. teoriginalurl, que já usamos

201
00:09:15,230 --> 00:09:16,803
‫antes.

202
00:09:18,000 --> 00:09:20,620
‫E esse é o url

203
00:09:20,620 --> 00:09:23,450
‫inteiro de onde veio a solicitação.

204
00:09:23,450 --> 00:09:24,660
‫E agora o

205
00:09:24,660 --> 00:09:27,110
‫que precisamos fazer é dividi-lo pelo ponto de interrogação.

206
00:09:27,110 --> 00:09:31,096
‫Direito?

207
00:09:31,096 --> 00:09:33,090
‫Porque esse é o divisor entre a parte que realmente

208
00:09:33,090 --> 00:09:34,573
‫queremos e a string de consulta.

209
00:09:35,870 --> 00:09:38,090
‫Então, se dividirmos isso pelo ponto de interrogação,

210
00:09:38,090 --> 00:09:40,190
‫teremos um array onde o primeiro

211
00:09:40,190 --> 00:09:43,090
‫elemento é esse e o segundo elemento é todo o resto.

212
00:09:43,090 --> 00:09:44,283
‫Portanto, a própria string de consulta.

213
00:09:48,010 --> 00:09:48,843
‫E aqui

214
00:09:48,843 --> 00:09:52,500
‫pegamos o primeiro elemento e essa é a nossa página inicial.

215
00:09:52,500 --> 00:09:55,053
‫Então, nosso url de rota.

216
00:09:56,700 --> 00:10:00,040
‫E o que o redirecionamento aqui faz é basicamente criar uma nova

217
00:10:00,040 --> 00:10:02,917
‫solicitação, mas para este novo url que passamos lá.

218
00:10:02,917 --> 00:10:06,420
‫Tudo bem?

219
00:10:06,420 --> 00:10:08,430
‫Portanto, isso irá criar mais

220
00:10:08,430 --> 00:10:11,210
‫uma solicitação para o nosso url de rota.

221
00:10:11,210 --> 00:10:13,480
‫Então, vamos novamente pegar essa rota.

222
00:10:13,480 --> 00:10:14,463
‫E então, mais uma vez, vamos acertar esse middleware aqui.

223
00:10:15,560 --> 00:10:19,520
‫Então, aquele que estamos apenas criando.

224
00:10:19,520 --> 00:10:24,060
‫Então, pela segunda vez, vamos chegar lá, mas agora o tour, o usuário e o preço não

225
00:10:24,060 --> 00:10:25,170
‫estão mais definidos.

226
00:10:25,170 --> 00:10:27,680
‫E então passaremos para o próximo middleware, que finalmente

227
00:10:27,680 --> 00:10:28,653
‫é a função

228
00:10:29,890 --> 00:10:32,900
‫de manipulador get overview, que então apenas renderizaremos a página inicial, ok?

229
00:10:32,900 --> 00:10:37,230
‫Fez sentido?

230
00:10:37,230 --> 00:10:39,790
‫Então isso é meio circular.

231
00:10:39,790 --> 00:10:42,850
‫Então, basicamente, no

232
00:10:42,850 --> 00:10:47,240
‫começo, vamos pegar essa rota aqui.

233
00:10:47,240 --> 00:10:49,860
‫Em seguida, uma nova reserva

234
00:10:49,860 --> 00:10:53,540
‫aqui é criada e redirecionamos o aplicativo novamente

235
00:10:53,540 --> 00:10:57,870
‫para esta rota, desta vez sem a string de consulta.

236
00:10:57,870 --> 00:10:59,080
‫E assim,

237
00:10:59,080 --> 00:11:01,700
‫sem a string de consulta e este

238
00:11:01,700 --> 00:11:03,870
‫middleware, passamos direto para o próximo.

239
00:11:03,870 --> 00:11:05,100
‫E só então podemos

240
00:11:05,100 --> 00:11:07,430
‫fazer o login e obter uma visão geral.

241
00:11:07,430 --> 00:11:10,860
‫Tudo bem?

242
00:11:10,860 --> 00:11:12,710
‫E então é isso mesmo, certo?

243
00:11:12,710 --> 00:11:14,540
‫Bem, isso é exatamente aqui

244
00:11:14,540 --> 00:11:16,370
‫que isso é apenas temporário

245
00:11:16,370 --> 00:11:18,120
‫porque não é seguro.

246
00:11:18,120 --> 00:11:21,350
‫Todos podem fazer reservas sem

247
00:11:21,350 --> 00:11:22,723
‫pagar.

248
00:11:24,020 --> 00:11:25,450
‫Então, novamente, isso seria terrível para o negócio.

249
00:11:25,450 --> 00:11:29,390
‫Ok, agora é hora de testar isso.

250
00:11:29,390 --> 00:11:32,910
‫Na verdade, quero fazer isso com aquele outro usuário que criamos, que é

251
00:11:38,730 --> 00:11:39,563
‫jonas @ mailsac.

252
00:11:41,520 --> 00:11:42,523
‫E isso

253
00:11:43,700 --> 00:11:47,410
‫porque quero ver se realmente recebemos o recibo por e-mail do Stripe.

254
00:11:49,010 --> 00:11:49,963
‫Então, vamos

255
00:11:50,930 --> 00:11:54,133
‫fazer login com esse usuário em nosso site.

256
00:11:55,250 --> 00:12:02,990
‫Portanto, saia.

257
00:12:02,990 --> 00:12:06,620
‫Bem, isso não está funcionando.

258
00:12:06,620 --> 00:12:09,510
‫Isso é estranho.

259
00:12:09,510 --> 00:12:11,913
‫Vamos recarregar.

260
00:12:13,510 --> 00:12:17,280
‫E isso deve estar funcionando, então vamos ver se temos algum erro

261
00:12:17,280 --> 00:12:18,466
‫em nosso javascript.

262
00:12:18,466 --> 00:12:20,170
‫Porque isso é realmente voltado para o cliente e temos

263
00:12:20,170 --> 00:12:21,063
‫Stripe não está definido.

264
00:12:23,080 --> 00:12:24,323
‫Vamos ver se temos o mesmo erro aqui nesta

265
00:12:27,050 --> 00:12:28,090
‫página, o que não deveríamos, certo?

266
00:12:28,090 --> 00:12:29,023
‫E na

267
00:12:30,430 --> 00:12:33,520
‫verdade não está lá, mas em todas as turnês.

268
00:12:33,520 --> 00:12:36,230
‫Sim, está lá.

269
00:12:36,230 --> 00:12:38,160
‫Portanto, a solução para isso é

270
00:12:39,210 --> 00:12:41,763
‫movê-lo do tour basicamente para todas as páginas.

271
00:12:42,730 --> 00:12:46,180
‫Tudo bem?

272
00:12:46,180 --> 00:12:48,170
‫Portanto, por algum motivo, o empacotador de

273
00:12:48,170 --> 00:12:51,010
‫pacotes faz isso de modo que precisa estar aqui no escopo

274
00:12:51,010 --> 00:12:52,393
‫principal para todos eles.

275
00:12:53,360 --> 00:12:54,660
‫Então, para todas as páginas, ok?

276
00:12:54,660 --> 00:12:58,480
‫Então, vamos colocar isso no final, bem aqui, antes

277
00:12:59,400 --> 00:13:01,193
‫do nosso pacote.

278
00:13:02,910 --> 00:13:04,010
‫Tudo bem?

279
00:13:04,010 --> 00:13:07,970
‫Tente novamente e agora estamos prontos.

280
00:13:07,970 --> 00:13:08,920
‫Então

281
00:13:10,260 --> 00:13:12,703
‫saia e funcionou.

282
00:13:14,850 --> 00:13:16,933
‫Agora faça login.

283
00:13:19,090 --> 00:13:21,970
‫Claro que agora nossa cópia se foi.

284
00:13:26,010 --> 00:13:27,673
‫Um dois três quatro.

285
00:13:29,530 --> 00:13:30,690
‫Não, isso não é correto.

286
00:13:30,690 --> 00:13:34,143
‫Teste um dois três quatro.

287
00:13:35,170 --> 00:13:37,510
‫Acho que mudei a senha em algum momento, então vamos tentar

288
00:13:37,510 --> 00:13:38,343
‫uma nova senha,

289
00:13:39,200 --> 00:13:40,083
‫que também não está funcionando.

290
00:13:42,183 --> 00:13:44,613
‫Vamos tentar passar um dois três quatro

291
00:13:53,790 --> 00:13:54,963
‫e funcionou.

292
00:13:56,400 --> 00:13:58,180
‫Portanto, não é um teste um dois

293
00:13:58,180 --> 00:14:00,043
‫três quatro, mas passe um dois três quatro.

294
00:14:01,580 --> 00:14:04,470
‫Pelo menos aqui no meu caso.

295
00:14:04,470 --> 00:14:07,363
‫Então, vamos tentar reservar o, digamos, o

296
00:14:08,920 --> 00:14:10,460
‫amante dos esportes.

297
00:14:10,460 --> 00:14:13,180
‫Tudo bem.

298
00:14:14,170 --> 00:14:15,223
‫Aqui embaixo.

299
00:14:16,100 --> 00:14:18,260
‫Reserve um tour e isso

300
00:14:18,260 --> 00:14:20,603
‫ainda funciona e esse é o

301
00:14:21,460 --> 00:14:22,763
‫mais caro.

302
00:14:23,810 --> 00:14:25,940
‫(risos) Então, quatro dois quatro dois e

303
00:14:26,960 --> 00:14:28,493
‫depois quatro dois até

304
00:14:30,520 --> 00:14:31,353
‫o fim.

305
00:14:33,150 --> 00:14:34,340
‫Então aqui está algum mês e aqui está algum número.

306
00:14:34,340 --> 00:14:35,310
‫Digamos meu nome completo

307
00:14:37,010 --> 00:14:38,310
‫aqui e agora vamos clicar em pagar.

308
00:14:39,260 --> 00:14:41,091
‫E vou dar uma olhada na barra de url.

309
00:14:41,091 --> 00:14:42,100
‫E, de fato, obtemos nossa

310
00:14:42,100 --> 00:14:45,020
‫página inicial, portanto, nosso URL de rota sem qualquer uma das strings de consulta que especificamos antes.

311
00:14:45,020 --> 00:14:46,203
‫Isso significa que algo está funcionando.

312
00:14:47,060 --> 00:14:52,020
‫Então, vamos dar uma olhada na bússola e clicar aqui para

313
00:14:52,020 --> 00:14:55,590
‫recarregar e obter nossa coleção de reservas.

314
00:14:55,590 --> 00:14:57,523
‫E isso é um bom sinal.

315
00:14:59,970 --> 00:15:02,090
‫E, de fato, aqui vamos nós.

316
00:15:02,090 --> 00:15:06,440
‫Nosso primeiro documento é criado.

317
00:15:06,440 --> 00:15:10,280
‫Portanto, lembre-se de que esse foi o preço.

318
00:15:10,280 --> 00:15:13,550
‫Vamos também dar uma olhada no

319
00:15:13,550 --> 00:15:18,400
‫id do usuário, que termina em oito E três B.

320
00:15:20,520 --> 00:15:23,180
‫Então, oito E três B, correto.

321
00:15:23,180 --> 00:15:24,540
‫E estou assumindo que a turnê também será correta.

322
00:15:24,540 --> 00:15:26,742
‫Tão perfeito.

323
00:15:26,742 --> 00:15:30,360
‫Isso também funcionou e agora realmente temos uma maneira

324
00:15:30,360 --> 00:15:32,673
‫de criar reservas sempre que

325
00:15:33,740 --> 00:15:36,350
‫uma reserva acontecer com o Stripe.

326
00:15:38,100 --> 00:15:41,653
‫Vamos também verificar rapidamente nossos painéis aqui novamente.

327
00:15:43,280 --> 00:15:46,640
‫Isso é muito divertido.

328
00:15:46,640 --> 00:15:50,100
‫E acho que só preciso recarregar aqui.

329
00:15:50,100 --> 00:15:51,220
‫Então vamos ver.

330
00:15:51,220 --> 00:15:52,540
‫Aqui está Jonas em qualquer coisa que tenhamos chamado.

331
00:15:52,540 --> 00:15:56,200
‫Temos o amante

332
00:15:56,200 --> 00:15:58,773
‫de

333
00:15:59,772 --> 00:16:04,040
‫esportes e perfeito.

334
00:16:04,040 --> 00:16:05,770
‫Isso está funcionando agora.

335
00:16:05,770 --> 00:16:07,720
‫E a tarefa final.

336
00:16:13,662 --> 00:16:14,745
‫Vamos agora verificar o mailsac.

337
00:16:15,770 --> 00:16:21,580
‫Saco de correio.

338
00:16:22,460 --> 00:16:23,860
‫com e veja se recebi

339
00:16:23,860 --> 00:16:25,100
‫meu e-mail lá.

340
00:16:25,100 --> 00:16:26,657
‫E bem, na verdade eu não fiz, mas

341
00:16:26,657 --> 00:16:27,900
‫isso não é grande coisa.

342
00:16:27,900 --> 00:16:30,410
‫Não tenho certeza de que talvez não funcione com dados de teste.

343
00:16:31,390 --> 00:16:32,223
‫E então, por enquanto, isso é tudo que

344
00:16:32,223 --> 00:16:33,070
‫tenho para mostrar a você sobre a integração do Stripe.

345
00:16:34,316 --> 00:16:35,149
‫Agora, novamente,

346
00:16:36,490 --> 00:16:39,060
‫quando um site for implantado, usaremos o Stripe

347
00:16:39,060 --> 00:16:39,923
‫Webhooks para criar

348
00:16:42,190 --> 00:16:45,050
‫reservas de uma maneira mais segura e muito melhor.

349
00:16:45,050 --> 00:16:46,840
‫Tudo bem?

350
00:16:46,840 --> 00:16:51,200
‫Então, vamos tomar um minuto para recapitular o que fizemos aqui.

351
00:16:51,200 --> 00:16:53,160
‫Então, basicamente, adicionamos todas

352
00:16:53,160 --> 00:16:55,670
‫as variáveis de que precisamos para criar

353
00:16:55,670 --> 00:16:58,230
‫uma nova reserva ao url de sucesso.

354
00:16:58,230 --> 00:17:00,690
‫Em seguida, adicionamos uma nova função

355
00:17:00,690 --> 00:17:03,320
‫de middleware aqui à pilha dessa rota exata.

356
00:17:03,320 --> 00:17:05,050
‫Então, este aqui.

357
00:17:05,050 --> 00:17:06,320
‫E assim,

358
00:17:06,320 --> 00:17:11,320
‫sempre que este url aqui for atingido, tentaremos criar uma nova reserva.

359
00:17:12,000 --> 00:17:14,010
‫Tudo bem?

360
00:17:14,970 --> 00:17:18,070
‫Mas essa nova reserva, é claro, só é criada quando o tour, o usuário e

361
00:17:18,070 --> 00:17:19,327
‫o preço são especificados na consulta.

362
00:17:20,610 --> 00:17:24,320
‫E assim, nesta função de middleware, se eles forem bem

363
00:17:24,320 --> 00:17:26,270
‫especificados na consulta, criamos uma

364
00:17:26,270 --> 00:17:27,790
‫nova reserva aqui.

365
00:17:27,790 --> 00:17:31,200
‫Em seguida, removemos a string de consulta da url para

366
00:17:31,200 --> 00:17:34,387
‫tornar todo o processo um pouco menos transparente para

367
00:17:34,387 --> 00:17:35,220
‫o usuário.

368
00:17:35,220 --> 00:17:38,380
‫Basicamente, para que toda a string

369
00:17:38,380 --> 00:17:43,290
‫de consulta não apareça na barra de url do nosso navegador.

370
00:17:43,290 --> 00:17:45,180
‫E então aqui embaixo nós

371
00:17:45,180 --> 00:17:48,610
‫redirecionamos nosso aplicativo para este novo url de rota aqui, ok?

372
00:17:48,610 --> 00:17:50,900
‫E desta forma, este middleware aqui

373
00:17:50,900 --> 00:17:53,870
‫será ignorado e nossa página inicial normal será simplesmente renderizada.

374
00:17:53,870 --> 00:17:56,680
‫Tudo bem?

375
00:17:56,680 --> 00:17:59,240
‫Vamos apenas nos livrar desse erro de

376
00:17:59,240 --> 00:18:02,880
‫aplicativo aqui e da fábrica de que realmente precisaremos na próxima aula.

377
00:18:02,880 --> 00:18:05,400
‫Então, na próxima aula, cuidaremos da

378
00:18:05,400 --> 00:18:08,690
‫implementação de uma última parte do nosso site,

379
00:18:08,690 --> 00:18:11,940
‫que basicamente é esta página para minhas reservas.

380
00:18:11,940 --> 00:18:15,650
‫E o que esta página fará é basicamente exibir um cartão

381
00:18:15,650 --> 00:18:19,233
‫de passeio para cada um dos passeios que reservamos.

382
00:18:20,530 --> 00:18:21,363
‫Parece muito

383
00:18:22,320 --> 00:18:25,630
‫semelhante a esta página inicial, mas apenas com

384
00:18:26,510 --> 00:18:30,340
‫os passeios que o usuário conectado no momento reservou, certo?

385
00:18:30,340 --> 00:18:33,660
‫Esse é um bom recurso para um site, certo?

386
00:18:33,660 --> 00:18:36,950
‫E então vamos cuidar disso no próximo.

