﻿1
00:00:01,110 --> 00:00:02,100
‫Istruttore: In

2
00:00:02,100 --> 00:00:05,090
‫questo video, creeremo una funzione di fabbrica del gestore

3
00:00:05,090 --> 00:00:07,460
‫per eliminare i documenti di revisione, ma

4
00:00:07,460 --> 00:00:10,640
‫anche i documenti di tutte le altre raccolte, il

5
00:00:10,640 --> 00:00:12,713
‫tutto con una semplice funzione.

6
00:00:14,150 --> 00:00:17,970
‫Quindi, come ho detto all'inizio di questa sezione, l'aggiunta

7
00:00:17,970 --> 00:00:21,540
‫di gestori molto simili a tutti i nostri

8
00:00:21,540 --> 00:00:25,010
‫controller creerà molti codici duplicati, giusto?

9
00:00:25,010 --> 00:00:26,880
‫Perché tutti questi gestori di

10
00:00:26,880 --> 00:00:28,580
‫aggiornamento, o tutti questi

11
00:00:28,580 --> 00:00:30,420
‫gestori di eliminazione, o tutti

12
00:00:30,420 --> 00:00:33,640
‫questi gestori di creazione, sembrano praticamente tutti uguali, giusto?

13
00:00:33,640 --> 00:00:36,070
‫Inoltre, immagina di voler cambiare come

14
00:00:36,070 --> 00:00:40,010
‫un codice di stato https o un messaggio di stato.

15
00:00:40,010 --> 00:00:43,380
‫Quindi dovremmo entrare in ogni controller e quindi cambiare

16
00:00:43,380 --> 00:00:45,900
‫tutti i gestori lì dentro.

17
00:00:45,900 --> 00:00:49,470
‫E quindi, invece di scrivere manualmente tutti questi gestori, perché

18
00:00:49,470 --> 00:00:52,410
‫non creare semplicemente una funzione di fabbrica che

19
00:00:52,410 --> 00:00:54,830
‫restituirà questi gestori per noi?

20
00:00:54,830 --> 00:00:57,710
‫Quindi, una funzione di fabbrica è esattamente questo.

21
00:00:57,710 --> 00:01:00,690
‫È una funzione che restituisce un'altra funzione, e in questo

22
00:01:00,690 --> 00:01:02,950
‫caso la nostra funzione di gestione.

23
00:01:02,950 --> 00:01:06,230
‫Quindi, per l'eliminazione, per la creazione, per l'aggiornamento e

24
00:01:06,230 --> 00:01:08,780
‫anche per la lettura delle risorse.

25
00:01:08,780 --> 00:01:13,400
‫Ok e so che l'intero concetto può essere un po' complesso da avvolgere,

26
00:01:13,400 --> 00:01:14,980
‫e questo è il

27
00:01:14,980 --> 00:01:16,930
‫motivo per cui l'ho lasciato

28
00:01:16,930 --> 00:01:19,350
‫per la parte successiva di questo corso.

29
00:01:19,350 --> 00:01:21,460
‫Ma ora, credo che tu sia

30
00:01:21,460 --> 00:01:23,580
‫davvero pronto per implementare questo genere di cose.

31
00:01:23,580 --> 00:01:25,900
‫Quindi questo tipo di logica è ciò che

32
00:01:25,900 --> 00:01:28,800
‫ogni sviluppatore JavaScript avanzato dovrebbe essere in grado di implementare,

33
00:01:28,800 --> 00:01:31,770
‫e quindi ancora una volta credo che a questo punto del

34
00:01:31,770 --> 00:01:34,860
‫corso tu sia davvero pronto per iniziare a utilizzare un concetto

35
00:01:34,860 --> 00:01:36,570
‫avanzato come questo, va bene.

36
00:01:36,570 --> 00:01:39,510
‫Ma basta parlare, ora lascia che ti mostri

37
00:01:39,510 --> 00:01:42,860
‫come funziona effettivamente utilizzando il gestore di eliminazione come primo esempio.

38
00:01:42,860 --> 00:01:47,540
‫E quindi in realtà ne abbiamo uno nel controller del tour, quindi

39
00:01:47,540 --> 00:01:50,063
‫andiamo avanti e copiamo quello, quindi

40
00:01:51,410 --> 00:01:52,763
‫cancelliamo il tour.

41
00:01:53,760 --> 00:01:56,490
‫Ok, quindi l'ho copiato fondamentalmente come

