﻿1
00:00:00,980 --> 00:00:03,100
‫Istruttore: In questo video, voglio

2
00:00:03,100 --> 00:00:06,510
‫rifattorizzare molto rapidamente le funzionalità API che abbiamo implementato

3
00:00:06,510 --> 00:00:08,620
‫nelle ultime due lezioni.

4
00:00:08,620 --> 00:00:11,760
‫Ora, questo non serve solo a rendere il nostro codice un

5
00:00:11,760 --> 00:00:15,000
‫po' più pulito, ma anche a renderlo più modulare e più riutilizzabile

6
00:00:15,000 --> 00:00:15,913
‫in futuro.

7
00:00:17,290 --> 00:00:20,430
‫Quindi, in questo momento, abbiamo tutto questo codice

8
00:00:20,430 --> 00:00:25,050
‫per le funzionalità che abbiamo creato in precedenza in questa funzione getALLTours, giusto?

9
00:00:25,050 --> 00:00:26,860
‫E questo sembra un po' disordinato.

10
00:00:26,860 --> 00:00:30,160
‫È un po' difficile da capire, ok?

11
00:00:30,160 --> 00:00:33,900
‫E immagina anche di voler utilizzare queste stesse funzionalità per

12
00:00:33,900 --> 00:00:35,010
‫un'altra risorsa.

13
00:00:35,010 --> 00:00:38,250
‫Ad esempio, per gli utenti o, in seguito, per le recensioni.

14
00:00:38,250 --> 00:00:40,910
‫Non sarebbe molto pratico, in pratica, copiare

15
00:00:40,910 --> 00:00:43,300
‫il codice da qui e usarlo,

16
00:00:43,300 --> 00:00:45,670
‫quindi, nelle altre risorse, giusto.

17
00:00:45,670 --> 00:00:47,360
‫E quindi, quello che farò,

18
00:00:47,360 --> 00:00:50,340
‫ora, è creare una classe in cui aggiungerò un

19
00:00:50,340 --> 00:00:54,070
‫metodo per ciascuna di queste caratteristiche o funzionalità API, come potresti

20
00:00:54,070 --> 00:00:55,500
‫chiamarle anche tu.

21
00:00:55,500 --> 00:00:56,900
‫Va bene?

22
00:00:56,900 --> 00:00:59,906
‫Quindi, andiamo avanti e lo facciamo qui e

23
00:00:59,906 --> 00:01:02,950
‫lo farò qui, per ora, poi, in seguito,

24
00:01:02,950 --> 00:01:05,750
‫lo esporterò in un proprio file,

25
00:01:05,750 --> 00:01:08,810
‫in pratica, per creare un modulo riutilizzabile che

26
00:01:08,810 --> 00:01:11,760
‫possiamo , in seguito, importare in altri controller.

27
00:01:11,760 --> 00:01:12,960
‫Va bene?

28
00:01:12,960 --> 00:01:16,663
‫Quindi, classe, e lo chiamo APIFeatures.

29
00:01:19,260 --> 00:01:20,093
‫Va bene.

30
00:01:21,720 --> 00:01:24,510
‫Quindi, iniziamo con la nostra funzione di costruzione

31
00:01:24,510 --> 00:01:26,840
‫e ricordiamo che questa è

32
00:01:26,840 --> 00:01:29,990
‫la funzione che viene chiamata automaticamente non appena creiamo

33
00:01:29,990 --> 00:01:33,070
‫un nuovo oggetto da questa classe, va bene.

34
00:01:33,070 --> 00:01:36,830
‫Ora, cosa voglio effettivamente in queste funzionalità API?

35
00:01:36,830 --> 00:01:41,090
‫In realtà, analizzerò due variabili qui, ok?

36
00:01:41,090 --> 00:01:45,962
‫Quindi la query mangusta e anche la queryString che otteniamo

37
00:01:45,962 --> 00:01:47,323
‫da express.

