﻿1
00:00:01,130 --> 00:00:04,270
‫Jonas: Lassen Sie uns weiterhin einige Factory-Funktionen

2
00:00:04,270 --> 00:00:07,793
‫erstellen, diesmal zum Aktualisieren und zum Erstellen einiger Ressourcen.

3
00:00:09,280 --> 00:00:11,750
‫Da wir jetzt bereits wissen, wie es

4
00:00:11,750 --> 00:00:14,640
‫funktioniert, ist es wirklich einfach, dasselbe für die

5
00:00:14,640 --> 00:00:15,543
‫Aktualisierung fortzusetzen.

6
00:00:16,660 --> 00:00:18,413
‫Also Exporte. updateOne,

7
00:00:21,200 --> 00:00:24,520
‫und lassen Sie uns den Code erneut

8
00:00:24,520 --> 00:00:25,993
‫vom Tour-Controller kopieren.

9
00:00:27,330 --> 00:00:28,832
‫Okay.

10
00:00:28,832 --> 00:00:30,740
‫Und wir haben jetzt eine

11
00:00:30,740 --> 00:00:33,022
‫Menge Dateien geöffnet, weil wir sie

12
00:00:33,022 --> 00:00:34,573
‫alle gleichzeitig ändern.

13
00:00:36,860 --> 00:00:40,253
‫Also kopieren wir das und fügen

14
00:00:42,110 --> 00:00:43,850
‫es hier ein.

15
00:00:43,850 --> 00:00:46,953
‫Was uns also interessiert, ist wieder dieser Teil.

16
00:00:49,130 --> 00:00:50,530
‫Okay.

17
00:00:50,530 --> 00:00:53,950
‫Und jetzt müssen wir natürlich diese Factory-Funktion erstellen, weil

18
00:00:53,950 --> 00:00:56,130
‫wir dies nicht zurückgeben möchten.

19
00:00:56,130 --> 00:00:58,120
‫Stattdessen wollen wir eine

20
00:00:58,120 --> 00:01:01,210
‫Funktion zurückgeben, die dann wiederum dies zurückgibt.

21
00:01:01,210 --> 00:01:02,043
‫Rechts?

22
00:01:04,000 --> 00:01:06,240
‫Das ist also ganz einfach.

23
00:01:06,240 --> 00:01:09,480
‫Wir verwenden eine einfache Pfeilfunktion, bei der wir das

24
00:01:09,480 --> 00:01:13,300
‫Modell übergeben und dann implizit alles zurückgeben, was nach dem Pfeil kommt.

25
00:01:13,300 --> 00:01:14,773
‫Also, all das.

26
00:01:15,830 --> 00:01:16,663
‫Gut.

27
00:01:17,690 --> 00:01:21,010
‫Lassen Sie uns also wie zuvor das spezifische

28
00:01:21,010 --> 00:01:22,460
‫Modell durch ein

29
00:01:22,460 --> 00:01:26,453
‫allgemeines ersetzen und dann all dies hier durch document ersetzen.

30
00:01:27,500 --> 00:01:31,030
‫Oder eigentlich mit doc, wie wir es vorher gemacht haben.

31
00:01:31,030 --> 00:01:32,443
‫Und hier ist es

32
00:01:33,640 --> 00:01:36,640
‫kein Dokument, und hier unten, wo wir die Daten

33
00:01:36,640 --> 00:01:39,730
‫tatsächlich senden, wäre es schön, ihm den Eigenschaftsnamen der Daten

34
00:01:39,730 --> 00:01:41,370
‫zu geben, die wir senden.

35
00:01:41,370 --> 00:01:46,370
‫Zum Beispiel Rezensionen und dann das Dokument oder Touren.

36
00:01:48,340 --> 00:01:49,173
‫Okay.

37
00:01:49,173 --> 00:01:52,600
‫Aber das ist im Moment ein bisschen zu viel Arbeit, um es umzusetzen.

38
00:01:52,600 --> 00:01:55,630
‫Und so belasse ich es einfach so, wo

39
00:01:55,630 --> 00:01:57,670
‫ich wieder Daten gesendet habe.

40
00:01:57,670 --> 00:01:58,660
‫Gut.

41
00:01:58,660 --> 00:02:00,010
‫So gingen unsere Daten