42
00:01:56,490 --> 00:01:58,283
‫modello da seguire.

43
00:01:59,710 --> 00:02:02,770
‫Quindi creiamo un nuovo file e lo farò

44
00:02:02,770 --> 00:02:03,883
‫nei controller.

45
00:02:04,910 --> 00:02:05,743
‫Va

46
00:02:07,150 --> 00:02:08,310
‫bene, quindi gestore...

47
00:02:09,990 --> 00:02:11,883
‫fabbrica. js.

48
00:02:13,160 --> 00:02:15,690
‫E sto facendo questa è la cartella dei

49
00:02:15,690 --> 00:02:18,060
‫controller, beh perché le funzioni che scriveremo

50
00:02:18,060 --> 00:02:20,070
‫qui fondamentalmente restituiranno i controller.

51
00:02:20,070 --> 00:02:21,860
‫E quindi per me ha molto senso che

52
00:02:21,860 --> 00:02:23,010
‫tu li metta qui.

53
00:02:24,530 --> 00:02:26,300
‫Quindi copiamo questa parte

54
00:02:26,300 --> 00:02:28,640
‫qui, solo per tenerla come riferimento.

55
00:02:28,640 --> 00:02:32,010
‫Quindi, di nuovo, l'obiettivo qui è sostanzialmente creare una funzione,

56
00:02:32,010 --> 00:02:33,580
‫che restituirà quindi

57
00:02:33,580 --> 00:02:35,750
‫una funzione simile a questa qui.

58
00:02:35,750 --> 00:02:37,870
‫Ma ovviamente non solo per il

59
00:02:37,870 --> 00:02:40,670
‫tour, ma per ogni singolo modello che abbiamo nella nostra

60
00:02:40,670 --> 00:02:42,840
‫applicazione e che potremmo avere in futuro.

61
00:02:42,840 --> 00:02:45,270
‫Quindi questa funzione deve essere

62
00:02:45,270 --> 00:02:49,150
‫preparata per questo, e quindi ciò significa che all'interno della

63
00:02:49,150 --> 00:02:51,843
‫funzione di fabbrica, passeremo il modello, d'accordo.

64
00:02:53,760 --> 00:02:55,937
‫Quindi chiamiamo questo deleteOne.

65
00:02:59,070 --> 00:03:00,960
‫E si chiama così, di

66
00:03:00,960 --> 00:03:02,830
‫nuovo, perché questa funzione non

67
00:03:02,830 --> 00:03:04,610
‫funzionerà solo per eliminare i

68
00:03:04,610 --> 00:03:07,580
‫tour, ma anche per eliminare recensioni e utenti e

69
00:03:07,580 --> 00:03:09,630
‫in futuro anche altri documenti che

70
00:03:09,630 --> 00:03:10,923
‫potremmo avere.

71
00:03:12,582 --> 00:03:14,750
‫Quindi, come dicevo all'inizio,

72
00:03:14,750 --> 00:03:17,680
‫passeremo il modello in questa funzione.

73
00:03:17,680 --> 00:03:21,930
‫Quindi passiamo il modello e poi creiamo una nuova funzione, e quella funzione restituirà

74
00:03:21,930 --> 00:03:23,620
‫immediatamente la nostra funzione asincrona,

75
00:03:23,620 --> 00:03:26,438
‫quindi in pratica tutto questo o la funzione di

76
00:03:26,438 --> 00:03:27,271
‫gestione asincrona.

77
00:03:33,580 --> 00:03:37,310
‫Ok, quindi ora tutto ciò che dobbiamo fare è

78
00:03:37,310 --> 00:03:41,663
‫passare effettivamente dal modello di strumento specifico al modello più generico.

79
00:03:43,685 --> 00:03:48,240
‫Quindi qui cambieremo anche questo da tour a documento perché, ancora una

80
00:03:48,240 --> 00:03:51,890
‫volta, non sapremo che tipo di documento è questo.

81
00:03:51,890 --> 00:03:54,810
‫Quindi questa funzione non saprà realmente se si tratta di un tour, o se

82
00:03:54,810 --> 00:03:56,963
‫si tratta di una recensione o di un utente.

83
00:03:58,220 --> 00:04:02,063
‫E quindi dobbiamo fare il giro di tutto questo, e

84
00:04:03,760 --> 00:04:05,550
‫questo è davvero tutto.