38
00:01:48,410 --> 00:01:51,420
‫Quindi, fondamentalmente, venendo dal percorso, va bene.

39
00:01:51,420 --> 00:01:53,490
‫Quindi questo è ciò a cui di

40
00:01:53,490 --> 00:01:56,760
‫solito abbiamo accesso nel req. domanda, ok.

41
00:01:56,760 --> 00:01:59,780
‫Ora, di nuovo, sto passando la query qui perché

42
00:01:59,780 --> 00:02:03,110
‫non voglio interrogare all'interno di questa classe perché ciò rimbalzerebbe

43
00:02:03,110 --> 00:02:06,040
‫questa classe sulla risorsa del tour ma, di nuovo,

44
00:02:06,040 --> 00:02:08,903
‫voglio che sia il più riutilizzabile possibile.

45
00:02:10,690 --> 00:02:11,523
‫Va bene.

46
00:02:11,523 --> 00:02:14,080
‫Quindi, ciò che di solito facciamo in questa

47
00:02:14,080 --> 00:02:18,490
‫funzione di costruzione è dire questo. query è uguale alla query che abbiamo ottenuto

48
00:02:18,490 --> 00:02:21,480
‫come argomento e poi this. queryString

49
00:02:25,130 --> 00:02:27,890
‫è uguale a queryString.

50
00:02:27,890 --> 00:02:28,723
‫Va bene?

51
00:02:28,723 --> 00:02:32,490
‫Quindi una funzione di costruzione molto semplice e molto tipica.

52
00:02:32,490 --> 00:02:35,580
‫E ora, come ho detto, creerò

53
00:02:35,580 --> 00:02:39,313
‫un metodo per ciascuna funzionalità, iniziando con il filtro.

54
00:02:41,860 --> 00:02:42,693
‫Va bene.

55
00:02:42,693 --> 00:02:46,490
‫E quindi, ora andiamo avanti e tagliamo il codice da qui.

56
00:02:46,490 --> 00:02:49,130
‫Oppure, in realtà, lo copio e

57
00:02:49,130 --> 00:02:52,180
‫lo commentano, in modo da non fare danni accidentali.

58
00:02:52,180 --> 00:02:53,710
‫Quindi, copia il

59
00:02:55,350 --> 00:02:57,120
‫commento e mettilo qui.

60
00:02:57,120 --> 00:02:59,450
‫Quindi, un paio di cose che dobbiamo cambiare.

61
00:02:59,450 --> 00:03:03,350
‫Prima su, richiesta. query non sarà disponibile all'interno

62
00:03:03,350 --> 00:03:04,830
‫di questa classe.

63
00:03:04,830 --> 00:03:07,250
‫Ecco perché abbiamo effettivamente analizzato la queryString.

64
00:03:07,250 --> 00:03:09,930
‫E così, questo qui verrà sostituito con

65
00:03:09,930 --> 00:03:11,623
‫questo. stringa della domanda.

66
00:03:13,490 --> 00:03:14,323
‫Va bene?

67
00:03:14,323 --> 00:03:16,450
‫Quindi, di nuovo, questo è solo Javascript di base.

68
00:03:16,450 --> 00:03:20,260
‫In realtà non ha nulla a che fare con Note o Express.

69
00:03:20,260 --> 00:03:24,760
‫Allora il resto qui va bene, ma questo qui non va affatto bene.

70
00:03:24,760 --> 00:03:29,340
‫Quindi non voglio interrogare il tour direttamente qui, ricorda, ma invece,

71
00:03:29,340 --> 00:03:32,170
‫voglio semplicemente aggiungere ora questa ricerca

72
00:03:32,170 --> 00:03:34,650
‫alla query che abbiamo già.

73
00:03:34,650 --> 00:03:37,147
‫Così questo. interrogazione. trova

74
00:03:40,560 --> 00:03:43,763
‫e così, allora sarà questo.

75
00:03:45,010 --> 00:03:45,860
‫Va bene?