42
00:02:00,010 --> 00:02:02,600
‫hierher, und dann wird der Umschlag dort

43
00:02:02,600 --> 00:02:03,923
‫wieder Daten heißen.

44
00:02:05,610 --> 00:02:06,443
‫Gut.

45
00:02:06,443 --> 00:02:08,650
‫Und so sollte das

46
00:02:08,650 --> 00:02:12,240
‫jetzt funktionieren, weil alles andere wirklich gleich ist.

47
00:02:12,240 --> 00:02:15,936
‫Und so können wir weitermachen, all das loswerden

48
00:02:15,936 --> 00:02:17,320
‫und einfach Fabrik

49
00:02:18,420 --> 00:02:20,137
‫sagen. updateOne, geben

50
00:02:22,260 --> 00:02:24,993
‫Sie das Tour-Modell ein und machen Sie Schluss.

51
00:02:26,910 --> 00:02:28,060
‫Gut?

52
00:02:28,060 --> 00:02:29,323
‫Also ganz einfach.

53
00:02:30,530 --> 00:02:32,643
‫Als nächstes das gleiche für die Benutzer.

54
00:02:33,938 --> 00:02:36,920
‫Wir haben also wieder updateUser.

55
00:02:36,920 --> 00:02:39,190
‫Diese Route ist noch nicht implementiert.

56
00:02:39,190 --> 00:02:42,790
‫Also ersetzen wir das alles hier einfach

57
00:02:42,790 --> 00:02:45,237
‫durch unsere Werksfunktion updateOne.

58
00:02:46,800 --> 00:02:47,850
‫Gut.

59
00:02:47,850 --> 00:02:51,030
‫Und so ist diese updateUser-Funktion nach wie

60
00:02:51,030 --> 00:02:53,600
‫vor nur für Administratoren, okay?

61
00:02:53,600 --> 00:02:56,640
‫Und nur zum Aktualisieren von Daten, bei denen es

62
00:02:56,640 --> 00:03:01,640
‫sich nicht um das Passwort handelt, denn denken Sie daran, wann immer wir es verwenden,

63
00:03:01,710 --> 00:03:05,240
‫wo ist das, also wenn wir findById und aktualisieren verwenden,

64
00:03:05,240 --> 00:03:07,890
‫wird nicht die gesamte sichere Middleware ausgeführt.

65
00:03:07,890 --> 00:03:11,160
‫Denken Sie also daran, wie wir ein paar Mal darüber gesprochen haben.

66
00:03:11,160 --> 00:03:12,990
‫Daher ist es

67
00:03:12,990 --> 00:03:17,498
‫noch einmal sehr wichtig, dass wir hier nicht versuchen, Passwörter

68
00:03:17,498 --> 00:03:19,710
‫mit diesem updateUser zu ändern.

69
00:03:19,710 --> 00:03:20,810
‫Okay?

70
00:03:20,810 --> 00:03:22,360
‫Lass uns das hier wirklich schreiben.

71
00:03:27,640 --> 00:03:28,473
‫Mit diesem.

72
00:03:30,070 --> 00:03:30,903
‫Groß.

73
00:03:30,903 --> 00:03:32,460
‫Und jetzt, endlich, legen

74
00:03:32,460 --> 00:03:34,593
‫wir es auch in den Review-Controller.

75
00:03:36,700 --> 00:03:37,533
‫Gut.

76
00:03:38,420 --> 00:03:40,507
‫Also Exporte. updateReview

77
00:03:50,830 --> 00:03:53,260
‫und dann unser Review.

78
00:03:53,260 --> 00:03:55,060
‫Das ist also ganz einfach.

79
00:03:55,060 --> 00:03:58,573
‫Lassen Sie uns nun diese Routen auch zu Postman hinzufügen.

80
00:04:00,210 --> 00:04:01,703
‫Wir haben also

81
00:04:02,840 --> 00:04:07,840
‫Delete Review und fügen es jetzt einfach als PATCH hier hinzu.

82
00:04:08,020 --> 00:04:10,830
‫Und die Sache, die wir auch noch brauchen, um die

83
00:04:10,830 --> 00:04:12,280
‫Route im Testrouter zu implementieren.

84
00:04:12,280 --> 00:04:14,130
‫Also machen wir das auch.