85
00:04:05,550 --> 00:04:07,870
‫Quindi questa fondamentalmente la generalizzazione

86
00:04:07,870 --> 00:04:11,710
‫di questa funzione specifica, che funzionava solo per i tour, e

87
00:04:11,710 --> 00:04:14,263
‫ora questa nuova funziona per ogni modello.

88
00:04:16,586 --> 00:04:20,420
‫Quello che dobbiamo fare anche qui è importare questo catchAsync e

89
00:04:20,420 --> 00:04:21,793
‫anche questo AppError.

90
00:04:25,040 --> 00:04:26,290
‫Quindi catchAsync...

91
00:04:32,630 --> 00:04:35,023
‫e credo che sia nella cartella delle utilità.

92
00:04:36,280 --> 00:04:40,213
‫E poi, non AppError ma catchAsync.

93
00:04:43,780 --> 00:04:45,030
‫Quindi duplicalo

94
00:04:48,070 --> 00:04:51,243
‫qui, AppError, e questo qui è maiuscolo.

95
00:04:52,320 --> 00:04:54,840
‫Salvalo e ora siamo pronti per

96
00:04:54,840 --> 00:04:56,323
‫testarlo effettivamente.

97
00:04:58,240 --> 00:05:01,490
‫Quindi è così che funzionerà, prima

98
00:05:01,490 --> 00:05:05,333
‫di tutto dobbiamo importare quella fabbrica di gestori.

99
00:05:06,760 --> 00:05:07,843
‫E così

100
00:05:10,310 --> 00:05:12,560
‫diciamo, e qui la chiamerò semplicemente fabbrica.

101
00:05:15,070 --> 00:05:19,730
‫Quindi richiede, ed è nella stessa cartella, quindi fabbrica

102
00:05:19,730 --> 00:05:21,113
‫del gestore.

103
00:05:23,300 --> 00:05:28,110
‫Va bene, quindi commentiamo questo qui fuori, o in realtà non

104
00:05:28,110 --> 00:05:29,510
‫tutto questo.

105
00:05:31,380 --> 00:05:34,343
‫Sì o in realtà possiamo commentarlo, e

106
00:05:37,300 --> 00:05:41,917
‫così le nuove esportazioni. elimina il tour sarà...

107
00:05:45,670 --> 00:05:50,670
‫fabbrica. deleteOne e poi passa al modello,

108
00:05:50,900 --> 00:05:52,410
‫che è tour.

109
00:05:52,410 --> 00:05:55,053
‫E questo è tutto, è tutto ciò che dobbiamo fare.

110
00:05:55,960 --> 00:05:58,650
‫Quindi, solo per ricapitolare molto rapidamente

111
00:05:58,650 --> 00:06:01,450
‫qui, quindi chiamiamo questa funzione deleteOne, quindi

112
00:06:01,450 --> 00:06:03,550
‫lì passiamo il modello e

113
00:06:03,550 --> 00:06:06,520
‫quindi ciò che accadrà è che questa funzione

114
00:06:06,520 --> 00:06:09,433
‫restituirà immediatamente questa funzione di gestione che

115
00:06:09,433 --> 00:06:10,773
‫avevamo prima.

116
00:06:11,630 --> 00:06:15,070
‫Semplicemente il modello specifico, che prima era il tour,

117
00:06:15,070 --> 00:06:17,200
‫ora verrà sostituito con quello che

118
00:06:17,200 --> 00:06:18,923
‫abbiamo passato alla funzione.

119
00:06:19,920 --> 00:06:23,160
‫E dal modo in cui funziona a causa delle

120
00:06:23,160 --> 00:06:25,690
‫chiusure JavaScript, che è solo un modo

121
00:06:25,690 --> 00:06:28,670
‫elegante per dire che questa funzione interna qui avrà

122
00:06:28,670 --> 00:06:30,820
‫accesso alle variabili della funzione

123
00:06:30,820 --> 00:06:33,643
‫esterna anche dopo che l'esterno è già tornato.

124
00:06:34,992 --> 00:06:37,370
‫Quindi chiamare questa funzione qui restituirà

125
00:06:37,370 --> 00:06:39,660
‫un'altra funzione, che si

126
00:06:39,660 --> 00:06:43,000
‫siederà qui e aspetterà fino a quando non verrà

