﻿1
00:00:01,010 --> 00:00:03,970
‫Instruktur: Baiklah, dan sekarang hanya untuk menyelesaikan bagian

2
00:00:03,970 --> 00:00:07,183
‫ini, mari kita buat beberapa pabrik untuk mendapatkan dokumen.

3
00:00:08,740 --> 00:00:11,963
‫Dan mari kita mulai dengan getOne di sini, oke?

4
00:00:12,910 --> 00:00:17,910
‫Ekspor. getOne, tapi yang ini sebenarnya sedikit lebih

5
00:00:18,580 --> 00:00:20,690
‫rumit, dan itu karena kita memiliki

6
00:00:20,690 --> 00:00:22,710
‫populasi di handler getTour.

7
00:00:22,710 --> 00:00:24,803
‫Jadi, mari kita lihat itu.

8
00:00:25,900 --> 00:00:30,090
‫Jadi, di sini, di sini, kita memiliki populasi ini di sini,

9
00:00:30,090 --> 00:00:32,570
‫yang berbeda dari semua penangan

10
00:00:32,570 --> 00:00:35,220
‫get lainnya di sumber daya lainnya, bukan?

11
00:00:35,220 --> 00:00:37,620
‫Tapi, yah, ini sebenarnya

12
00:00:37,620 --> 00:00:40,670
‫bukan masalah karena kita hanya akan membiarkan

13
00:00:40,670 --> 00:00:45,670
‫diri kita memasukkan objek pilihan yang terisi ke fungsi getOne kita, oke?

14
00:00:48,030 --> 00:00:50,840
‫Jadi, alih-alih hanya meneruskan

15
00:00:50,840 --> 00:00:55,700
‫model, kami juga akan mengisi, jadi opsi, baiklah.

16
00:00:57,890 --> 00:01:00,370
‫Jadi, dari sini kita akan mengembalikan

17
00:01:00,370 --> 00:01:02,053
‫fungsi handler normal.

18
00:01:03,360 --> 00:01:06,563
‫Jadi, mari kita lanjutkan dan salin lagi semua

19
00:01:10,850 --> 00:01:11,683
‫ini, oke.

20
00:01:13,730 --> 00:01:15,330
‫Jadi, kita tidak membutuhkan yang ini di sini.

21
00:01:17,690 --> 00:01:19,743
‫Lalu di sini, seperti biasa,

22
00:01:23,140 --> 00:01:25,800
‫ini adalah modelnya, dan ini dia doc.

23
00:01:25,800 --> 00:01:27,993
‫Nah, sebenarnya di sini, dokumen,

24
00:01:30,520 --> 00:01:33,850
‫dan di sini, sekali lagi, data sama dengan doc.

25
00:01:33,850 --> 00:01:36,210
‫Sekarang, kita juga perlu membuat beberapa

26
00:01:36,210 --> 00:01:38,390
‫perubahan di sini sekarang karena

27
00:01:38,390 --> 00:01:41,610
‫populasi ini, jadi pada dasarnya, pertama-tama kita akan

28
00:01:41,610 --> 00:01:44,950
‫membuat kueri, dan kemudian, jika ada objek opsi

29
00:01:44,950 --> 00:01:46,550
‫populasi, kita akan

30
00:01:46,550 --> 00:01:50,810
‫menambahkannya ke kueri, dan kemudian dengan akhir, tunggu pertanyaan itu, oke?

31
00:01:50,810 --> 00:01:51,643
‫Masuk akal?

32
00:01:53,390 --> 00:01:55,890
‫Jadi, mari kita terjemahkan apa yang baru saja saya katakan.

33
00:01:55,890 --> 00:02:00,773
‫Jadi, kuerinya sama dengan Model. findById, seperti ini,

34
00:02:02,770 --> 00:02:04,993
‫kan?

35
00:02:06,630 --> 00:02:10,980
‫Kemudian, jika ada objek pilihan yang terisi,

36
00:02:10,980 --> 00:02:12,193
‫maka

37
00:02:13,420 --> 00:02:15,020
‫dalam hal ini,

38
00:02:15,020 --> 00:02:20,020
‫kueri akan menjadi kueri. isi dengan opsi isi, oke?

