﻿1
00:00:00,980 --> 00:00:03,100
‫Instrutor: Neste vídeo, quero, muito

2
00:00:03,100 --> 00:00:06,510
‫rapidamente, refatorar os recursos da API que implementamos

3
00:00:06,510 --> 00:00:08,620
‫nas últimas aulas.

4
00:00:08,620 --> 00:00:11,760
‫Agora, isso não é apenas para tornar nosso código um pouco

5
00:00:11,760 --> 00:00:15,000
‫mais limpo, mas também para torná-lo mais modular e mais reutilizável

6
00:00:15,000 --> 00:00:15,913
‫no futuro.

7
00:00:17,290 --> 00:00:20,430
‫Então, agora, temos todo esse código

8
00:00:20,430 --> 00:00:25,050
‫para os recursos que construímos antes nesta função getALLTours, certo?

9
00:00:25,050 --> 00:00:26,860
‫E isso parece um pouco confuso.

10
00:00:26,860 --> 00:00:30,160
‫É um pouco difícil de entender, ok?

11
00:00:30,160 --> 00:00:33,900
‫E imagine também que quiséssemos usar esses mesmos recursos para

12
00:00:33,900 --> 00:00:35,010
‫outro recurso.

13
00:00:35,010 --> 00:00:38,250
‫Por exemplo, para os usuários ou, posteriormente, para as revisões.

14
00:00:38,250 --> 00:00:40,910
‫Não seria muito prático, basicamente, copiar

15
00:00:40,910 --> 00:00:43,300
‫o código daqui e usar, então,

16
00:00:43,300 --> 00:00:45,670
‫nos outros recursos, certo.

17
00:00:45,670 --> 00:00:47,360
‫E então, o que vou

18
00:00:47,360 --> 00:00:50,340
‫fazer é, agora, criar uma classe na qual vou adicionar

19
00:00:50,340 --> 00:00:54,070
‫um método para cada um desses recursos ou funcionalidades da API, como

20
00:00:54,070 --> 00:00:55,500
‫você pode chamá-los também.

21
00:00:55,500 --> 00:00:56,900
‫Tudo bem?

22
00:00:56,900 --> 00:00:59,906
‫Então, vamos prosseguir e fazer isso aqui e

23
00:00:59,906 --> 00:01:02,950
‫vou fazer aqui, por agora, então, mais tarde,

24
00:01:02,950 --> 00:01:05,750
‫irei exportá-lo para o seu próprio

25
00:01:05,750 --> 00:01:08,810
‫arquivo, basicamente, para criar um módulo reutilizável que

26
00:01:08,810 --> 00:01:11,760
‫possamos , posteriormente, importe para outros controladores.

27
00:01:11,760 --> 00:01:12,960
‫Tudo bem?

28
00:01:12,960 --> 00:01:16,663
‫Então, classe, e estou chamando de APIFeatures.

29
00:01:19,260 --> 00:01:20,093
‫Tudo bem.

30
00:01:21,720 --> 00:01:24,510
‫Então, começamos com nossa função construtora e

31
00:01:24,510 --> 00:01:26,840
‫lembramos que esta é a

32
00:01:26,840 --> 00:01:29,990
‫função que é chamada automaticamente assim que criamos

33
00:01:29,990 --> 00:01:33,070
‫um novo objeto fora desta classe, tudo bem.

34
00:01:33,070 --> 00:01:36,830
‫Agora, o que eu realmente quero nesses recursos de API?

35
00:01:36,830 --> 00:01:41,090
‫Na verdade, vou analisar duas variáveis aqui, certo?

36
00:01:41,090 --> 00:01:45,962
‫Portanto, a consulta mongoose e também a queryString que obtemos

37
00:01:45,962 --> 00:01:47,323
‫do express.

38
00:01:48,410 --> 00:01:51,420
‫Então, basicamente, vindo da rota, tudo bem.

39
00:01:51,420 --> 00:01:53,490
‫Então é a isso que geralmente

40
00:01:53,490 --> 00:01:56,760
‫temos acesso no req. consulta, ok.

41
00:01:56,760 --> 00:01:59,780
‫Agora, novamente, estou passando a consulta aqui porque não

42
00:01:59,780 --> 00:02:03,110
‫quero consultar dentro desta classe porque isso iria devolver essa