127
00:06:43,000 --> 00:06:46,260
‫finalmente chiamata non appena raggiungiamo il percorso corrispondente.

128
00:06:46,260 --> 00:06:48,343
‫E quindi ora proviamo esattamente questo.

129
00:06:49,380 --> 00:06:50,873
‫Quindi elimina tour,

130
00:06:52,670 --> 00:06:54,773
‫ok, e scegliamo un tour di

131
00:06:54,773 --> 00:06:57,580
‫cui non abbiamo davvero bisogno qui per ora.

132
00:06:57,580 --> 00:06:59,130
‫Quindi diciamo...

133
00:07:00,050 --> 00:07:01,970
‫ora diciamo qui The Snow

134
00:07:01,970 --> 00:07:03,970
‫Adventurer perché non ha nemmeno recensioni.

135
00:07:07,900 --> 00:07:10,133
‫Quindi mandiamolo, oh e ora

136
00:07:11,230 --> 00:07:14,350
‫non abbiamo il permesso di eseguire l'azione, e

137
00:07:14,350 --> 00:07:17,633
‫questo perché non abbiamo effettuato l'accesso come amministratore.

138
00:07:18,890 --> 00:07:20,413
‫Quindi proviamolo, quindi

139
00:07:22,280 --> 00:07:25,913
‫questo è l'amministratore di cui abbiamo bisogno per accedere.

140
00:07:27,200 --> 00:07:28,740
‫Ok, quindi è fatta.

141
00:07:28,740 --> 00:07:33,300
‫E quindi ora dovrebbe funzionare, e in effetti ha funzionato.

142
00:07:33,300 --> 00:07:36,300
‫E quindi questa è la prova che la nostra funzione di fabbrica

143
00:07:36,300 --> 00:07:37,883
‫sta davvero facendo il suo lavoro.

144
00:07:38,870 --> 00:07:41,820
‫Ok, perché se ora torni qui, abbiamo

145
00:07:41,820 --> 00:07:46,530
‫avuto 10 risultati e quindi ora dovremmo ottenerne solo nove, quindi

146
00:07:46,530 --> 00:07:47,513
‫perfetto.

147
00:07:49,010 --> 00:07:51,510
‫E ora l'obiettivo è poterlo utilizzare

148
00:07:51,510 --> 00:07:53,373
‫in ogni singolo controller.

149
00:07:54,870 --> 00:07:57,230
‫Quindi copiamo questo qui e

150
00:07:59,010 --> 00:08:00,483
‫andiamo alle recensioni.

151
00:08:01,870 --> 00:08:03,670
‫Oh, e ovviamente

152
00:08:04,950 --> 00:08:08,090
‫ne abbiamo bisogno qui, proprio all'inizio, ora

153
00:08:08,090 --> 00:08:12,320
‫giusto, e quindi ora esporta. deleteReview è uguale

154
00:08:15,850 --> 00:08:18,893
‫a factory. deleteOne con

155
00:08:22,600 --> 00:08:24,680
‫il modello di revisione.

156
00:08:24,680 --> 00:08:26,710
‫E questo è tutto, è tutto

157
00:08:26,710 --> 00:08:29,890
‫ciò che dobbiamo fare per implementare il gestore di eliminazione.

158
00:08:29,890 --> 00:08:33,293
‫Ora, ovviamente, dobbiamo anche specificare il gestore del percorso.

159
00:08:35,640 --> 00:08:39,000
‫Ora ovviamente dobbiamo specificare il percorso stesso,

160
00:08:39,000 --> 00:08:41,243
‫quindi facciamolo anche qui.

161
00:08:43,790 --> 00:08:47,450
‫Quindi router. route perché qui

162
00:08:49,710 --> 00:08:52,553
‫abbiamo effettivamente bisogno del parametro ID.

163
00:08:55,152 --> 00:09:00,053
‫E ora l'eliminazione è semplicemente reviewController. deleteReview, e non sto scherzando con

164
00:09:02,940 --> 00:09:05,970
‫il permesso qui, né con l'autenticazione perché per

165
00:09:05,970 --> 00:09:07,910
‫ora voglio solo farlo

166
00:09:07,910 --> 00:09:10,190
‫funzionare e preoccuparmi di quella roba

167
00:09:10,190 --> 00:09:13,053
‫un po' più avanti in questa sezione.

168
00:09:14,350 --> 00:09:19,350
‫Ok, quindi chiudiamo questa roba qui.