76
00:03:45,860 --> 00:03:47,800
‫Ora liberiamoci di questo.

77
00:03:47,800 --> 00:03:50,370
‫E prima di aggiungere altri metodi qui, andiamo

78
00:03:50,370 --> 00:03:52,870
‫avanti e usiamo questa classe solo così

79
00:03:52,870 --> 00:03:54,833
‫ha più senso per te.

80
00:03:55,700 --> 00:03:56,533
‫Va bene?

81
00:03:56,533 --> 00:03:58,653
‫Quindi, come funzionerà effettivamente?

82
00:03:59,890 --> 00:04:02,400
‫E farò tutto qui alla fine

83
00:04:02,400 --> 00:04:04,420
‫qui sotto Esegui query.

84
00:04:04,420 --> 00:04:05,350
‫Va bene?

85
00:04:05,350 --> 00:04:07,750
‫Quindi, quello che posso fare ora è creare

86
00:04:07,750 --> 00:04:09,583
‫una variabile chiamata Funzionalità, ad esempio.

87
00:04:12,450 --> 00:04:17,300
‫E poi da qui, creerò un nuovo oggetto di funzionalità API.

88
00:04:17,300 --> 00:04:18,160
‫Va bene?

89
00:04:18,160 --> 00:04:21,560
‫Quindi, fondamentalmente, creando un'istanza di questa funzionalità API che

90
00:04:21,560 --> 00:04:23,870
‫verrà quindi archiviata in Funzionalità.

91
00:04:23,870 --> 00:04:26,600
‫E questo qui, quindi, avremo accesso a

92
00:04:26,600 --> 00:04:29,380
‫tutti i metodi che definiremo nella definizione della classe.

93
00:04:29,380 --> 00:04:30,360
‫Va bene?

94
00:04:30,360 --> 00:04:33,490
‫Quindi, ricorda, qui dobbiamo passare una query

95
00:04:33,490 --> 00:04:34,980
‫e queryString.

96
00:04:34,980 --> 00:04:36,983
‫Quindi, la query, come ne creiamo una?

97
00:04:38,440 --> 00:04:41,580
‫Ricorda, è Tour. trova.

98
00:04:41,580 --> 00:04:45,040
‫Quindi, c'è un oggetto query e quindi, è quello

99
00:04:45,040 --> 00:04:48,010
‫che abbiamo analizzato in questa classe e poi,

100
00:04:48,010 --> 00:04:52,410
‫ovviamente, queryString che è req. interrogazione.

101
00:04:52,410 --> 00:04:54,990
‫Ok, ora, su queste funzionalità qui, ricorda,

102
00:04:54,990 --> 00:04:57,160
‫non abbiamo accesso al filtro.

103
00:04:57,160 --> 00:05:00,153
‫E quindi, mettiamolo proprio qui dopo.

104
00:05:01,410 --> 00:05:04,070
‫Così, . filtro.

105
00:05:04,070 --> 00:05:05,570
‫Dagli un salvataggio.

106
00:05:05,570 --> 00:05:07,750
‫E così, proprio in questo modo,

107
00:05:07,750 --> 00:05:10,550
‫eseguiremo o codice per la funzionalità di filtro API.

108
00:05:10,550 --> 00:05:12,760
‫Quindi, qui, la riga successiva, ovviamente,

109
00:05:12,760 --> 00:05:14,970
‫non funzionerà perché questa query qui

110
00:05:14,970 --> 00:05:16,670
‫non esiste più.

111
00:05:16,670 --> 00:05:20,947
‫Invece, quello che abbiamo ora sono le caratteristiche. domanda, giusto?

112
00:05:22,760 --> 00:05:24,960
‫Quindi, dopo tutta questa elaborazione ora, in pratica.

113
00:05:26,040 --> 00:05:29,530
‫Ok, quindi, adesso, dopo questo filtro, questo. query avrà quindi questo

114
00:05:29,530 --> 00:05:32,500
‫nuovo metodo di ricerca su di esso.