43
00:02:03,110 --> 00:02:06,040
‫classe para o recurso de tour, mas, novamente,

44
00:02:06,040 --> 00:02:08,903
‫quero que seja o mais reutilizável possível.

45
00:02:10,690 --> 00:02:11,523
‫Tudo bem.

46
00:02:11,523 --> 00:02:14,080
‫Então, o que geralmente fazemos nesta função

47
00:02:14,080 --> 00:02:18,490
‫de construtor é dizer isso. consulta é igual à consulta que obtivemos como

48
00:02:18,490 --> 00:02:21,480
‫argumento e depois isso. queryString

49
00:02:25,130 --> 00:02:27,890
‫é igual a queryString.

50
00:02:27,890 --> 00:02:28,723
‫OK?

51
00:02:28,723 --> 00:02:32,490
‫Função de construtor muito simples e típica.

52
00:02:32,490 --> 00:02:35,580
‫E agora, como mencionei, vou criar um

53
00:02:35,580 --> 00:02:39,313
‫método para cada uma das funcionalidades, começando com o filtro.

54
00:02:41,860 --> 00:02:42,693
‫Tudo bem.

55
00:02:42,693 --> 00:02:46,490
‫E então, vamos agora cortar o código a partir daqui.

56
00:02:46,490 --> 00:02:49,130
‫Ou, na verdade, vou copiar e

57
00:02:49,130 --> 00:02:52,180
‫comentar, para não causar nenhum dano acidental.

58
00:02:52,180 --> 00:02:53,710
‫Então, copie e

59
00:02:55,350 --> 00:02:57,120
‫o comentário e coloque aqui.

60
00:02:57,120 --> 00:02:59,450
‫Então, algumas coisas que precisamos mudar.

61
00:02:59,450 --> 00:03:03,350
‫Em primeiro lugar, peça. a consulta não estará disponível

62
00:03:03,350 --> 00:03:04,830
‫dentro desta classe.

63
00:03:04,830 --> 00:03:07,250
‫E é por isso que realmente analisamos o queryString.

64
00:03:07,250 --> 00:03:09,930
‫E então, isso aqui vai ser substituído

65
00:03:09,930 --> 00:03:11,623
‫por isso. queryString.

66
00:03:13,490 --> 00:03:14,323
‫OK?

67
00:03:14,323 --> 00:03:16,450
‫Então, novamente, isso é apenas Javascript básico.

68
00:03:16,450 --> 00:03:20,260
‫Na verdade, não tem nada a ver com o Note ou Express.

69
00:03:20,260 --> 00:03:24,760
‫Então o resto aqui está certo, mas isso aqui não está certo de forma alguma.

70
00:03:24,760 --> 00:03:29,340
‫Portanto, não quero consultar o tour diretamente aqui, lembre-se, mas, em

71
00:03:29,340 --> 00:03:32,170
‫vez disso, quero simplesmente adicionar esta descoberta

72
00:03:32,170 --> 00:03:34,650
‫à consulta que já temos.

73
00:03:34,650 --> 00:03:37,147
‫Então, é isso. inquerir. encontrar

74
00:03:40,560 --> 00:03:43,763
‫e assim, então será isso.

75
00:03:45,010 --> 00:03:45,860
‫Tudo bem?

76
00:03:45,860 --> 00:03:47,800
‫Vamos, agora, nos livrar disso.

77
00:03:47,800 --> 00:03:50,370
‫E antes de adicionarmos mais métodos aqui, vamos

78
00:03:50,370 --> 00:03:52,870
‫realmente prosseguir e usar essa classe para que

79
00:03:52,870 --> 00:03:54,833
‫faça mais sentido para você.

80
00:03:55,700 --> 00:03:56,533
‫OK?

81
00:03:56,533 --> 00:03:58,653
‫Então, como isso realmente vai funcionar?

82
00:03:59,890 --> 00:04:02,400
‫E vou fazer tudo aqui no final

83
00:04:02,400 --> 00:04:04,420
‫aqui em Executar Consulta.

84
00:04:04,420 --> 00:04:05,350
‫Tudo bem?

85
00:04:05,350 --> 00:04:07,750
‫E então, o que posso fazer agora é criar

86
00:04:07,750 --> 00:04:09,583
‫uma variável chamada Features, por exemplo.