169
00:09:21,590 --> 00:09:23,623
‫Quindi prendi tutte

170
00:09:26,280 --> 00:09:27,113
‫le

171
00:09:29,300 --> 00:09:33,430
‫recensioni, va bene, salviamo questa e anche questa.

172
00:09:33,430 --> 00:09:35,890
‫In modo che ora possiamo iniziare con un foglio

173
00:09:37,390 --> 00:09:39,710
‫bianco qui e iniziamo semplicemente ottenendo tutte le

174
00:09:39,710 --> 00:09:41,933
‫recensioni, in modo da poterne eliminare una.

175
00:09:42,880 --> 00:09:46,463
‫E quindi eliminiamo, beh, solo questo.

176
00:09:52,663 --> 00:09:55,830
‫Ok, ora abbiamo ovviamente bisogno anche

177
00:10:00,350 --> 00:10:03,563
‫di questo, e poi del metodo delete http.

178
00:10:04,750 --> 00:10:06,900
‫Non abbiamo bisogno di autorizzazione a questo

179
00:10:06,900 --> 00:10:08,840
‫punto, quindi mandiamocela e basta.

180
00:10:08,840 --> 00:10:11,980
‫E infatti nessun contenuto, quindi 204.

181
00:10:11,980 --> 00:10:14,360
‫E se ora otteniamo tutte le

182
00:10:14,360 --> 00:10:16,883
‫recensioni, allora dovremmo tornare ad averne solo tre.

183
00:10:17,730 --> 00:10:22,730
‫Sì, funziona e quindi passiamo al prossimo.

184
00:10:23,340 --> 00:10:26,203
‫Ok, quindi recensioni, recensioni.

185
00:10:28,680 --> 00:10:32,220
‫Prendiamo questa riga di codice qui e ora aggiungiamola finalmente

186
00:10:32,220 --> 00:10:34,183
‫anche al controller utente.

187
00:10:39,130 --> 00:10:42,700
‫Va bene, e ovviamente tutto questo, capisco che sia un

188
00:10:42,700 --> 00:10:45,450
‫po' confuso ora fare confusione con tutti questi

189
00:10:45,450 --> 00:10:47,200
‫diversi file, ma dobbiamo

190
00:10:47,200 --> 00:10:50,190
‫solo farlo una volta e poi abbiamo finito con

191
00:10:50,190 --> 00:10:51,533
‫tutta quella confusione.

192
00:10:52,636 --> 00:10:55,033
‫Quindi qui abbiamo già avuto l'esportazione. deleteUser, ora

193
00:10:55,986 --> 00:11:00,845
‫tutto ciò che dobbiamo fare è chiamare la nostra funzione di

194
00:11:00,845 --> 00:11:03,428
‫fabbrica, quindi deleteOne e poi l'utente.

195
00:11:06,220 --> 00:11:09,140
‫Ora solo l'amministratore dovrebbe essere in grado

196
00:11:09,140 --> 00:11:12,760
‫di eliminare effettivamente gli utenti in seguito perché ricorda

197
00:11:12,760 --> 00:11:14,750
‫che quando l'utente si

198
00:11:14,750 --> 00:11:17,750
‫elimina, in realtà non verranno eliminati ma solo

199
00:11:17,750 --> 00:11:20,350
‫quelli attivi verranno impostati su false.

200
00:11:20,350 --> 00:11:22,400
‫Ma l'amministratore, d'altra parte,

201
00:11:22,400 --> 00:11:25,710
‫sarà davvero in grado di eliminare efficacemente l'utente

202
00:11:25,710 --> 00:11:26,940
‫dal database.

203
00:11:26,940 --> 00:11:28,550
‫Ma ancora una volta, ci

204
00:11:28,550 --> 00:11:31,023
‫occuperemo un po' di quella roba sui permessi.

205
00:11:31,980 --> 00:11:35,487
‫Per ora, controlliamo in userRoutes se la

206
00:11:37,057 --> 00:11:39,210
‫route è effettivamente

207
00:11:39,210 --> 00:11:41,560
‫implementata, e sì, è quaggiù.

208
00:11:41,560 --> 00:11:43,730
‫E quindi poiché ora

209
00:11:43,730 --> 00:11:47,653
‫l'abbiamo implementato, testiamolo anche qui di nuovo anche su Postman.