39
00:02:24,410 --> 00:02:27,370
‫Dan kemudian, akhirnya kami menunggu permintaan kami, dan

40
00:02:27,370 --> 00:02:28,853
‫menyimpannya di dokumen.

41
00:02:30,010 --> 00:02:35,010
‫Jadi, tunggu pertanyaannya seperti ini, oke.

42
00:02:36,210 --> 00:02:38,660
‫Dan, itu sebenarnya.

43
00:02:38,660 --> 00:02:40,360
‫Jadi, logika yang kita

44
00:02:40,360 --> 00:02:43,200
‫miliki di sini dengan tidak menunggu kueri segera,

45
00:02:43,200 --> 00:02:45,300
‫melainkan hanya menyimpannya ke dalam

46
00:02:45,300 --> 00:02:48,220
‫variabel, sehingga kita dapat, pada langkah berikutnya, memanipulasinya.

47
00:02:48,220 --> 00:02:50,770
‫Kami sebenarnya sudah melakukan hal semacam

48
00:02:50,770 --> 00:02:54,020
‫ini sebelumnya ketika kami membangun fitur API kami, bukan?

49
00:02:54,020 --> 00:02:57,210
‫Jadi, hanya pada akhirnya, ketika seluruh kueri sudah siap, kami

50
00:02:57,210 --> 00:03:00,563
‫kemudian akan menunggunya dan menyimpannya di suatu tempat dalam sebuah variabel.

51
00:03:02,260 --> 00:03:06,600
‫Sekarang, mari kita lanjutkan dan benar-benar menggunakan yang ini di mana-mana,

52
00:03:06,600 --> 00:03:08,803
‫tentu saja dimulai dengan Tur.

53
00:03:10,470 --> 00:03:12,170
‫Jadi, getTour sekarang akan

54
00:03:13,670 --> 00:03:15,473
‫menjadi pabrik. getOne,

55
00:03:18,260 --> 00:03:20,900
‫dan berikan objek Tour

56
00:03:20,900 --> 00:03:24,440
‫dan isi opsi, ingat itu?

57
00:03:24,440 --> 00:03:29,440
‫Jadi, apa yang akan kita lakukan adalah mengatakan jalur dan ulasan.

58
00:03:31,590 --> 00:03:35,540
‫Benar, jadi ingat bahwa properti path pada dasarnya adalah

59
00:03:35,540 --> 00:03:37,720
‫bidang yang ingin kita

60
00:03:37,720 --> 00:03:40,950
‫isi, dan kemudian kita juga dapat menentukan pilih,

61
00:03:40,950 --> 00:03:43,750
‫jadi ingat yang ini, di mana

62
00:03:43,750 --> 00:03:47,770
‫kita menentukan bidang mana yang sebenarnya ingin kita dapatkan, bukan?

63
00:03:47,770 --> 00:03:48,603
‫Tapi dalam

64
00:03:48,603 --> 00:03:50,050
‫kasus ini, kita tidak memiliki

65
00:03:50,050 --> 00:03:51,900
‫semua itu, jadi biarkan saja seperti ini.

66
00:03:53,180 --> 00:03:57,723
‫Dan sekarang, kita benar-benar dapat melanjutkan dan menghapus semua ini.

67
00:03:58,910 --> 00:04:00,570
‫Sangat bagus.

68
00:04:00,570 --> 00:04:03,473
‫Dan, untuk memastikan, mari kita uji ini dengan cepat.

69
00:04:06,200 --> 00:04:07,963
‫Jadi, kami akan mendapatkan Tur tertentu,

70
00:04:10,880 --> 00:04:12,630
‫dan, memang, itu masih berfungsi.

71
00:04:12,630 --> 00:04:15,503
‫Mari kita lihat apakah yang satu ini memiliki beberapa ulasan.

72
00:04:16,630 --> 00:04:19,210
‫Oh, ya, sebenarnya ada,

73
00:04:19,210 --> 00:04:22,993
‫dan Anda lihat proses populasi juga masih berjalan.

74
00:04:24,920 --> 00:04:28,177
‫Jadi, itu berhasil, saya akan mengatakan.

75
00:04:28,177 --> 00:04:30,870
‫Jadi, sekarang mari juga gunakan getOne ini di

