﻿1
00:00:01,100 --> 00:00:04,883
‫-: In questo video implementiamo l'aggiornamento del documento.

2
00:00:06,250 --> 00:00:09,810
‫E così, qui, nel nostro gestore del tour di aggiornamento,

3
00:00:09,810 --> 00:00:11,803
‫iniziamo rendendolo una funzione asincrona.

4
00:00:14,650 --> 00:00:18,250
‫Quindi, o prova a prendere il blocco, quindi lo

5
00:00:18,250 --> 00:00:22,130
‫sto facendo molto velocemente ora, perché a questo punto siamo

6
00:00:22,130 --> 00:00:22,963
‫già abituati.

7
00:00:24,330 --> 00:00:25,180
‫Destra?

8
00:00:25,180 --> 00:00:28,210
‫Quindi questo va nel blocco try e

9
00:00:28,210 --> 00:00:32,440
‫poi ottengo semplicemente questo, qui, dal blocco catch di

10
00:00:33,450 --> 00:00:34,693
‫quest'altra funzione.

11
00:00:36,130 --> 00:00:37,653
‫Va bene, quindi.

12
00:00:39,230 --> 00:00:40,660
‫Eccoci qui.

13
00:00:40,660 --> 00:00:42,430
‫E quindi ora, quello

14
00:00:42,430 --> 00:00:44,620
‫che dobbiamo fare qui all'inizio

15
00:00:44,620 --> 00:00:47,140
‫di questo blocco try è fondamentalmente interrogare

16
00:00:47,140 --> 00:00:50,580
‫il documento che vogliamo aggiornare e quindi aggiornarlo, va bene?

17
00:00:50,580 --> 00:00:51,730
‫E possiamo effettivamente

18
00:00:51,730 --> 00:00:54,250
‫farlo tutto in un comando con mangusta.

19
00:00:54,250 --> 00:00:57,160
‫E ricorda, ancora una volta, che aggiorneremo il tour in

20
00:00:57,160 --> 00:00:59,370
‫base a un documento d'identità, ok?

21
00:00:59,370 --> 00:01:03,320
‫Quindi, è una situazione simile come questa qui,

22
00:01:03,320 --> 00:01:05,590
‫dove troviamo per ID.

23
00:01:05,590 --> 00:01:08,130
‫E ora, possiamo effettivamente fare qualcosa

24
00:01:08,130 --> 00:01:11,380
‫di molto simile, ovvero trovare per ID e aggiornare.

25
00:01:11,380 --> 00:01:13,713
‫Quindi, di nuovo, tutto in una query.

26
00:01:14,600 --> 00:01:16,790
‫Allora, facciamo un tour.

27
00:01:20,400 --> 00:01:22,963
‫findByID e aggiorna.

28
00:01:24,150 --> 00:01:27,520
‫Ok, allora cosa ci serve per passare qui?

29
00:01:27,520 --> 00:01:31,290
‫Bene, naturalmente, l'ID, in modo che possiamo prima trovare il

30
00:01:31,290 --> 00:01:33,313
‫documento che deve essere aggiornato.

31
00:01:34,620 --> 00:01:39,030
‫Quindi, proprio come prima, questo è req. parametri. ID e

32
00:01:39,030 --> 00:01:42,690
‫quindi i dati che vogliamo effettivamente modificare.

33
00:01:42,690 --> 00:01:44,750
‫E quei dati saranno nel corpo, proprio

34
00:01:44,750 --> 00:01:46,763
‫come nella richiesta di posta.

35
00:01:48,430 --> 00:01:51,330
‫Quindi richiesta corpo, ok?

36
00:01:51,330 --> 00:01:53,470
‫E poi, in realtà come

37
00:01:53,470 --> 00:01:57,050
‫terzo argomento, possiamo anche correggere alcune opzioni, e lo faremo.

38
00:01:57,050 --> 00:02:00,600
‫E la prima opzione che voglio specificare è nuova

39
00:02:01,540 --> 00:02:03,690
‫e impostarla su true.

40
00:02:03,690 --> 00:02:06,760
‫Perché in questo modo, quindi, il nuovo documento aggiornato

41
00:02:06,760 --> 00:02:08,870
‫è quello che verrà restituito.

42
00:02:08,870 --> 00:02:11,810
‫E poiché vogliamo restituire quel documento

43
00:02:11,810 --> 00:02:14,410
‫aggiornato al cliente, vogliamo sempre

44
00:02:14,410 --> 00:02:18,380
‫che questo metodo restituisca effettivamente quel nuovo documento, ok?