115
00:05:32,500 --> 00:05:37,310
‫Ok, e quindi, di nuovo, questo viene memorizzato in questo. interrogazione.

116
00:05:37,310 --> 00:05:39,910
‫E, in seguito, avremo tutti questi altri metodi che,

117
00:05:39,910 --> 00:05:41,930
‫tutti, manipoleranno questo. query in

118
00:05:42,886 --> 00:05:45,729
‫modo che, alla fine, this. query è la

119
00:05:45,729 --> 00:05:47,620
‫query che vogliamo eseguire.

120
00:05:47,620 --> 00:05:48,793
‫Quindi, proprio come qui.

121
00:05:49,920 --> 00:05:53,800
‫Ok, quindi, proprio come qui, abbiamo sempre continuato a manipolare la

122
00:05:53,800 --> 00:05:55,130
‫variabile di query.

123
00:05:55,130 --> 00:05:57,460
‫Abbiamo continuato ad aggiungere sempre più metodi

124
00:05:57,460 --> 00:06:00,100
‫fino a quando non l'abbiamo eseguito alla fine.

125
00:06:00,100 --> 00:06:02,530
‫E così, qui, stiamo facendo esattamente lo stesso.

126
00:06:02,530 --> 00:06:05,910
‫Stiamo semplicemente spostando il codice in tutti questi metodi.

127
00:06:05,910 --> 00:06:06,743
‫Va bene?

128
00:06:06,743 --> 00:06:09,900
‫Quindi, alla fine, come ho detto, la query verrà archiviata

129
00:06:09,900 --> 00:06:13,290
‫all'interno di questa proprietà qui e quindi, sì, è lì che,

130
00:06:13,290 --> 00:06:14,800
‫quindi, eseguiamo l'attesa e

131
00:06:14,800 --> 00:06:16,093
‫otteniamo i risultati.

132
00:06:17,360 --> 00:06:18,220
‫Va bene?

133
00:06:18,220 --> 00:06:21,763
‫Ad ogni modo, continuiamo a muoverci qui e implementiamo l'ordinamento.

134
00:06:22,730 --> 00:06:24,913
‫Quindi, copio e commento.

135
00:06:27,300 --> 00:06:32,003
‫Quindi, filtra e il prossimo si chiama Ordina.

136
00:06:34,030 --> 00:06:35,160
‫Va bene.

137
00:06:35,160 --> 00:06:38,510
‫E quindi, ancora una volta, dobbiamo sostituire la richiesta. interrogare con

138
00:06:38,510 --> 00:06:41,013
‫questo. queryString, ok.

139
00:06:43,455 --> 00:06:46,288
‫E poi, la query ora è questa. interrogazione.

140
00:06:47,510 --> 00:06:52,383
‫Quindi mettiamo questi quattro in questo. interrogazione.

141
00:06:56,540 --> 00:06:59,950
‫Ok, ora, l'obiettivo qui è sostanzialmente

142
00:06:59,950 --> 00:07:03,380
‫concatenare questi metodi qui uno dopo l'altro.

143
00:07:03,380 --> 00:07:05,340
‫Quindi lascia che te lo mostri qui.

144
00:07:05,340 --> 00:07:08,262
‫Quindi abbiamo filter e poi, dopo, vogliamo

145
00:07:08,262 --> 00:07:10,253
‫concatenare il metodo sort.

146
00:07:12,730 --> 00:07:15,820
‫Ora, proprio ora, non funzionerà

147
00:07:15,820 --> 00:07:20,110
‫davvero perché dove stiamo effettivamente concatenando questo tipo?

148
00:07:20,110 --> 00:07:24,170
‫Quindi, fondamentalmente, stiamo provando a chiamarlo sul risultato di questo ma, in

149
00:07:24,170 --> 00:07:27,120
‫questo momento, qual è il risultato di questo?

150
00:07:27,120 --> 00:07:29,840
‫Bene, non è davvero niente perché questo