87
00:04:12,450 --> 00:04:17,300
‫E então, a partir daqui, criarei um novo objeto de recursos da API.

88
00:04:17,300 --> 00:04:18,160
‫OK?

89
00:04:18,160 --> 00:04:21,560
‫Então, basicamente, criar uma instância desses recursos da API

90
00:04:21,560 --> 00:04:23,870
‫que será armazenada em Recursos.

91
00:04:23,870 --> 00:04:26,600
‫E isso aqui, teremos, então, acesso a todos

92
00:04:26,600 --> 00:04:29,380
‫os métodos que vamos definir na definição da classe.

93
00:04:29,380 --> 00:04:30,360
‫OK?

94
00:04:30,360 --> 00:04:33,490
‫Portanto, lembre-se, aqui, precisamos passar uma consulta

95
00:04:33,490 --> 00:04:34,980
‫e a queryString.

96
00:04:34,980 --> 00:04:36,983
‫Então, a consulta, como criamos uma?

97
00:04:38,440 --> 00:04:41,580
‫Lembre-se, é o Tour. achar.

98
00:04:41,580 --> 00:04:45,040
‫Portanto, há um objeto de consulta e, portanto, é

99
00:04:45,040 --> 00:04:48,010
‫aquele que analisamos nesta classe e, é claro,

100
00:04:48,010 --> 00:04:52,410
‫o queryString que é req. inquerir.

101
00:04:52,410 --> 00:04:54,990
‫Ok, agora, neste recurso aqui, lembre-se,

102
00:04:54,990 --> 00:04:57,160
‫não temos acesso ao filtro.

103
00:04:57,160 --> 00:05:00,153
‫E então, vamos colocá-lo bem aqui depois.

104
00:05:01,410 --> 00:05:04,070
‫Assim, . filtro.

105
00:05:04,070 --> 00:05:05,570
‫Dê uma chance.

106
00:05:05,570 --> 00:05:07,750
‫E então, assim, vamos executar ou

107
00:05:07,750 --> 00:05:10,550
‫codificar para a funcionalidade de filtragem da API.

108
00:05:10,550 --> 00:05:12,760
‫Então, aqui, a próxima linha, é claro,

109
00:05:12,760 --> 00:05:14,970
‫não vai funcionar porque essa consulta

110
00:05:14,970 --> 00:05:16,670
‫aqui não existe mais.

111
00:05:16,670 --> 00:05:20,947
‫Em vez disso, o que temos agora são recursos. consulta, certo?

112
00:05:22,760 --> 00:05:24,960
‫Então, depois de todo esse processamento agora, basicamente.

113
00:05:26,040 --> 00:05:29,530
‫Ok, então, agora, após este filtro, este. a consulta terá

114
00:05:29,530 --> 00:05:32,500
‫então este novo método de localização.

115
00:05:32,500 --> 00:05:37,310
‫Ok, e então, novamente, isso é armazenado nele. inquerir.

116
00:05:37,310 --> 00:05:39,910
‫E, mais tarde, teremos todos esses outros métodos que, todos eles,

117
00:05:39,910 --> 00:05:41,930
‫vão manipular isso. consulta para

118
00:05:42,886 --> 00:05:45,729
‫que, no final, esta. consulta é a

119
00:05:45,729 --> 00:05:47,620
‫consulta que queremos executar.

120
00:05:47,620 --> 00:05:48,793
‫Então, assim como aqui.

121
00:05:49,920 --> 00:05:53,800
‫Ok, então, assim como aqui, sempre mantivemos manipulando a

122
00:05:53,800 --> 00:05:55,130
‫variável de consulta.

123
00:05:55,130 --> 00:05:57,460
‫Continuamos adicionando mais e mais métodos a

124
00:05:57,460 --> 00:06:00,100
‫ele até que, então, o executamos no final.

125
00:06:00,100 --> 00:06:02,530
‫E então, aqui, estamos fazendo exatamente o mesmo.

126
00:06:02,530 --> 00:06:05,910
‫Estamos simplesmente movendo o código para todos esses métodos.

127
00:06:05,910 --> 00:06:06,743
‫OK?

128
00:06:06,743 --> 00:06:09,900
‫Então, no final, como falei, a consulta vai ficar armazenada dentro

129
00:06:09,900 --> 00:06:13,290
‫dessa propriedade aqui e então, sim, é aí que a gente,