45
00:02:18,380 --> 00:02:22,160
‫Quindi, in questo modo, in realtà ha

46
00:02:22,160 --> 00:02:27,160
‫senso attendere questa query e quindi salvarla in una nuova variabile.

47
00:02:28,710 --> 00:02:30,720
‫Quindi chiamalo semplicemente tour

48
00:02:30,720 --> 00:02:34,743
‫qui, e poi di nuovo, attendi il risultato di questa query.

49
00:02:35,640 --> 00:02:38,200
‫Quindi tutti questi metodi che abbiamo

50
00:02:38,200 --> 00:02:41,923
‫usato finora nel tour, quindi trova per ID e

51
00:02:43,220 --> 00:02:47,300
‫aggiorna, o, beh, non crea veramente, ma trova per ID o

52
00:02:47,300 --> 00:02:51,350
‫trova, tutti questi restituiranno query, quindi sono query metodi e

53
00:02:51,350 --> 00:02:53,320
‫lascia che te lo

54
00:02:53,320 --> 00:02:55,700
‫mostri effettivamente nella documentazione della mangusta.

55
00:02:55,700 --> 00:02:58,510
‫Quindi, fino a questo punto, non abbiamo dato

56
00:02:58,510 --> 00:03:00,300
‫un'occhiata alla documentazione finora.

57
00:03:00,300 --> 00:03:01,850
‫E quindi, facciamolo velocemente.

58
00:03:01,850 --> 00:03:05,080
‫Quindi, sul modello, che nel nostro caso è tour,

59
00:03:05,080 --> 00:03:07,610
‫abbiamo tutti questi metodi di query, giusto?

60
00:03:07,610 --> 00:03:11,920
‫Quindi vedi trova, vedi trova uno, vedi trova per ID, che è

61
00:03:11,920 --> 00:03:14,530
‫solo una scorciatoia per trovarne uno.

62
00:03:14,530 --> 00:03:17,460
‫Quindi vedi trova per ID e aggiorna, che

63
00:03:17,460 --> 00:03:19,320
‫è quello che stiamo

64
00:03:19,320 --> 00:03:22,018
‫attualmente utilizzando e che, in effetti, è

65
00:03:22,018 --> 00:03:26,440
‫solo una scorciatoia per trova uno e aggiorna, dove stiamo richiedendo un

66
00:03:26,440 --> 00:03:30,380
‫ID, così simile a quello che noi avuto nell'ultima lezione, ok?

67
00:03:30,380 --> 00:03:33,630
‫E in realtà possiamo fare clic su uno

68
00:03:33,630 --> 00:03:36,340
‫di questi, quindi facciamo quello che

69
00:03:36,340 --> 00:03:39,931
‫stiamo usando attualmente, e questo ci porterà davvero alla documentazione

70
00:03:39,931 --> 00:03:43,560
‫dell'API che ci mostra come usare davvero un certo metodo.

71
00:03:43,560 --> 00:03:46,650
‫Quindi vedi che abbiamo passato l'ID, quindi

72
00:03:46,650 --> 00:03:50,550
‫il valore, fuori dall'ID con cui interrogare, abbiamo passato

73
00:03:50,550 --> 00:03:55,320
‫l'oggetto con i dati da aggiornare e abbiamo passato un oggetto options.

74
00:03:55,320 --> 00:03:57,410
‫E qui sotto possiamo effettivamente

75
00:03:57,410 --> 00:03:59,770
‫vedere le opzioni che possiamo impostare,

76
00:03:59,770 --> 00:04:03,360
‫quindi ricorda, abbiamo semplicemente impostato new su true, e

77
00:04:03,360 --> 00:04:06,570
‫quindi come dice qui che restituirà il documento

78
00:04:06,570 --> 00:04:08,480
‫modificato anziché l'originale.

79
00:04:08,480 --> 00:04:11,500
‫Ora, un altro che vogliamo effettivamente impostare

80
00:04:11,500 --> 00:04:15,690
‫su true è questo run validators, in modo che ogni volta

81
00:04:15,690 --> 00:04:19,160
‫che aggiorniamo un determinato documento, i validatori che abbiamo

82
00:04:19,160 --> 00:04:22,334
‫specificato nello schema verranno eseguiti di nuovo, ok?

83
00:04:22,334 --> 00:04:26,050
‫E parleremo molto dei validatori e della validazione un po'

84
00:04:26,050 --> 00:04:27,600
‫più avanti nella sezione,

85
00:04:27,600 --> 00:04:31,770
‫ma lo lascerò qui per ora in modo che, fondamentalmente, non