210
00:11:49,290 --> 00:11:50,983
‫Quindi prima salviamo questo.

211
00:11:54,440 --> 00:11:55,360
‫Così...

212
00:11:56,210 --> 00:11:59,373
‫cancella recensione, e

213
00:12:02,000 --> 00:12:07,000
‫ora copiamo semplicemente questo in un

214
00:12:08,420 --> 00:12:10,910
‫altro percorso.

215
00:12:10,910 --> 00:12:13,063
‫Quindi elimina e poi un utente,

216
00:12:14,340 --> 00:12:16,690
‫ma in realtà non lo farò davvero ora.

217
00:12:17,970 --> 00:12:22,253
‫Tutto ciò che voglio è ottenere un ID casuale.

218
00:12:23,350 --> 00:12:26,703
‫O in realtà creiamo semplicemente un nuovo

219
00:12:27,780 --> 00:12:31,323
‫utente, quindi in pratica iscriviti e poi cancellalo subito.

220
00:12:32,500 --> 00:12:35,563
‫Quindi ciao, così.

221
00:12:38,690 --> 00:12:43,360
‫Ottieni tutti gli utenti, e poi c'è questo tizio qui.

222
00:12:43,360 --> 00:12:46,963
‫E quindi eliminiamolo subito, quindi inviamo,

223
00:12:48,310 --> 00:12:51,560
‫non otteniamo alcun contenuto.

224
00:12:51,560 --> 00:12:53,833
‫E, naturalmente, ora dovrebbe essere sparito.

225
00:12:54,840 --> 00:12:56,740
‫Ora, se proviamo a vederla di

226
00:12:56,740 --> 00:12:58,680
‫nuovo, quindi fondamentalmente cercando di eliminare un

227
00:12:58,680 --> 00:13:01,320
‫utente che non c'è più, dovremmo ricevere un errore.

228
00:13:01,320 --> 00:13:04,673
‫Quindi diamo un'occhiata, e in effetti nessun documento

229
00:13:04,673 --> 00:13:06,330
‫trovato con quell'ID.

230
00:13:06,330 --> 00:13:09,203
‫E quindi questo significa che nella nostra

231
00:13:10,570 --> 00:13:15,550
‫funzione di fabbrica, quindi proprio qui, tutto questo AppError e catchAsync, tutto questo

232
00:13:15,550 --> 00:13:17,240
‫è ancora intatto.

233
00:13:17,240 --> 00:13:20,490
‫Quindi tutto funziona ancora come prima.

234
00:13:20,490 --> 00:13:23,283
‫Ora, anche questo era importante da testare qui.

235
00:13:25,670 --> 00:13:27,860
‫Salviamo rapidamente anche questo qui,

236
00:13:27,860 --> 00:13:31,660
‫quindi ogni singolo endpoint che stiamo implementando, lo aggiungo

237
00:13:31,660 --> 00:13:33,810
‫anche qui in Postman

238
00:13:33,810 --> 00:13:36,890
‫perché un po' più tardi saremo effettivamente in

239
00:13:36,890 --> 00:13:39,420
‫grado di creare effettivamente della documentazione

240
00:13:39,420 --> 00:13:43,970
‫API basata su tutti questo che abbiamo salvato qui a Postman.

241
00:13:43,970 --> 00:13:47,713
‫Quindi questa è un'altra caratteristica utile di questa applicazione.

242
00:13:50,253 --> 00:13:51,960
‫Quindi abbiamo eliminato l'utente corrente,

243
00:13:51,960 --> 00:13:54,520
‫e ancora una volta è diverso dall'eliminazione

244
00:13:54,520 --> 00:13:56,800
‫dell'utente perché questo qui è per

245
00:13:56,800 --> 00:13:59,803
‫l'amministrazione e questo è per l'utente attualmente connesso, quindi

246
00:14:00,820 --> 00:14:01,963
‫molto diverso.

247
00:14:03,320 --> 00:14:06,750
‫Ok, questa è stata la nostra prima funzione di fabbrica

248
00:14:06,750 --> 00:14:09,660
‫solo per l'eliminazione e solo per farti capire

249
00:14:09,660 --> 00:14:11,290
‫il concetto stesso.

250
00:14:11,290 --> 00:14:13,740
‫Successivamente, implementeremo le funzioni di fabbrica

251
00:14:13,740 --> 00:14:16,293
‫per l'aggiornamento e la creazione di documenti.