130
00:06:13,290 --> 00:06:14,800
‫então, faz o await e

131
00:06:14,800 --> 00:06:16,093
‫retorna os resultados.

132
00:06:17,360 --> 00:06:18,220
‫Tudo bem?

133
00:06:18,220 --> 00:06:21,763
‫De qualquer forma, vamos continuar avançando aqui e implementar a classificação.

134
00:06:22,730 --> 00:06:24,913
‫Então, estou copiando e comentando.

135
00:06:27,300 --> 00:06:32,003
‫Então, filtre e o próximo é chamado de Sort.

136
00:06:34,030 --> 00:06:35,160
‫Tudo bem.

137
00:06:35,160 --> 00:06:38,510
‫E então, aqui novamente, precisamos substituir a solicitação. consulta com

138
00:06:38,510 --> 00:06:41,013
‫isso. queryString, ok.

139
00:06:43,455 --> 00:06:46,288
‫E então, a consulta agora é isso. inquerir.

140
00:06:47,510 --> 00:06:52,383
‫Então, vamos pegar esses quatro aqui. inquerir.

141
00:06:56,540 --> 00:06:59,950
‫Ok, agora, o objetivo aqui é basicamente

142
00:06:59,950 --> 00:07:03,380
‫encadear esses métodos aqui um após o outro.

143
00:07:03,380 --> 00:07:05,340
‫Então, deixe-me mostrar isso para você aqui.

144
00:07:05,340 --> 00:07:08,262
‫Temos o filtro e, depois disso, queremos encadear

145
00:07:08,262 --> 00:07:10,253
‫o método de classificação.

146
00:07:12,730 --> 00:07:15,820
‫Agora, no momento, isso não vai

147
00:07:15,820 --> 00:07:20,110
‫funcionar, porque onde estamos encadeando esse tipo de coisa?

148
00:07:20,110 --> 00:07:24,170
‫Então, basicamente, estamos tentando chamar isso de resultado disso, mas,

149
00:07:24,170 --> 00:07:27,120
‫agora, qual é o resultado disso?

150
00:07:27,120 --> 00:07:29,840
‫Bem, na verdade não é nada porque

151
00:07:29,840 --> 00:07:32,840
‫este método de filtro aqui não retorna nada, certo?

152
00:07:32,840 --> 00:07:35,460
‫Agora, este pedaço de código aqui, é

153
00:07:35,460 --> 00:07:38,830
‫claro, retorna o objeto que acabou de ser criado e,

154
00:07:38,830 --> 00:07:41,560
‫então, podemos encadear o método de filtro nele.

155
00:07:41,560 --> 00:07:44,460
‫Mas o método do filtro, por sua vez, não retorna nada.

156
00:07:44,460 --> 00:07:47,910
‫E então, neste ponto, não podemos realmente chamar um

157
00:07:47,910 --> 00:07:49,630
‫sort no objeto, certo?

158
00:07:49,630 --> 00:07:51,510
‫E então, a solução simples para

159
00:07:51,510 --> 00:07:55,033
‫isso, e talvez você já tenha feito isso em algum momento em seu

160
00:07:56,520 --> 00:07:58,853
‫código, é que agora temos que retornar isso.

161
00:08:01,120 --> 00:08:06,103
‫Então, retorne isso e este é simplesmente o objeto inteiro, ok?

162
00:08:07,252 --> 00:08:09,723
‫E o mesmo, então, aqui embaixo.

163
00:08:11,790 --> 00:08:13,570
‫Então, devolva isso.

164
00:08:13,570 --> 00:08:17,360
‫Para, novamente, retornar o objeto inteiro que, é claro, então

165
00:08:17,360 --> 00:08:20,530
‫tem acesso a esses outros métodos para que

166
00:08:20,530 --> 00:08:22,493
‫possamos, então, chamá-los lá.

167
00:08:23,610 --> 00:08:24,443
‫Tudo bem?

168
00:08:25,690 --> 00:08:28,643
‫Então, o próximo é o limitador.

169
00:08:34,000 --> 00:08:36,150
‫E vou chamá-lo de limitFields.

170
00:08:39,680 --> 00:08:41,340
‫E isso porque todos

171
00:08:41,340 --> 00:08:43,710
‫esses métodos terão esses verbos como nomes.