86
00:04:31,770 --> 00:04:32,743
‫lo dimentichiamo.

87
00:04:34,340 --> 00:04:35,530
‫Bene?

88
00:04:35,530 --> 00:04:38,810
‫Salvalo ora, e in realtà voglio tornare qui

89
00:04:38,810 --> 00:04:40,880
‫solo per mostrarti quanti

90
00:04:40,880 --> 00:04:43,210
‫metodi abbiamo effettivamente in mangusta.

91
00:04:43,210 --> 00:04:46,250
‫Quindi, sul modello, abbiamo tutti questi metodi qui che

92
00:04:46,250 --> 00:04:47,753
‫vedi in questo elenco.

93
00:04:48,620 --> 00:04:51,300
‫Quindi, ad esempio, abbiamo usato create prima,

94
00:04:51,300 --> 00:04:52,833
‫abbiamo anche usato find.

95
00:04:53,850 --> 00:04:54,683
‫Bene?

96
00:04:54,683 --> 00:04:57,090
‫E quindi quelli che vedete qui in alto,

97
00:04:57,090 --> 00:04:59,350
‫sono disponibili proprio sul modello, e quello,

98
00:04:59,350 --> 00:05:01,363
‫nel nostro caso, è il tour.

99
00:05:02,300 --> 00:05:04,320
‫Ora, quaggiù, ad esempio, vedi

100
00:05:04,320 --> 00:05:08,520
‫anche il modello. prototipo. sicuro per esempio.

101
00:05:08,520 --> 00:05:10,770
‫E questo, in realtà l'abbiamo già

102
00:05:10,770 --> 00:05:14,290
‫usato anche quando abbiamo iniziato a lavorare con la mangusta.

103
00:05:14,290 --> 00:05:16,650
‫Quindi non sono sicuro che tu abbia familiarità con questo,

104
00:05:16,650 --> 00:05:20,070
‫ma nel modello di script java. prototipo significa sempre

105
00:05:20,070 --> 00:05:23,560
‫un oggetto creato da una classe, o in questo

106
00:05:23,560 --> 00:05:25,330
‫caso, creato da un modello.

107
00:05:25,330 --> 00:05:29,010
‫E così, il metodo di salvataggio qui si riferisce a un metodo

108
00:05:29,010 --> 00:05:32,530
‫di salvataggio chiamato su un documento e non su un tour.

109
00:05:32,530 --> 00:05:35,370
‫E ricorda che è esattamente quello che abbiamo fatto.

110
00:05:35,370 --> 00:05:37,670
‫E penso di averlo ancora qui come commento.

111
00:05:40,430 --> 00:05:41,550
‫Sì, proprio qui.

112
00:05:41,550 --> 00:05:45,717
‫Quindi, abbiamo avuto un tour, questa nuova variabile tour qui

113
00:05:45,717 --> 00:05:48,600
‫che è stata creata dal modello

114
00:05:48,600 --> 00:05:53,220
‫tour, e quindi questo nuovo tour qui ha avuto accesso al

115
00:05:53,220 --> 00:05:57,320
‫metodo save perché fa parte dell'oggetto prototipo di questa classe.

116
00:05:57,320 --> 00:06:00,280
‫Va bene, ora non voglio annoiarti con i

117
00:06:00,280 --> 00:06:02,760
‫fondamenti dello script java, ma

118
00:06:02,760 --> 00:06:05,620
‫è importante per capire la documentazione, ok?

119
00:06:05,620 --> 00:06:09,320
‫Perché a un certo punto dovrai usare la documentazione,

120
00:06:09,320 --> 00:06:11,520
‫perché la mangusta è yute.

121
00:06:11,520 --> 00:06:13,700
‫E in realtà ti insegnerò molte delle cose

122
00:06:13,700 --> 00:06:16,520
‫importanti lì dentro durante tutto questo corso, ma a volte

123
00:06:16,520 --> 00:06:19,240
‫avrai ancora bisogno di qualcosa che non ti ho

124
00:06:19,240 --> 00:06:20,740
‫mostrato in questo corso.

125
00:06:20,740 --> 00:06:23,060
‫Quindi è importante che

126
00:06:23,060 --> 00:06:25,900
‫tu capisca davvero anche la documentazione, ok?

127
00:06:25,900 --> 00:06:29,360
‫E così, di nuovo, quando vedi il modello. prototipo qui, sai

128
00:06:29,360 --> 00:06:31,810
‫che il metodo di salvataggio

129
00:06:31,810 --> 00:06:34,800
‫qui sarà disponibile su tutte le istanze