85
00:04:14,130 --> 00:04:19,130
‫Aber zuerst werde ich es hier in Rezensionen speichern.

86
00:04:22,730 --> 00:04:25,443
‫Also Review aktualisieren.

87
00:04:28,090 --> 00:04:31,263
‫Hier, in den Review-Routen, sollten wir

88
00:04:32,270 --> 00:04:35,223
‫also die Patch-Methode hinzufügen und dann

89
00:04:37,580 --> 00:04:39,203
‫reviewController. updateReview.

90
00:04:44,610 --> 00:04:45,443
‫Gut.

91
00:04:47,950 --> 00:04:51,410
‫Schauen wir uns also eine dieser Bewertungen

92
00:04:51,410 --> 00:04:55,913
‫hier an, sagen wir diese und aktualisieren die Bewertung auf vier.

93
00:04:57,270 --> 00:04:58,103
‫Okay.

94
00:05:00,470 --> 00:05:01,783
‫Also der Körper,

95
00:05:09,060 --> 00:05:10,700
‫stell ihn auf vier.

96
00:05:10,700 --> 00:05:12,093
‫Und senden Sie es jetzt.

97
00:05:13,760 --> 00:05:18,530
‫Okay, und wie wir sehen können, bekommen wir unsere neue Rezension

98
00:05:18,530 --> 00:05:22,070
‫mit der aktualisierten Bewertung zurück, genau wie erwartet.

99
00:05:22,070 --> 00:05:24,950
‫Und wieder kümmern wir uns etwas später in diesem

100
00:05:24,950 --> 00:05:26,300
‫Abschnitt um die Autorisierung.

101
00:05:27,282 --> 00:05:29,963
‫Im Moment wollte ich das nur zum Laufen bringen.

102
00:05:32,280 --> 00:05:37,280
‫Also Benutzer, lassen Sie uns jetzt auch Benutzer aktualisieren.

103
00:05:38,100 --> 00:05:38,933
‫Okay?

104
00:05:42,640 --> 00:05:45,963
‫Also GET und PATCH.

105
00:05:47,930 --> 00:05:49,583
‫Lassen Sie uns hier alle Benutzer abrufen.

106
00:05:53,970 --> 00:05:55,383
‫Sagen wir diesen.

107
00:06:04,991 --> 00:06:06,413
‫Und ändern wir

108
00:06:09,600 --> 00:06:10,640
‫den

109
00:06:10,640 --> 00:06:14,443
‫Namen in Administrator, der vorher einfach admin war.

110
00:06:15,680 --> 00:06:16,513
‫Gut?

111
00:06:18,420 --> 00:06:21,960
‫Und so hat auch dieser funktioniert.

112
00:06:21,960 --> 00:06:26,010
‫Okay, also noch einmal, ich speichere das alles hier in meiner Sammlung,

113
00:06:26,010 --> 00:06:27,320
‫weil ich dann,

114
00:06:27,320 --> 00:06:29,880
‫etwas später, tatsächlich eine Dokumentation aus all

115
00:06:29,880 --> 00:06:32,673
‫diesen Sammlungsdaten erstellen kann, die wir hier haben.

116
00:06:35,330 --> 00:06:36,863
‫Also Update User,

117
00:06:39,370 --> 00:06:42,740
‫füge das hier ein und dieses hier.

118
00:06:42,740 --> 00:06:43,710
‫Perfekt.

119
00:06:43,710 --> 00:06:46,800
‫Das Aktualisieren von Benutzern funktioniert jetzt

120
00:06:46,800 --> 00:06:50,350
‫für alle unsere drei Ressourcen mithilfe der Factory-Funktion.

121
00:06:50,350 --> 00:06:52,980
‫Lassen Sie uns also fortfahren und das nächste

122
00:06:52,980 --> 00:06:54,767
‫hinzufügen, das createOne sein wird.

123
00:06:57,979 --> 00:06:59,770
‫Also exportiert, createOne.

124
00:07:03,290 --> 00:07:04,983
‫Und wieder übergeben wir das Modell.

125
00:07:05,840 --> 00:07:07,820
‫Und daraus erstellen wir eine neue Funktion.

126
00:07:07,820 --> 00:07:09,280
‫Und das kann es tatsächlich