76
00:04:30,870 --> 00:04:32,710
‫semua sumber daya lainnya.

77
00:04:32,710 --> 00:04:36,833
‫Jadi, pengontrol pengguna di sini di mana kita miliki, mari kita lihat di

78
00:04:38,200 --> 00:04:40,603
‫mana itu, ah, di bawah sini.

79
00:04:43,760 --> 00:04:47,047
‫Jadi, katakanlah pabrik. getOne, tetapi

80
00:04:48,930 --> 00:04:52,290
‫hanya dengan model pengguna, dan tidak ada

81
00:04:52,290 --> 00:04:54,343
‫objek opsi yang terisi.

82
00:04:56,900 --> 00:04:58,740
‫Oke, dan karena kita

83
00:04:58,740 --> 00:05:02,030
‫di sini, mari kita ubah pesan kesalahan di

84
00:05:02,030 --> 00:05:03,850
‫sini untuk membuat

85
00:05:03,850 --> 00:05:07,583
‫pengguna, jadi rute ini tidak ditentukan, tidak akan pernah,

86
00:05:08,980 --> 00:05:11,703
‫dan silakan gunakan pendaftaran sebagai gantinya.

87
00:05:17,010 --> 00:05:19,110
‫Selanjutnya, dan akhirnya,

88
00:05:19,110 --> 00:05:23,410
‫hal yang sama untuk ulasan pada dasarnya.

89
00:05:23,410 --> 00:05:25,063
‫Jadi, ekspor. getReview adalah

90
00:05:29,018 --> 00:05:31,427
‫pabrik yang sama. getOne review,

91
00:05:35,450 --> 00:05:40,193
‫dan saya pikir kami belum memiliki (bergumam) rute kami dulu.

92
00:05:41,360 --> 00:05:46,357
‫Dan, memang, kami tidak melakukannya, jadi tambahkan ini dengan sangat cepat

93
00:05:46,357 --> 00:05:49,107
‫di sini, reviewController. dapatkan Review, oke?

94
00:05:54,300 --> 00:05:56,423
‫Mari kita cepat menguji yang ini

95
00:05:58,870 --> 00:06:01,300
‫juga, hanya karena saya juga ingin menambahkannya di

96
00:06:01,300 --> 00:06:03,203
‫sini ke Tukang Pos, oke?

97
00:06:04,950 --> 00:06:08,453
‫Jadi, tiru saja yang ini karena mirip, dan

98
00:06:10,560 --> 00:06:12,393
‫kemudian, memang, itu dapat.

99
00:06:15,300 --> 00:06:20,300
‫Dan, ya, berfungsi dengan baik, simpan di sini di ulasan, dan

100
00:06:23,730 --> 00:06:24,987
‫dapatkan Ulasan.

101
00:06:28,258 --> 00:06:30,560
‫Baiklah, sekarang semua

102
00:06:30,560 --> 00:06:35,560
‫yang hilang pada dasarnya adalah fungsi getAll factory, bukan?

103
00:06:36,070 --> 00:06:37,320
‫Jadi, pada

104
00:06:39,200 --> 00:06:42,380
‫dasarnya, untuk menggantikan getAllTours ini, getAllUsers, yang

105
00:06:42,380 --> 00:06:46,003
‫juga harus kita miliki di suatu tempat di

106
00:06:46,970 --> 00:06:50,530
‫sini, jadi getAllUsers, dan juga getAllReviews, jadi mari

107
00:06:50,530 --> 00:06:53,540
‫kita salin lagi di sini dari

108
00:06:53,540 --> 00:06:56,380
‫pengontrol Tour karena sebenarnya ini yang

109
00:06:56,380 --> 00:06:59,920
‫paling lengkap karena memiliki semua fitur API ini,

110
00:06:59,920 --> 00:07:03,390
‫dan karenanya, setelah membuat fungsi pabrik getAll kami,

111
00:07:03,390 --> 00:07:07,083
‫ketiga sumber daya kemudian akan mendapatkan fitur API ini.

112
00:07:09,299 --> 00:07:12,840
‫Jadi sekali lagi, menyalin semua ini,

113
00:07:15,230 --> 00:07:17,433
‫mengekspor. getAll,