172
00:08:43,710 --> 00:08:47,240
‫Portanto, é filtrar, classificar, limitar e a paginação

173
00:08:47,240 --> 00:08:48,640
‫será a próxima.

174
00:08:49,870 --> 00:08:53,730
‫Então, novamente, req. consulta agora é isso. queryString e query

175
00:08:57,649 --> 00:09:00,399
‫here agora são isso. inquerir.

176
00:09:04,494 --> 00:09:05,327
‫Tudo bem?

177
00:09:08,196 --> 00:09:11,196
‫Retorne isso e isso não está correto.

178
00:09:14,290 --> 00:09:17,123
‫Ok, e finalmente, a paginação.

179
00:09:18,490 --> 00:09:19,873
‫Copie, comente.

180
00:09:25,020 --> 00:09:26,413
‫Então, pagine.

181
00:09:29,770 --> 00:09:31,650
‫Retorne isso e, é claro, precisamos

182
00:09:31,650 --> 00:09:39,187
‫substituir esses req. pergunte isso.

183
00:09:39,187 --> 00:09:39,187
‫queryString.

184
00:09:39,187 --> 00:09:41,610
‫E então aqui, como antes,

185
00:09:41,610 --> 00:09:44,890
‫vai ser isso. inquerir.

186
00:09:44,890 --> 00:09:47,770
‫E acabei de perceber que lá em

187
00:09:47,770 --> 00:09:51,040
‫cima, bem no primeiro método, não fizemos isso aqui.

188
00:09:51,040 --> 00:09:54,560
‫Então, nós simplesmente dissemos isso. consulta e, em

189
00:09:54,560 --> 00:09:57,080
‫seguida, adicionado o achado lá.

190
00:09:57,080 --> 00:09:59,190
‫Mas então, é claro, precisamos

191
00:09:59,190 --> 00:10:01,700
‫realmente salvá-lo nesta propriedade de consulta.

192
00:10:01,700 --> 00:10:03,593
‫Ok, então, esqueci isso.

193
00:10:04,650 --> 00:10:06,610
‫E temos alguns erros aqui.

194
00:10:06,610 --> 00:10:08,280
‫Tudo bem, isso realmente não

195
00:10:08,280 --> 00:10:09,690
‫importa aqui neste momento.

196
00:10:09,690 --> 00:10:13,170
‫Ou, na verdade, porque esta linha de código aqui está,

197
00:10:13,170 --> 00:10:15,910
‫na verdade, em nosso método de paginação.

198
00:10:15,910 --> 00:10:17,490
‫Então vamos lá.

199
00:10:17,490 --> 00:10:19,720
‫E, na verdade, eu realmente queria falar com

200
00:10:19,720 --> 00:10:21,210
‫você sobre isso aqui.

201
00:10:21,210 --> 00:10:24,350
‫Porque, pensando bem, pedir a página seguinte,

202
00:10:24,350 --> 00:10:27,740
‫que tem resultado zero, não é realmente um erro.

203
00:10:27,740 --> 00:10:30,852
‫O fato de não haver resultados é suficiente

204
00:10:30,852 --> 00:10:34,900
‫para que o usuário perceba que, basicamente, a página solicitada

205
00:10:34,900 --> 00:10:36,660
‫não contém nenhum dado.

206
00:10:36,660 --> 00:10:39,450
‫Portanto, não precisamos realmente de um erro nesta situação.

207
00:10:39,450 --> 00:10:42,933
‫E então, vou prosseguir e deletar todo esse código.

208
00:10:43,940 --> 00:10:45,430
‫OK?

209
00:10:45,430 --> 00:10:47,600
‫Então, deixe-me salvá-lo agora aqui.

210
00:10:47,600 --> 00:10:49,963
‫E agora, é claro, o erro desapareceu.

211
00:10:53,800 --> 00:10:56,950
‫E aqui, ainda temos que continuar adicionando

212
00:10:56,950 --> 00:10:58,770
‫esses outros métodos.

213
00:10:58,770 --> 00:11:02,577
‫Portanto, limitFields e. paginar.

214
00:11:05,160 --> 00:11:09,360
‫Salve e, novamente, lembre-se de que todo esse encadeamento aqui

215
00:11:09,360 --> 00:11:12,180
‫só funciona porque depois de chamar