151
00:07:29,840 --> 00:07:32,840
‫metodo di filtro qui non restituisce nulla, giusto?

152
00:07:32,840 --> 00:07:35,460
‫Ora, questo pezzo di codice qui,

153
00:07:35,460 --> 00:07:38,830
‫ovviamente, restituisce l'oggetto che è stato appena creato e quindi,

154
00:07:38,830 --> 00:07:41,560
‫quindi, possiamo concatenare il metodo filter su quello.

155
00:07:41,560 --> 00:07:44,460
‫Ma il metodo del filtro, a sua volta, non restituisce nulla.

156
00:07:44,460 --> 00:07:47,910
‫E quindi, a questo punto, non possiamo davvero chiamare

157
00:07:47,910 --> 00:07:49,630
‫un ordinamento sull'oggetto, giusto?

158
00:07:49,630 --> 00:07:51,510
‫E quindi, la semplice

159
00:07:51,510 --> 00:07:55,033
‫soluzione a questo, e forse l'hai fatto in precedenza nel tuo

160
00:07:56,520 --> 00:07:58,853
‫codice, è che ora dobbiamo restituire questo.

161
00:08:01,120 --> 00:08:06,103
‫Quindi, restituisci questo e questo è semplicemente l'intero oggetto, ok?

162
00:08:07,252 --> 00:08:09,723
‫E lo stesso, allora, quaggiù.

163
00:08:11,790 --> 00:08:13,570
‫Quindi, restituisci questo.

164
00:08:13,570 --> 00:08:17,360
‫Per restituire, ancora una volta, l'intero oggetto che, ovviamente, ha

165
00:08:17,360 --> 00:08:20,530
‫accesso a questi altri metodi in modo che

166
00:08:20,530 --> 00:08:22,493
‫possiamo, quindi, chiamarli lì.

167
00:08:23,610 --> 00:08:24,443
‫Va bene?

168
00:08:25,690 --> 00:08:28,643
‫Quindi, il prossimo è il limite.

169
00:08:34,000 --> 00:08:36,150
‫E chiamerò questo limitFields.

170
00:08:39,680 --> 00:08:41,340
‫E questo perché tutti

171
00:08:41,340 --> 00:08:43,710
‫questi metodi avranno questi verbi come nomi.

172
00:08:43,710 --> 00:08:47,240
‫Quindi è filtro, ordinamento, limite e l'impaginazione sarà

173
00:08:47,240 --> 00:08:48,640
‫il prossimo.

174
00:08:49,870 --> 00:08:53,730
‫Quindi, ancora una volta, req. la query ora è questa. queryString e query

175
00:08:57,649 --> 00:09:00,399
‫here ora sono questo. interrogazione.

176
00:09:04,494 --> 00:09:05,327
‫Va bene?

177
00:09:08,196 --> 00:09:11,196
‫Restituisci questo e questo non è corretto.

178
00:09:14,290 --> 00:09:17,123
‫Ok, e infine, l'impaginazione.

179
00:09:18,490 --> 00:09:19,873
‫Copia, commenta.

180
00:09:25,020 --> 00:09:26,413
‫Quindi, impaginare.

181
00:09:29,770 --> 00:09:31,650
‫Restituisci questo e, ovviamente, dobbiamo

182
00:09:31,650 --> 00:09:39,187
‫sostituire questi req. interroga questo.

183
00:09:39,187 --> 00:09:39,187
‫stringa della domanda.

184
00:09:39,187 --> 00:09:41,610
‫E poi qui, proprio come

185
00:09:41,610 --> 00:09:44,890
‫prima, sarà questo. interrogazione.

186
00:09:44,890 --> 00:09:47,770
‫E ho appena realizzato che lassù,

187
00:09:47,770 --> 00:09:51,040
‫proprio nel primo metodo, non l'abbiamo fatto qui.

188
00:09:51,040 --> 00:09:54,560
‫Quindi, abbiamo semplicemente detto questo. query e poi