130
00:06:34,800 --> 00:06:37,330
‫create tramite un modello, ok?

131
00:06:37,330 --> 00:06:39,160
‫E quindi, non il modello stesso.

132
00:06:39,160 --> 00:06:42,000
‫Quindi, ad esempio, se hai provato il tour. salva non saresti

133
00:06:42,000 --> 00:06:43,660
‫in grado di usarlo.

134
00:06:43,660 --> 00:06:46,960
‫Ti darebbe un errore, ma invece, se provassi

135
00:06:46,960 --> 00:06:49,700
‫a salvare su un documento creato durante

136
00:06:49,700 --> 00:06:52,120
‫il tour, ovviamente funzionerebbe, ok?

137
00:06:52,120 --> 00:06:53,840
‫Spero che abbia un senso.

138
00:06:53,840 --> 00:06:56,670
‫E, comunque, vedi che abbiamo molte

139
00:06:56,670 --> 00:07:00,310
‫altre cose, quindi dobbiamo interrogare, di cui abbiamo già

140
00:07:00,310 --> 00:07:04,030
‫parlato, perché, ad esempio, trova per ID e aggiorna, o

141
00:07:04,030 --> 00:07:08,320
‫trova, o trova per ID, tutte queste funzioni restituire oggetti query.

142
00:07:08,320 --> 00:07:10,860
‫E così, in seguito, quando

143
00:07:10,860 --> 00:07:15,150
‫implementeremo cose come l'ordinamento o il filtro, utilizzeremo questo oggetto query.

144
00:07:15,150 --> 00:07:15,983
‫Bene?

145
00:07:15,983 --> 00:07:19,751
‫Quindi, torniamo indietro, qui siamo usciti dai binari guardando la documentazione,

146
00:07:19,751 --> 00:07:22,210
‫ma, ancora una volta, penso che sia

147
00:07:22,210 --> 00:07:24,230
‫davvero importante iniziare a guardare

148
00:07:24,230 --> 00:07:26,370
‫la documentazione, perché un corso come

149
00:07:26,370 --> 00:07:29,670
‫questo può portarti solo così lontano, e io spero che

150
00:07:29,670 --> 00:07:32,570
‫tu lo sappia già a questo punto, ok?

151
00:07:32,570 --> 00:07:35,810
‫È molto importante che tu sia anche in grado di

152
00:07:35,810 --> 00:07:38,450
‫trovare informazioni da solo, e voglio mostrarti come

153
00:07:38,450 --> 00:07:40,560
‫farlo anche in questo corso.

154
00:07:40,560 --> 00:07:43,460
‫Ad ogni modo, ora inviamo anche questo

155
00:07:43,460 --> 00:07:46,820
‫tour appena aggiornato al client, cosa che, in

156
00:07:46,820 --> 00:07:49,690
‫questo momento, non stiamo facendo, perché

157
00:07:49,690 --> 00:07:52,810
‫abbiamo semplicemente questa stringa di tour aggiornata qui.

158
00:07:52,810 --> 00:07:56,470
‫Quindi liberiamoci di questo e mandiamo semplicemente in tour.

159
00:07:56,470 --> 00:08:00,140
‫E ricorda che questo, in effetti, è proprio questo.

160
00:08:00,140 --> 00:08:03,940
‫Quindi, la proprietà tour è impostata sull'oggetto tour, ma, grazie

161
00:08:03,940 --> 00:08:07,360
‫a ES6, non dobbiamo più farlo quando il

162
00:08:07,360 --> 00:08:11,160
‫nome della proprietà ha lo stesso nome del valore.

163
00:08:11,160 --> 00:08:13,310
‫Ok, allora sbarazziamoci di quello.

164
00:08:13,310 --> 00:08:15,413
‫Ciò rende il nostro codice un po' migliore.

165
00:08:17,350 --> 00:08:19,373
‫Ok, e ora proviamolo.

166
00:08:20,980 --> 00:08:25,980
‫Tornando al postino, ecco il percorso aggiornato del tour.

167
00:08:26,079 --> 00:08:27,960
‫E quindi, facciamolo

168
00:08:27,960 --> 00:08:30,983
‫con lo stesso ID che usavamo prima.

169
00:08:34,310 --> 00:08:35,550
‫Quindi, questo.

170
00:08:35,550 --> 00:08:38,827
‫Poi veniamo al corpo, qui, e cambiamo...

171
00:08:39,761 --> 00:08:42,250
‫Beh, cosa cambieremo qui?