127
00:07:09,280 --> 00:07:11,103
‫noch einmal von der Tour hier kopieren.

128
00:07:14,880 --> 00:07:15,713
‫Gut.

129
00:07:17,420 --> 00:07:21,373
‫Also brauchen wir hier nur diesen Teil.

130
00:07:23,580 --> 00:07:27,400
‫Also modellieren und dokumentieren.

131
00:07:27,400 --> 00:07:30,897
‫Und hier unten nennen wir es wieder Daten.

132
00:07:30,897 --> 00:07:32,450
‫Gut.

133
00:07:32,450 --> 00:07:34,890
‫Und so ist es tatsächlich.

134
00:07:34,890 --> 00:07:36,620
‫Das ist unsere Fabrikfunktion.

135
00:07:36,620 --> 00:07:40,253
‫Und so kommen wir noch einmal hierher und ersetzen es.

136
00:07:41,830 --> 00:07:44,377
‫Also Fabrik. createOne, Tour.

137
00:07:48,860 --> 00:07:51,910
‫Sie sehen also, dass unser Code

138
00:07:51,910 --> 00:07:55,040
‫in den Controllern jetzt wirklich sauber wird, oder?

139
00:07:55,040 --> 00:07:57,970
‫Aber eigentlich werden wir nicht alle Funktionen,

140
00:07:57,970 --> 00:08:01,710
‫die wir hier haben, durch Fabriken ersetzen können, denn

141
00:08:01,710 --> 00:08:03,670
‫sonst bräuchten wir diese Controller-Datei

142
00:08:03,670 --> 00:08:05,480
‫nicht einmal, oder?

143
00:08:05,480 --> 00:08:08,750
‫Wir könnten diese Handler dann einfach im Handumdrehen erstellen,

144
00:08:08,750 --> 00:08:11,270
‫im Grunde in der Router-Datei, oder?

145
00:08:11,270 --> 00:08:13,947
‫Und so könnten wir diesen gesamten Schritt

146
00:08:13,947 --> 00:08:16,320
‫der Controller-Datei im Grunde überspringen.

147
00:08:16,320 --> 00:08:17,600
‫Aber auch hier brauchen wir es

148
00:08:17,600 --> 00:08:19,730
‫immer noch, weil wir noch einige andere Sachen drin haben.

149
00:08:19,730 --> 00:08:23,080
‫Zum Beispiel diese Methoden hier,

150
00:08:23,080 --> 00:08:27,418
‫um die Tourstatistiken zu erhalten, oder dieser

151
00:08:27,418 --> 00:08:29,560
‫Monatsplan und ja.

152
00:08:29,560 --> 00:08:33,750
‫Es ist also sinnvoll, diese Datei tatsächlich aufzubewahren, okay?

153
00:08:33,750 --> 00:08:35,130
‫Als nächstes brauchen

154
00:08:35,130 --> 00:08:37,930
‫wir also für die Benutzer das createOne eigentlich nicht,

155
00:08:37,930 --> 00:08:39,460
‫weil wir zum Anlegen neuer

156
00:08:39,460 --> 00:08:41,630
‫Benutzer bereits die Anmeldefunktion haben, und

157
00:08:41,630 --> 00:08:44,290
‫wir können dies nicht wirklich durch eine Fabrik

158
00:08:44,290 --> 00:08:47,240
‫ersetzen, da sie sich wirklich von dieser generischen unterscheidet.

159
00:08:47,240 --> 00:08:48,073
‫Okay?

160
00:08:49,150 --> 00:08:54,140
‫Aber wir können es im Review-Controller tun, okay?

161
00:08:54,140 --> 00:08:58,230
‫Im Grunde wollen wir also dieses createReview ersetzen.

162
00:08:58,230 --> 00:08:59,990
‫Jetzt sehen Sie auch, dass

163
00:08:59,990 --> 00:09:01,840
‫wir in diesem einen zusätzlichen Schritt haben.

164
00:09:01,840 --> 00:09:04,170
‫Wir haben also diesen Code,

165
00:09:04,170 --> 00:09:07,330
‫der auch nicht in unserer generischen createOne-Funktion enthalten ist.

166
00:09:07,330 --> 00:09:09,165
‫Und wie können wir das beheben?