189
00:09:54,560 --> 00:09:57,080
‫ha aggiunto la ricerca lì.

190
00:09:57,080 --> 00:09:59,190
‫Ma poi, ovviamente, dobbiamo salvarlo

191
00:09:59,190 --> 00:10:01,700
‫effettivamente in questa proprietà di query.

192
00:10:01,700 --> 00:10:03,593
‫Ok, quindi l'ho dimenticato.

193
00:10:04,650 --> 00:10:06,610
‫E qui abbiamo qualche errore.

194
00:10:06,610 --> 00:10:08,280
‫Va bene, questo non ha molta

195
00:10:08,280 --> 00:10:09,690
‫importanza qui in questo momento.

196
00:10:09,690 --> 00:10:13,170
‫O, in realtà, lo fa perché questa riga di codice qui

197
00:10:13,170 --> 00:10:15,910
‫è in realtà nel nostro metodo paginate.

198
00:10:15,910 --> 00:10:17,490
‫Quindi andiamo lì.

199
00:10:17,490 --> 00:10:19,720
‫E, infatti, volevo proprio parlarti

200
00:10:19,720 --> 00:10:21,210
‫di questo qui.

201
00:10:21,210 --> 00:10:24,350
‫Perché, a pensarci bene, richiedere la pagina successiva,

202
00:10:24,350 --> 00:10:27,740
‫che ha risultato zero, non è proprio un errore.

203
00:10:27,740 --> 00:10:30,852
‫Il fatto che non ci siano risultati è sufficiente

204
00:10:30,852 --> 00:10:34,900
‫perché l'utente si renda conto che, in sostanza, la pagina richiesta

205
00:10:34,900 --> 00:10:36,660
‫non contiene alcun dato.

206
00:10:36,660 --> 00:10:39,450
‫Quindi non abbiamo davvero bisogno di un errore in questa situazione.

207
00:10:39,450 --> 00:10:42,933
‫E quindi, vado avanti e cancellerò tutto questo codice.

208
00:10:43,940 --> 00:10:45,430
‫Va bene?

209
00:10:45,430 --> 00:10:47,600
‫Quindi fammi salvare ora qui.

210
00:10:47,600 --> 00:10:49,963
‫E così ora, ovviamente, l'errore è sparito.

211
00:10:53,800 --> 00:10:56,950
‫E qui, dobbiamo anche continuare ad aggiungere

212
00:10:56,950 --> 00:10:58,770
‫questi altri metodi.

213
00:10:58,770 --> 00:11:02,577
‫Quindi, limitFields e . impaginare.

214
00:11:05,160 --> 00:11:09,360
‫Dagli un salvataggio e, ancora, ricorda che tutto questo concatenamento

215
00:11:09,360 --> 00:11:12,180
‫qui funziona solo perché dopo aver

216
00:11:12,180 --> 00:11:15,420
‫chiamato ciascuno di questi metodi, lo restituiamo sempre.

217
00:11:15,420 --> 00:11:18,800
‫E questo è l'oggetto stesso che ha accesso a

218
00:11:18,800 --> 00:11:21,410
‫ciascuno di questi metodi qui,

219
00:11:21,410 --> 00:11:24,640
‫rendendo possibile concatenarli proprio come lo abbiamo qui.

220
00:11:24,640 --> 00:11:26,860
‫Ok, quindi, solo per ricapitolare:

221
00:11:26,860 --> 00:11:31,040
‫stiamo creando un nuovo oggetto della classe delle funzionalità API.

222
00:11:31,040 --> 00:11:33,960
‫Lì, stiamo analizzando un oggetto query e

223
00:11:33,960 --> 00:11:37,240
‫la stringa di query che proviene da express.

224
00:11:37,240 --> 00:11:38,400
‫Va bene?

225
00:11:38,400 --> 00:11:41,180
‫Quindi, in ciascuno di questi quattro metodi