216
00:11:12,180 --> 00:11:15,420
‫cada um desses métodos, sempre retornamos isso.

217
00:11:15,420 --> 00:11:18,800
‫E este é o próprio objeto que tem acesso

218
00:11:18,800 --> 00:11:21,410
‫a cada um desses métodos

219
00:11:21,410 --> 00:11:24,640
‫aqui, tornando possível encadea-los exatamente como temos aqui.

220
00:11:24,640 --> 00:11:26,860
‫Ok, então, apenas para recapitular:

221
00:11:26,860 --> 00:11:31,040
‫estamos criando um novo objeto da classe de recursos da API.

222
00:11:31,040 --> 00:11:33,960
‫Lá, estamos analisando um objeto de consulta

223
00:11:33,960 --> 00:11:37,240
‫e a string de consulta que vem do express.

224
00:11:37,240 --> 00:11:38,400
‫OK?

225
00:11:38,400 --> 00:11:41,180
‫Então, em cada um desses quatro métodos aqui

226
00:11:41,180 --> 00:11:44,400
‫que chamamos um após o outro, basicamente, manipulamos a consulta.

227
00:11:44,400 --> 00:11:48,010
‫Continuamos adicionando mais métodos, assim como

228
00:11:48,010 --> 00:11:52,160
‫fazemos aqui antes de fazermos qualquer refatoração, certo.

229
00:11:52,160 --> 00:11:55,900
‫Então, vamos adicionando coisas na consulta aqui até o final,

230
00:11:55,900 --> 00:11:59,040
‫e então, no final, simplesmente aguardamos o resultado daquela

231
00:11:59,040 --> 00:12:02,070
‫consulta para que ela volte com todos os

232
00:12:02,070 --> 00:12:04,210
‫documentos que foram selecionados, ok?

233
00:12:04,210 --> 00:12:06,580
‫E essa consulta agora reside nas características

234
00:12:06,580 --> 00:12:08,640
‫que são este objeto aqui.

235
00:12:08,640 --> 00:12:10,123
‫Então, recursos. inquerir.

236
00:12:11,330 --> 00:12:13,620
‫Ok, espero que faça sentido.

237
00:12:13,620 --> 00:12:17,960
‫Portanto, antes de fazermos qualquer outra coisa, vamos voltar ao

238
00:12:17,960 --> 00:12:20,090
‫Postman e realmente experimentar.

239
00:12:20,090 --> 00:12:23,500
‫E podemos experimentá-lo aqui com esta rota dos 5

240
00:12:23,500 --> 00:12:25,650
‫mais baratos porque, na verdade,

241
00:12:25,650 --> 00:12:29,030
‫nos bastidores, usa todos esses recursos da API, certo.

242
00:12:29,030 --> 00:12:32,240
‫Então, se eu enviar, bem, ainda funciona.

243
00:12:32,240 --> 00:12:33,763
‫Então, isso é fantástico.

244
00:12:34,730 --> 00:12:38,823
‫Portanto, vamos fechá-lo e salvá-lo aqui.

245
00:12:40,490 --> 00:12:44,453
‫Portanto, obtenha os cinco melhores passeios baratos.

246
00:12:49,220 --> 00:12:51,370
‫E sim, vou deixar isso aí no final.

247
00:12:51,370 --> 00:12:53,763
‫E agora, apenas aqui, vamos fazer alguns testes.

248
00:12:54,790 --> 00:12:58,373
‫Por exemplo, remova a classificação, deixe-me deixar o limite.

249
00:12:59,570 --> 00:13:02,260
‫Dificuldade, duração, preço.

250
00:13:02,260 --> 00:13:04,170
‫Então, vou deixar tudo isso

251
00:13:04,170 --> 00:13:06,620
‫aqui só para ver se ainda funciona.

252
00:13:06,620 --> 00:13:10,590
‫E parece que tudo ainda está funcionando, certo.

253
00:13:10,590 --> 00:13:13,110
‫Portanto, esses são exatamente os mesmos resultados

254
00:13:13,110 --> 00:13:15,500
‫que obtivemos antes de nossa refatoração.

255
00:13:15,500 --> 00:13:17,320
‫Então, ótimo, perfeito.

256
00:13:17,320 --> 00:13:20,530
‫Isso funcionou e, então, vamos, agora, excluir todo