114
00:07:24,630 --> 00:07:28,390
‫dan jadi sekarang, kita benar-benar harus memerlukan

115
00:07:28,390 --> 00:07:29,743
‫fitur API ini

116
00:07:31,690 --> 00:07:35,780
‫di sini, dan sebenarnya kita dapat menghapusnya dari

117
00:07:35,780 --> 00:07:38,320
‫sini karena kita tidak akan

118
00:07:38,320 --> 00:07:43,277
‫membutuhkannya lagi karena sekarang kita mentransfernya ke pabrik handler, bukan?

119
00:07:45,360 --> 00:07:49,403
‫Sekarang, di sini yang perlu kita lakukan adalah mengganti,

120
00:07:50,370 --> 00:07:53,243
‫seperti biasa, dengan model, lalu di

121
00:07:56,300 --> 00:07:58,703
‫sini, doc dan data.

122
00:08:01,700 --> 00:08:03,253
‫Sekarang, oke, sempurna.

123
00:08:07,480 --> 00:08:09,133
‫Jadi, mari kita

124
00:08:13,947 --> 00:08:17,453
‫lihat apakah ini berhasil, getAll with Tour.

125
00:08:22,530 --> 00:08:25,530
‫Dan sekarang, saya benar-benar ingin melihat

126
00:08:25,530 --> 00:08:28,300
‫apakah ini masih berfungsi dengan semua

127
00:08:28,300 --> 00:08:31,380
‫fitur ini, jadi di sini, getAll Tours,

128
00:08:31,380 --> 00:08:33,830
‫dan jadi, mari tambahkan

129
00:08:33,830 --> 00:08:38,467
‫string kueri kita di sini, dan katakanlah durasinya lebih besar

130
00:08:43,040 --> 00:08:47,063
‫atau sama dari katakanlah 10, dan urutkan berdasarkan harga.

131
00:08:50,470 --> 00:08:53,133
‫Oke, dan jadi kita mendapatkan dua hasil di sini.

132
00:08:56,170 --> 00:08:58,490
‫Oke, itu tidak bekerja.

133
00:08:58,490 --> 00:09:03,030
‫Bagaimanapun, kami mendapatkan dua hasil (tertawa) di sini,

134
00:09:03,030 --> 00:09:06,290
‫dan keduanya memiliki durasi lebih

135
00:09:06,290 --> 00:09:09,360
‫dari 10, dan harganya

136
00:09:09,360 --> 00:09:13,420
‫1497, dan yang kedua lebih tinggi, oke?

137
00:09:13,420 --> 00:09:15,810
‫Mari kita taruh di sini seperti ke tujuh, jadi

138
00:09:15,810 --> 00:09:17,673
‫kita mendapatkan hasil yang sedikit lebih banyak.

139
00:09:19,949 --> 00:09:21,249
‫Oke, dan sekarang kita mendapatkan lima.

140
00:09:23,560 --> 00:09:27,480
‫Oke, bagaimanapun, sekarang mari kita lakukan hal yang sama untuk

141
00:09:28,910 --> 00:09:32,440
‫ulasan karena saya sangat bersemangat untuk menguji fitur API

142
00:09:32,440 --> 00:09:34,350
‫ini pada ulasan juga.

143
00:09:34,350 --> 00:09:36,510
‫Sekarang, satu masalah yang kita miliki

144
00:09:36,510 --> 00:09:39,740
‫di sini adalah bahwa pengendali rute ini sebenarnya memiliki

145
00:09:40,706 --> 00:09:44,610
‫dua baris kode yang tidak dimiliki oleh semua pengendali getAll lainnya, oke?

146
00:09:44,610 --> 00:09:47,730
‫Tapi, apa yang akan kita lakukan di sini adalah dengan

147
00:09:47,730 --> 00:09:50,730
‫menyalin kode ini ke pabrik handler kita juga, oke?

148
00:09:50,730 --> 00:09:52,150
‫Itu semacam peretasan

149
00:09:52,150 --> 00:09:56,040
‫karena kita benar-benar hanya membutuhkan yang ini untuk ulasan getAll,

150
00:09:56,040 --> 00:09:59,210
‫tetapi untuk menyiasatinya akan terlalu banyak pekerjaan di