172
00:08:42,250 --> 00:08:46,493
‫Bene, cambiamo il prezzo in tipo 500.

173
00:08:48,040 --> 00:08:51,383
‫Quindi, prezzo, 500, invialo, e infatti

174
00:08:52,630 --> 00:08:55,700
‫questo ci dà l'oggetto appena

175
00:08:55,700 --> 00:08:58,250
‫aggiornato con il prezzo già

176
00:08:58,250 --> 00:09:00,730
‫impostato a 500.

177
00:09:00,730 --> 00:09:03,410
‫E se ora otteniamo tutti i tour, questo,

178
00:09:03,410 --> 00:09:05,150
‫ovviamente, dovrebbe riflettersi qui.

179
00:09:05,150 --> 00:09:06,480
‫Ed eccolo qui.

180
00:09:06,480 --> 00:09:09,223
‫Ma ora, diciamo che lo impostiamo su una stringa.

181
00:09:13,930 --> 00:09:15,920
‫Diamo un'occhiata a cosa succede, allora.

182
00:09:15,920 --> 00:09:17,930
‫Bene, allora otteniamo effettivamente un errore.

183
00:09:17,930 --> 00:09:21,090
‫E questo perché abbiamo eseguito di nuovo i validatori.

184
00:09:21,090 --> 00:09:23,497
‫Quindi, ricorda che abbiamo...

185
00:09:24,900 --> 00:09:25,760
‫Dov'e'?

186
00:09:27,720 --> 00:09:28,553
‫Oh sì, qui.

187
00:09:28,553 --> 00:09:32,070
‫Quindi qui specifichiamo che i validatori dovrebbero essere eseguiti di nuovo.

188
00:09:32,070 --> 00:09:36,130
‫E quindi, in questo momento il prezzo non è più un numero

189
00:09:36,130 --> 00:09:38,050
‫come ci si aspetta, giusto?

190
00:09:38,050 --> 00:09:41,580
‫Quindi in uno schema diciamo che il prezzo dovrebbe essere

191
00:09:41,580 --> 00:09:44,580
‫un numero, ma, ovviamente, java script o

192
00:09:44,580 --> 00:09:49,290
‫mangusta, in realtà, non possono, sostanzialmente, convertire questa stringa qui in un numero.

193
00:09:49,290 --> 00:09:50,820
‫Ma è quello che ci aspettiamo.

194
00:09:50,820 --> 00:09:53,350
‫Quindi qui dice che il tipo dovrebbe essere il numero.

195
00:09:53,350 --> 00:09:55,580
‫E quindi, quindi, ci dà un

196
00:09:55,580 --> 00:09:58,540
‫errore, semplicemente perché stiamo eseguendo di nuovo i validatori.

197
00:09:58,540 --> 00:10:01,530
‫Quindi, riportiamolo a 500 e poi,

198
00:10:01,530 --> 00:10:02,730
‫ovviamente, tornerà.

199
00:10:02,730 --> 00:10:05,430
‫Va bene, ora, tieni presente che stiamo effettivamente

200
00:10:05,430 --> 00:10:07,750
‫facendo una richiesta di patch qui.

201
00:10:07,750 --> 00:10:11,000
‫Ora, se stessimo facendo una richiesta put, ricorda,

202
00:10:11,000 --> 00:10:13,670
‫allora ti aspetteresti che l'oggetto originale

203
00:10:13,670 --> 00:10:15,190
‫venga completamente sostituito

204
00:10:15,190 --> 00:10:18,150
‫con quello nuovo che viene inviato, ok?

205
00:10:18,150 --> 00:10:20,280
‫Quindi, in quel caso non funzionerebbe

206
00:10:20,280 --> 00:10:22,272
‫più nel modo in

207
00:10:22,272 --> 00:10:25,420
‫cui abbiamo implementato qui perché questo ha semplicemente

208
00:10:25,420 --> 00:10:29,360
‫aggiornato i campi che sono diversi qui nel corpo, ok?

209
00:10:29,360 --> 00:10:32,150
‫Ma comunque, penso che il metodo patch

210
00:10:32,150 --> 00:10:34,400
‫sia in realtà molto

211
00:10:34,400 --> 00:10:38,490
‫più utile, e quindi sarà l'unico che verrà implementato qui.

212
00:10:38,490 --> 00:10:42,300
‫Bene, quindi abbiamo implementato tre delle nostre quattro operazioni

213
00:10:42,300 --> 00:10:44,910
‫corrette, solo un'altra ancora da fare,

214
00:10:44,910 --> 00:10:46,463
‫che verrà eliminata.