167
00:09:09,165 --> 00:09:11,800
‫Nun, wir können tatsächlich eine

168
00:09:11,800 --> 00:09:15,610
‫Middleware erstellen, die vor dem createReview ausgeführt wird, okay?

169
00:09:15,610 --> 00:09:19,170
‫Und damit ist es eigentlich auch etwas entkoppelter.

170
00:09:19,170 --> 00:09:22,610
‫Im Grunde hat dieser Code hier also eine eigene

171
00:09:22,610 --> 00:09:23,960
‫Funktion und

172
00:09:23,960 --> 00:09:26,430
‫ist wirklich von createReview entkoppelt, da er

173
00:09:26,430 --> 00:09:28,550
‫eigentlich nicht viel mit der Erstellung

174
00:09:28,550 --> 00:09:30,400
‫des Reviews zu tun hat.

175
00:09:30,400 --> 00:09:32,630
‫Es legt einfach einige Daten fest, oder?

176
00:09:32,630 --> 00:09:37,627
‫Nennen wir dies also Set-Tour und Benutzer-IDs.

177
00:09:41,720 --> 00:09:44,173
‫Also Anfrage, ah, die Antwort fehlt.

178
00:09:47,200 --> 00:09:48,504
‫Okay?

179
00:09:48,504 --> 00:09:50,110
‫Und alles, was wir

180
00:09:50,110 --> 00:09:53,730
‫hier tun werden, ist, diese IDs im Grunde auf den Körper zu

181
00:09:53,730 --> 00:09:56,100
‫setzen und dann direkt zur nächsten Middleware zu

182
00:09:56,100 --> 00:09:58,660
‫wechseln, wo dann die Überprüfung tatsächlich erstellt wird.

183
00:09:58,660 --> 00:09:59,650
‫In Ordung?

184
00:09:59,650 --> 00:10:01,350
‫Bevor wir es

185
00:10:01,350 --> 00:10:04,430
‫also vergessen, fügen wir diese Middleware tatsächlich hinzu.

186
00:10:04,430 --> 00:10:08,993
‫In den Bewertungsrouten ist es also gleich hier in der Post.

187
00:10:10,780 --> 00:10:13,467
‫Also checkController, setTourUserIds.

188
00:10:15,700 --> 00:10:16,533
‫Okay?

189
00:10:16,533 --> 00:10:20,073
‫Also noch eine weitere Middleware-Funktion in diesem Stack.

190
00:10:22,020 --> 00:10:22,853
‫Okay.

191
00:10:22,853 --> 00:10:26,620
‫Wie auch immer, lassen Sie uns dann das, was wir

192
00:10:26,620 --> 00:10:28,610
‫hier haben, loswerden, weil

193
00:10:28,610 --> 00:10:32,300
‫dies leicht durch unsere Werksfunktion ersetzt werden kann, noch einmal.

194
00:10:32,300 --> 00:10:37,300
‫Also createOne, dann Review, und das war's.

195
00:10:39,660 --> 00:10:40,493
‫Okay.

196
00:10:41,540 --> 00:10:43,483
‫Und nur um zu testen, ob

197
00:10:44,740 --> 00:10:47,883
‫das noch funktioniert, erstellen wir einfach eine neue Rezension auf Tour.

198
00:10:49,656 --> 00:10:50,489
‫Okay?

199
00:10:50,489 --> 00:10:52,463
‫Und dafür brauchen wir die Tour-IDs, sagen

200
00:10:54,120 --> 00:10:55,903
‫wir also auch Get All Tours.

201
00:10:58,310 --> 00:11:02,500
‫Und jetzt bekommen wir, dass der zugehörige Benutzer nicht mehr existiert, also lass uns

202
00:11:02,500 --> 00:11:04,600
‫einfach weitermachen und uns erneut einloggen.

203
00:11:06,020 --> 00:11:07,753
‫Holen Sie sich also hier ein neues Token.

204
00:11:08,600 --> 00:11:10,933
‫Also, los geht's, als Admin.

205
00:11:12,253 --> 00:11:16,490
‫Also jetzt, Get All Tours, los geht's.

206
00:11:16,490 --> 00:11:19,423
‫Wählen wir einfach einen davon aus.

207
00:11:20,330 --> 00:11:21,980
‫Sagen wir also, The Forest Hiker.