151
00:09:59,210 --> 00:10:02,500
‫sini dalam situasi ini, dan sekali lagi, saya hanya

152
00:10:02,500 --> 00:10:05,623
‫ingin membuatnya tetap sederhana di sini, oke.

153
00:10:07,010 --> 00:10:08,593
‫Jadi, mari

154
00:10:10,530 --> 00:10:15,150
‫salin ini di sini, dan saya menambahkan komentar

155
00:10:16,500 --> 00:10:21,500
‫di sini untuk memungkinkan getReviews bersarang di Tur, oke?

156
00:10:24,980 --> 00:10:29,533
‫Jadi filter ini, kami juga akan menyebarkannya di sini, oke?

157
00:10:31,260 --> 00:10:33,363
‫Jadi sekali lagi, ini adalah

158
00:10:35,400 --> 00:10:37,460
‫peretasan kecil, tapi saya

159
00:10:37,460 --> 00:10:41,770
‫akan membiarkannya seperti ini karena saya pikir itu masuk akal, oke.

160
00:10:41,770 --> 00:10:44,223
‫Bagaimanapun, mari kita singkirkan ini,

161
00:10:45,260 --> 00:10:48,373
‫jadi pabrik. getAll dan review, oke?

162
00:10:54,476 --> 00:10:57,493
‫Mari kita letakkan ini di sini di samping yang lainnya.

163
00:11:02,430 --> 00:11:03,430
‫Dan sekarang,

164
00:11:03,430 --> 00:11:07,340
‫seperti yang Anda lihat, kita sebenarnya tidak lagi membutuhkan catchAsync ini di

165
00:11:07,340 --> 00:11:09,200
‫sini, jadi saya akan berkomentar di

166
00:11:09,200 --> 00:11:12,300
‫sini karena, siapa tahu, mungkin di masa depan kita akan

167
00:11:12,300 --> 00:11:15,523
‫membutuhkannya untuk beberapa fungsi Middleware lainnya di sini, semuanya Baik.

168
00:11:16,870 --> 00:11:18,660
‫Jadi, itu terlihat bagus

169
00:11:18,660 --> 00:11:21,783
‫dan bersih, dan sekarang mari kita uji ulasan getAll.

170
00:11:23,420 --> 00:11:28,420
‫Baiklah, jadi mari kita simpan perubahan di sini juga.

171
00:11:30,240 --> 00:11:32,310
‫Yang ini tidak kita

172
00:11:32,310 --> 00:11:36,143
‫butuhkan, tetapi saya sebenarnya ingin mendapatkan semua ulasan.

173
00:11:37,530 --> 00:11:39,743
‫Jadi, saat ini kami

174
00:11:40,980 --> 00:11:43,430
‫memiliki empat ulasan, jadi sekarang mari

175
00:11:43,430 --> 00:11:46,853
‫kita coba memfilter ulasan hanya dengan peringkat empat, katakanlah.

176
00:11:48,860 --> 00:11:53,860
‫Jadi, string kueri, peringkat sama dengan empat.

177
00:11:57,820 --> 00:12:00,170
‫Oh, dan itu benar-benar

178
00:12:00,170 --> 00:12:02,850
‫berfungsi, sangat bagus, itu sangat bagus.

179
00:12:02,850 --> 00:12:06,780
‫Jadi, seperti ini, kami mendapatkan akses ke semua fitur

180
00:12:06,780 --> 00:12:11,780
‫API ini seperti pemfilteran, pengurutan, pagination, dan semua hal bagus yang

181
00:12:11,810 --> 00:12:13,988
‫kami terapkan (tertawa) sejak lama

182
00:12:13,988 --> 00:12:15,890
‫di kursus, bukan?

183
00:12:15,890 --> 00:12:17,380
‫Dan, saya juga

184
00:12:17,380 --> 00:12:21,423
‫ingin memastikan bahwa ulasan getAll di Tour ini juga masih berfungsi.

185
00:12:22,300 --> 00:12:24,120
‫Jadi, mari kita periksa itu,

186
00:12:24,120 --> 00:12:26,893
‫dan, ya, Anda melihat bahwa itu benar-benar terjadi.