226
00:11:41,180 --> 00:11:44,400
‫che chiamiamo uno dopo l'altro, fondamentalmente, manipoliamo la query.

227
00:11:44,400 --> 00:11:48,010
‫Continuiamo ad aggiungere altri metodi proprio come abbiamo

228
00:11:48,010 --> 00:11:52,160
‫fatto qui prima di fare qualsiasi di questo refactoring, giusto.

229
00:11:52,160 --> 00:11:55,900
‫Quindi, continuiamo ad aggiungere cose alla query qui fino alla fine, e

230
00:11:55,900 --> 00:11:59,040
‫poi, alla fine, aspettiamo semplicemente il risultato di quella query

231
00:11:59,040 --> 00:12:02,070
‫in modo che possa tornare con tutti i documenti

232
00:12:02,070 --> 00:12:04,210
‫che sono stati selezionati, ok?

233
00:12:04,210 --> 00:12:06,580
‫E quella query ora vive su feature

234
00:12:06,580 --> 00:12:08,640
‫che è questo oggetto qui.

235
00:12:08,640 --> 00:12:10,123
‫Quindi caratteristiche. interrogazione.

236
00:12:11,330 --> 00:12:13,620
‫Ok, spero che abbia senso.

237
00:12:13,620 --> 00:12:17,960
‫Quindi, prima di fare qualsiasi altra cosa, torniamo da

238
00:12:17,960 --> 00:12:20,090
‫Postman e proviamolo davvero.

239
00:12:20,090 --> 00:12:23,500
‫E possiamo provarlo proprio qui con questo percorso Top-5-economico

240
00:12:23,500 --> 00:12:25,650
‫perché, in realtà, dietro

241
00:12:25,650 --> 00:12:29,030
‫le quinte, utilizza tutte queste funzionalità API, giusto.

242
00:12:29,030 --> 00:12:32,240
‫Quindi, se lo mando, beh, funziona ancora.

243
00:12:32,240 --> 00:12:33,763
‫Quindi è fantastico.

244
00:12:34,730 --> 00:12:38,823
‫Quindi chiudiamolo e mi permetta di salvarlo effettivamente qui.

245
00:12:40,490 --> 00:12:44,453
‫Quindi, ottieni i primi cinque tour economici.

246
00:12:49,220 --> 00:12:51,370
‫E sì, lo lascerò lì alla fine.

247
00:12:51,370 --> 00:12:53,763
‫E ora, proprio qui, facciamo alcuni test.

248
00:12:54,790 --> 00:12:58,373
‫Ad esempio, rimuovi l'ordinamento, lasciami il limite.

249
00:12:59,570 --> 00:13:02,260
‫Difficoltà, durata, prezzo.

250
00:13:02,260 --> 00:13:04,170
‫Quindi, lascerò tutto questo

251
00:13:04,170 --> 00:13:06,620
‫qui solo per vedere se funziona ancora.

252
00:13:06,620 --> 00:13:10,590
‫E sembra che tutto funzioni ancora, giusto.

253
00:13:10,590 --> 00:13:13,110
‫Quindi questi sono esattamente gli stessi risultati che

254
00:13:13,110 --> 00:13:15,500
‫abbiamo ottenuto prima del nostro refactoring.

255
00:13:15,500 --> 00:13:17,320
‫Quindi, fantastico, perfetto.

256
00:13:17,320 --> 00:13:20,530
‫Ha funzionato e quindi, ora, eliminiamo effettivamente tutto questo codice

257
00:13:20,530 --> 00:13:23,950
‫da qui, il che rende il nostro gestore di route

258
00:13:23,950 --> 00:13:26,410
‫molto più pulito, non è vero?

259
00:13:26,410 --> 00:13:30,840
‫Quindi, è molto meglio, davvero, è giorno e notte.

260
00:13:30,840 --> 00:13:31,800
‫Va bene?

261
00:13:31,800 --> 00:13:34,210
‫Ora, il prossimo passo è andare