208
00:11:21,980 --> 00:11:25,720
‫Ich denke, dieser hier hat bereits einige Bewertungen, nicht wahr?

209
00:11:25,720 --> 00:11:26,830
‫Oh nein, tut es nicht.

210
00:11:26,830 --> 00:11:29,343
‫Dieser ist also ein guter, um ihn jetzt auszuprobieren.

211
00:11:30,539 --> 00:11:34,773
‫Erstellen Sie also eine neue Bewertung auf Tour.

212
00:11:35,930 --> 00:11:39,110
‫Denken Sie daran, dass wir hier die ID ändern müssen.

213
00:11:39,110 --> 00:11:40,610
‫Und jetzt können wir

214
00:11:40,610 --> 00:11:43,520
‫diese Rezension nur mit der Bewertung und der Rezension veröffentlichen.

215
00:11:43,520 --> 00:11:45,330
‫Aber ich denke, es

216
00:11:45,330 --> 00:11:48,260
‫wird tatsächlich nicht funktionieren, weil wir als Administrator

217
00:11:48,260 --> 00:11:51,410
‫angemeldet sind und nur normale Benutzer Bewertungen abgeben können.

218
00:11:51,410 --> 00:11:52,243
‫Okay?

219
00:11:54,550 --> 00:11:57,163
‫Okay, also lass uns das hier noch machen.

220
00:11:58,810 --> 00:11:59,963
‫Unglaublich.

221
00:12:01,270 --> 00:12:04,850
‫Aber wir werden diesen Fehler bekommen, den ich gerade gesagt habe.

222
00:12:04,850 --> 00:12:07,850
‫Sie haben also keine Berechtigung zum Ausführen.

223
00:12:07,850 --> 00:12:09,620
‫Daher müssen wir

224
00:12:09,620 --> 00:12:12,670
‫uns erneut anmelden, diesmal als anderer Benutzer.

225
00:12:12,670 --> 00:12:16,093
‫Und schauen wir uns an, welche wir tatsächlich haben.

226
00:12:20,010 --> 00:12:21,110
‫Ah, okay.

227
00:12:21,110 --> 00:12:23,433
‫Verwenden wir also einfach test.

228
00:12:25,100 --> 00:12:28,563
‫Oder vielleicht war test derjenige mit dem falschen Passwort.

229
00:12:30,020 --> 00:12:30,963
‫Aber mal sehen.

230
00:12:33,477 --> 00:12:34,310
‫Oh ja.

231
00:12:34,310 --> 00:12:36,473
‫Experimentieren wir also mit testuser.

232
00:12:39,206 --> 00:12:40,290
‫Und dieser funktioniert.

233
00:12:40,290 --> 00:12:43,700
‫Und so können wir eigentlich dieses andere löschen,

234
00:12:43,700 --> 00:12:47,063
‫weil ich irgendwie sein Passwort vergessen habe.

235
00:12:48,890 --> 00:12:50,137
‫Okay.

236
00:12:50,137 --> 00:12:51,060
‫Und das ist in diesem Fall kein Problem.

237
00:12:51,060 --> 00:12:54,110
‫Wir können Benutzer einfach nach Belieben löschen, da wir uns

238
00:12:54,110 --> 00:12:56,012
‫erst in der Entwicklung befinden.

239
00:12:56,012 --> 00:12:57,200
‫Okay?

240
00:12:57,200 --> 00:13:00,203
‫Jetzt sollten wir in der Lage sein, diese Bewertung tatsächlich hinzuzufügen.

241
00:13:02,930 --> 00:13:05,310
‫Und tatsächlich, los geht's.

242
00:13:05,310 --> 00:13:06,143
‫Perfekt.

243
00:13:06,143 --> 00:13:08,560
‫Damit ist dieser Vortrag abgeschlossen.

244
00:13:08,560 --> 00:13:10,200
‫Alles, was wir im nächsten

245
00:13:10,200 --> 00:13:12,160
‫tun müssen, ist dann die Factory-Funktionen

246
00:13:12,160 --> 00:13:15,490
‫zu erstellen, um eine zu erhalten und alle Dokumente einer

247
00:13:15,490 --> 00:13:16,973
‫bestimmten Ressource zu erhalten.