187
00:12:28,050 --> 00:12:30,380
‫Jadi, ID Tur yang kami

188
00:12:30,380 --> 00:12:34,490
‫miliki di sini persis sama di sini dan di sini.

189
00:12:34,490 --> 00:12:36,840
‫Jadi, yang itu

190
00:12:36,840 --> 00:12:39,580
‫juga masih berfungsi, jadi mari

191
00:12:39,580 --> 00:12:44,060
‫kita juga menggunakan getAll untuk pengontrol pengguna, oke.

192
00:12:44,060 --> 00:12:46,733
‫Jadi, pada dasarnya hanya mengganti

193
00:12:47,760 --> 00:12:52,760
‫ini, jadi pabrik. getAll pengguna, baiklah.

194
00:12:55,180 --> 00:12:57,174
‫Dan, mari kita letakkan

195
00:12:57,174 --> 00:13:01,483
‫yang ini di sini dekat dengan yang lain, oke.

196
00:13:04,960 --> 00:13:06,910
‫Dan, lalu yang ini juga,

197
00:13:06,910 --> 00:13:09,650
‫jadi pada dasarnya memiliki semua yang dihasilkan

198
00:13:09,650 --> 00:13:11,590
‫oleh fungsi pabrik bersama-sama,

199
00:13:11,590 --> 00:13:14,383
‫dan kemudian semua yang lain tepat di atasnya.

200
00:13:15,800 --> 00:13:18,580
‫Baiklah, mari kita lakukan hal yang sama di sini,

201
00:13:18,580 --> 00:13:20,290
‫yang ini sudah bagus dan

202
00:13:20,290 --> 00:13:23,153
‫bersih, dan sama untuk pengontrol Tour, jadi apa lagi yang

203
00:13:24,170 --> 00:13:25,620
‫kita miliki di sini?

204
00:13:27,430 --> 00:13:29,263
‫Yang ini bisa

205
00:13:30,690 --> 00:13:34,000
‫kita singkirkan, dan, oke, menurutku ini terlihat bagus.

206
00:13:34,000 --> 00:13:37,150
‫Sekali lagi, kita dapat mengomentari potongan kode ini

207
00:13:37,150 --> 00:13:40,410
‫karena, setidaknya untuk saat ini, kita tidak membutuhkannya lagi.

208
00:13:40,410 --> 00:13:44,623
‫Jadi, hanya untuk mengujinya lagi di sini dengan pengguna,

209
00:13:45,640 --> 00:13:47,423
‫mari kita kumpulkan

210
00:13:48,890 --> 00:13:50,973
‫semuanya, dan, memang, inilah mereka.

211
00:13:53,320 --> 00:13:55,960
‫Kami sekarang juga dapat mengatakan

212
00:13:55,960 --> 00:13:58,873
‫bahwa kami hanya menginginkan yang dengan

213
00:14:00,490 --> 00:14:03,760
‫peran pengguna, dan, memang, itu berfungsi dengan baik.

214
00:14:03,760 --> 00:14:07,500
‫Hebat, dan itu benar-benar menyelesaikan bagian dari pembuatan

215
00:14:07,500 --> 00:14:10,170
‫fungsi pabrik pengendali, dan ini

216
00:14:10,170 --> 00:14:14,300
‫benar-benar merupakan langkah maju yang besar dalam proyek kami,

217
00:14:14,300 --> 00:14:16,030
‫jadi ingatlah bahwa,

218
00:14:16,030 --> 00:14:18,710
‫sebentar lagi, kami juga akan membuat

219
00:14:18,710 --> 00:14:22,080
‫sumber daya pemesanan, dan Anda melihat bahwa mungkin

220
00:14:22,080 --> 00:14:25,070
‫kami Anda akan dapat membuat API utama

221
00:14:25,070 --> 00:14:27,310
‫untuk pemesanan ini dalam

222
00:14:27,310 --> 00:14:32,310
‫waktu sekitar lima detik, cukup menggunakan lima fungsi pabrik ini, oke.

223
00:14:32,350 --> 00:14:34,750
‫Pokoknya, kerja bagus, kerja bagus, dan sampai

224
00:14:34,750 --> 00:14:36,683
‫jumpa di yang berikutnya.