262
00:13:34,210 --> 00:13:38,500
‫avanti e prendere tutto questo codice, tagliarlo e inserirlo in un

263
00:13:38,500 --> 00:13:41,700
‫nuovo file, quindi un nuovo modulo, in pratica.

264
00:13:41,700 --> 00:13:44,720
‫Ok, e per questo, creerò una nuova cartella

265
00:13:44,720 --> 00:13:46,563
‫qui che chiamerò Utils.

266
00:13:47,420 --> 00:13:49,713
‫Quindi questo sta, fondamentalmente, per i servizi di pubblica utilità.

267
00:13:51,010 --> 00:13:53,850
‫E aggiungerò un paio di cose qui

268
00:13:53,850 --> 00:13:55,503
‫nel resto del corso.

269
00:13:57,060 --> 00:13:57,893
‫Va bene?

270
00:13:57,893 --> 00:14:00,050
‫Quindi questo

271
00:14:00,050 --> 00:14:05,050
‫si chiamerà APIFeatures. js e qui con la F maiuscola.

272
00:14:09,430 --> 00:14:10,263
‫Va bene?

273
00:14:10,263 --> 00:14:13,621
‫Quindi, ecco la nostra classe e, alla

274
00:14:13,621 --> 00:14:17,823
‫fine, facciamo un modulo. esportazioni di questa classe.

275
00:14:20,040 --> 00:14:21,800
‫Quindi, niente di nuovo a questo punto.

276
00:14:21,800 --> 00:14:24,140
‫Salvalo, chiudilo e

277
00:14:24,140 --> 00:14:27,073
‫ora, qui, possiamo richiederlo.

278
00:14:28,147 --> 00:14:30,730
‫Const APIFeatures quindi richiedono.

279
00:14:35,980 --> 00:14:38,490
‫Quindi dobbiamo spostare una cartella

280
00:14:38,490 --> 00:14:41,613
‫in alto, quindi in Utils e APIFeatures.

281
00:14:43,110 --> 00:14:44,210
‫Va bene?

282
00:14:44,210 --> 00:14:45,313
‫Un'altra prova.

283
00:14:48,010 --> 00:14:51,000
‫E ci vuole un po' di tempo, e ci siamo.

284
00:14:51,000 --> 00:14:53,760
‫Bello, è davvero bellissimo.

285
00:14:53,760 --> 00:14:57,720
‫Ora, se creiamo di nuovo un'altra risorsa, ad esempio,

286
00:14:57,720 --> 00:15:00,280
‫per gli utenti, sarà molto facile

287
00:15:00,280 --> 00:15:02,630
‫inserire questa stessa funzionalità.

288
00:15:02,630 --> 00:15:06,110
‫Tutto quello che dovremo fare è richiedere questo file e quindi,

289
00:15:06,110 --> 00:15:08,680
‫in pratica, fare lo stesso di qui.

290
00:15:08,680 --> 00:15:11,000
‫O forse, in quel caso, non vogliamo nemmeno

291
00:15:11,000 --> 00:15:14,040
‫avere questa capacità di ordinamento o non vogliamo avere la

292
00:15:14,040 --> 00:15:17,140
‫capacità di filtraggio e quindi, tutto ciò che dobbiamo fare è

293
00:15:17,140 --> 00:15:19,440
‫semplicemente eliminare questa riga di codice.

294
00:15:19,440 --> 00:15:21,680
‫E poi, come per magia, farà

295
00:15:21,680 --> 00:15:23,280
‫solo queste tre

296
00:15:23,280 --> 00:15:25,810
‫funzionalità o queste tre caratteristiche, ok.

297
00:15:25,810 --> 00:15:27,890
‫E quindi, è davvero fantastico.

298
00:15:27,890 --> 00:15:29,630
‫Spero che tu possa vedere

299
00:15:29,630 --> 00:15:33,353
‫il valore di questo e, sì, sono davvero contento di questo risultato.