257
00:13:20,530 --> 00:13:23,950
‫esse código daqui, o que torna nosso gerenciador de

258
00:13:23,950 --> 00:13:26,410
‫rotas muito mais limpo, não é?

259
00:13:26,410 --> 00:13:30,840
‫Então, isso é muito melhor, realmente, é dia e noite.

260
00:13:30,840 --> 00:13:31,800
‫OK?

261
00:13:31,800 --> 00:13:34,210
‫Agora, a próxima etapa é realmente

262
00:13:34,210 --> 00:13:38,500
‫ir em frente e pegar todo esse código, recortá-lo e colocá-lo

263
00:13:38,500 --> 00:13:41,700
‫em um novo arquivo, basicamente um novo módulo.

264
00:13:41,700 --> 00:13:44,720
‫Ok, e para isso, vou criar uma nova pasta

265
00:13:44,720 --> 00:13:46,563
‫aqui que chamarei de Utils.

266
00:13:47,420 --> 00:13:49,713
‫Então isso significa, basicamente, utilitários.

267
00:13:51,010 --> 00:13:53,850
‫E vou adicionar algumas coisas aqui durante

268
00:13:53,850 --> 00:13:55,503
‫o resto do curso.

269
00:13:57,060 --> 00:13:57,893
‫OK?

270
00:13:57,893 --> 00:14:00,050
‫Portanto, este

271
00:14:00,050 --> 00:14:05,050
‫será chamado de APIFeatures. js e com F maiúsculo aqui.

272
00:14:09,430 --> 00:14:10,263
‫Tudo bem?

273
00:14:10,263 --> 00:14:13,621
‫Então, aí vai nossa aula e, no

274
00:14:13,621 --> 00:14:17,823
‫final, fazemos um módulo. exportações desta classe.

275
00:14:20,040 --> 00:14:21,800
‫Portanto, nada de novo neste momento.

276
00:14:21,800 --> 00:14:24,140
‫Salve, feche e

277
00:14:24,140 --> 00:14:27,073
‫agora, aqui, podemos solicitá-lo.

278
00:14:28,147 --> 00:14:30,730
‫Const APIFeatures então requerem.

279
00:14:35,980 --> 00:14:38,490
‫Em seguida, precisamos mover uma pasta

280
00:14:38,490 --> 00:14:41,613
‫para cima, em seguida, em Utils e APIFeatures.

281
00:14:43,110 --> 00:14:44,210
‫OK?

282
00:14:44,210 --> 00:14:45,313
‫Mais um teste.

283
00:14:48,010 --> 00:14:51,000
‫E está demorando um pouco, e aqui vamos nós.

284
00:14:51,000 --> 00:14:53,760
‫Linda, isso é simplesmente lindo.

285
00:14:53,760 --> 00:14:57,720
‫Agora, se criarmos outro recurso novamente, por exemplo, para

286
00:14:57,720 --> 00:15:00,280
‫os usuários, será muito fácil

287
00:15:00,280 --> 00:15:02,630
‫cair nessa mesma funcionalidade.

288
00:15:02,630 --> 00:15:06,110
‫Tudo o que teremos de fazer é solicitar esse arquivo

289
00:15:06,110 --> 00:15:08,680
‫e, basicamente, fazer o mesmo que aqui.

290
00:15:08,680 --> 00:15:11,000
‫Ou talvez, nesse caso, não queremos ter essa

291
00:15:11,000 --> 00:15:14,040
‫capacidade de classificação ou não queremos ter a capacidade de

292
00:15:14,040 --> 00:15:17,140
‫filtragem e, então, tudo o que temos que fazer é

293
00:15:17,140 --> 00:15:19,440
‫simplesmente retirar esta linha de código.

294
00:15:19,440 --> 00:15:21,680
‫E então, como mágica, ele fará

295
00:15:21,680 --> 00:15:23,280
‫apenas essas três

296
00:15:23,280 --> 00:15:25,810
‫funcionalidades ou esses três recursos, ok.

297
00:15:25,810 --> 00:15:27,890
‫E isso é ótimo.

298
00:15:27,890 --> 00:15:29,630
‫Espero que você possa ver

299
00:15:29,630 --> 00:15:33,353
‫o valor disso e, sim, estou muito feliz com este resultado.

