‫Jonas: Mari kita lanjutkan membuat beberapa fungsi pabrik,
‫kali ini untuk memperbarui dan membuat beberapa sumber daya.
‫Jadi, sekarang kita sudah tahu cara kerjanya,
‫sangat mudah untuk terus melakukan hal yang sama
‫untuk memperbarui.
‫Jadi ekspor. updateOne,
‫dan mari kita lanjutkan dan salin kode lagi
‫dari pengontrol tur.
‫Oke.
‫Dan kami memiliki banyak sekali
‫file yang sekarang terbuka karena kami sebenarnya
‫mengubah semuanya secara bersamaan.
‫Jadi mari kita salin ini, dan
‫tempel di sini.
‫Jadi, yang kami minati adalah, sekali lagi, bagian ini.
‫Oke.
‫Dan sekarang, tentu saja, kita perlu membuat fungsi pabrik itu
‫karena kita tidak ingin mengembalikan ini.
‫Sebagai gantinya, kami ingin mengembalikan
‫fungsi, yang kemudian, pada gilirannya, akan mengembalikan ini.
‫Benar?
‫Jadi itu sangat sederhana.
‫Kami menggunakan fungsi panah sederhana di mana kami meneruskan
‫model dan kemudian secara implisit mengembalikan apa pun yang muncul setelah panah.
‫Jadi, semua ini.
‫Baiklah.
‫Jadi seperti sebelumnya, mari kita ganti model
‫khusus dengan yang
‫umum, lalu ganti semua ini di sini dengan dokumen.
‫Atau sebenarnya, dengan doc, seperti yang kami lakukan sebelumnya.
‫Dan ini bukan dokumen,
‫lalu di bawah sini, di mana kita sebenarnya mengirim
‫data, akan lebih baik jika kita benar-benar memberikannya nama properti
‫dari data yang kita kirim.
‫Misalnya, ulasan, lalu dokumen, atau tur.
‫Oke.
‫Tapi itu terlalu banyak pekerjaan untuk mengimplementasikannya sekarang.
‫Jadi, saya akan membiarkannya seperti ini di mana
‫saya mengirim, sekali lagi, data.
‫Baiklah.
‫Jadi pergilah data kami di
‫sini, dan kemudian amplop di sana, sekali lagi,
‫akan disebut data.
‫Baiklah.
‫Jadi, ini harus bekerja
‫sekarang karena segala sesuatu yang lain benar-benar sama.
‫Jadi, kita bisa melanjutkan, singkirkan semua ini,
‫dan katakan saja
‫pabrik. updateOne,
‫berikan model Tour, dan sebut saja sehari.
‫Baiklah?
‫Jadi, sangat sederhana.
‫Selanjutnya, hal yang sama untuk pengguna.
‫Jadi sekali lagi, kami memiliki updateUser.
‫Rute ini belum diterapkan.
‫Jadi, mari kita ganti semua ini di sini
‫dengan fungsi pabrik kami updateOne.
‫Baiklah.
‫Jadi, seperti sebelumnya, fungsi updateUser ini
‫hanya untuk administrator, oke?
‫Dan hanya untuk mengupdate data yang
‫bukan password, karena ingat, kapanpun kita menggunakan, dimana itu, jadi
‫kapanpun kita menggunakan findById dan update, semua
‫middleware yang aman tidak dijalankan.
‫Jadi ingat bagaimana kita membicarakannya beberapa kali.
‫Jadi, sekali lagi,
‫sangat penting bagi kami untuk tidak mencoba mengubah kata sandi
‫di sini menggunakan updateUser ini.
‫Oke?
‫Mari kita benar-benar menulis bahwa di sini.
‫Dengan ini.
‫Besar.
‫Dan sekarang, akhirnya, juga,
‫mari kita masukkan ke dalam pengontrol ulasan.
‫Baiklah.
‫Jadi ekspor. updateReview,
‫dan kemudian Review kami.
‫Jadi yang satu ini sangat sederhana.
‫Sekarang mari kita lanjutkan dan tambahkan rute ini ke Postman juga.
‫Jadi kami memiliki
‫Hapus Ulasan, dan sekarang mari tambahkan saja di sini sebagai PATCH.
‫Dan hal yang juga perlu kita tetapkan adalah mengimplementasikan
‫route di review router.
‫Jadi mari kita lakukan itu juga.
‫Tapi pertama-tama, saya akan menyimpannya di sini dalam ulasan.
‫Jadi Perbarui Ulasan.
‫Jadi di sini, di rute ulasan, kita
‫harus menambahkan metode patch, dan kemudian
‫reviewController. perbarui ulasan.
‫Baiklah.
‫Jadi mari kita lihat salah satu ulasan
‫ini di sini, katakanlah yang ini, dan perbarui peringkatnya menjadi empat.
‫Oke.
‫Jadi tubuh,
‫atur ke empat.
‫Dan kirimkan sekarang.
‫Oke, dan seperti yang bisa kita lihat, kami mendapatkan ulasan baru kami
‫kembali dengan peringkat yang diperbarui, seperti yang diharapkan.
‫Dan sekali lagi, kita akan mengurus otorisasi nanti
‫di bagian ini.
‫Untuk saat ini, saya hanya ingin membuat ini berhasil.
‫Jadi pengguna, mari kita perbarui juga pengguna.
‫Oke?
‫Jadi DAPATKAN, dan PATCH.
‫Jadi mari Dapatkan Semua Pengguna di sini.
‫Katakanlah yang satu ini.
‫Dan mari kita
‫ubah
‫namanya menjadi Administrator, yang sebelumnya hanya admin.
‫Baiklah?
‫Jadi, yang ini juga berhasil.
‫Oke, jadi sekali lagi, saya menyimpan semua ini di sini di koleksi saya
‫karena nanti, sebentar
‫lagi, saya benar-benar dapat melanjutkan dan membuat dokumentasi
‫dari semua data koleksi yang kami miliki di sini.
‫Jadi Perbarui Pengguna, letakkan
‫yang itu di sini, dan yang ini di sini.
‫Sempurna.
‫Jadi memperbarui pengguna sekarang berfungsi untuk
‫ketiga sumber daya kami menggunakan fungsi pabrik.
‫Jadi, mari kita lanjutkan dan tambahkan yang berikutnya,
‫yang akan menjadi createOne.
‫Jadi ekspor, buatSatu.
‫Dan sekali lagi, kami melewati model.
‫Dan dari sana, kami membuat fungsi baru.
‫Dan itu mungkin, sekali
‫lagi, benar-benar menyalinnya dari Tur di sini.
‫Baiklah.
‫Jadi, yang kita butuhkan di sini hanyalah bagian ini.
‫Jadi model, dan dokumen.
‫Dan di bawah sini, kami kembali menyebutnya data.
‫Baiklah.
‫Dan, itu sebenarnya.
‫Itu adalah fungsi pabrik kami.
‫Jadi, sekali lagi, mari kita datang ke sini dan menggantinya.
‫Jadi pabrik. buatSatu, Tur.
‫Jadi Anda melihat bahwa kode kami
‫di pengontrol sekarang menjadi sangat bersih, bukan?
‫Tapi sebenarnya, kita tidak akan bisa mengganti semua
‫fungsi yang kita miliki di sini dengan pabrik, karena jika
‫tidak, kita bahkan tidak membutuhkan
‫file pengontrol ini, kan?
‫Kami kemudian dapat dengan mudah membuat penangan ini dengan cepat,
‫pada dasarnya, di file router, bukan?
‫Jadi, pada dasarnya kita dapat melewati seluruh
‫langkah dari file pengontrol ini.
‫Tapi sekali lagi, kami masih
‫membutuhkannya karena kami memiliki beberapa barang lain di sana.
‫Misalnya, metode ini di sini
‫untuk mendapatkan statistik tur, atau paket bulanan
‫ini, dan ya.
‫Jadi masuk akal untuk benar-benar menyimpan file ini, oke?
‫Jadi selanjutnya,
‫untuk Users sebenarnya kita tidak perlu createOne
‫karena untuk membuat user
‫baru kita sudah memiliki fungsi signUp,
‫dan kita tidak bisa benar-benar menggantinya dengan
‫factory karena sangat berbeda dengan yang generik ini.
‫Oke?
‫Tapi kita bisa melakukannya di review controller, oke?
‫Jadi pada dasarnya, kami ingin mengganti createReview ini.
‫Sekarang Anda melihatnya juga, dalam
‫hal ini, kami memiliki beberapa langkah tambahan.
‫Jadi kami memiliki kode ini
‫yang juga tidak ada dalam fungsi createOne generik kami.
‫Jadi, bagaimana kita bisa memperbaikinya?
‫Nah, kita sebenarnya bisa
‫membuat middleware yang akan dijalankan sebelum createReview, oke?
‫Jadi, itu sebenarnya juga membuatnya sedikit lebih terpisah.
‫Jadi pada dasarnya, kode ini di sini akan
‫berada dalam
‫fungsinya sendiri, dan benar-benar dipisahkan dari
‫createReview, karena sebenarnya, itu tidak
‫ada hubungannya dengan membuat review.
‫Itu hanya mengatur beberapa data, bukan?
‫Jadi, mari kita sebut set tur dan ID pengguna ini.
‫Jadi permintaan, ah, jawabannya hilang.
‫Oke?
‫Dan semua yang akan
‫kita lakukan di sini adalah pada dasarnya mengatur ID ini di
‫badan dan kemudian langsung pindah ke
‫middleware berikutnya, di mana kemudian review benar-benar dibuat.
‫Baiklah?
‫Jadi sebelum kita
‫melupakannya, mari kita tambahkan middleware ini.
‫Jadi di rute ulasan, ada di sini di pos.
‫Jadi reviewController, setTourUserIds.
‫Oke?
‫Jadi fungsi middleware lain di tumpukan ini.
‫Oke.
‫Bagaimanapun, mari kita singkirkan apa yang kita miliki
‫di sini karena ini
‫mudah diganti dengan fungsi pabrik kita, sekali lagi.
‫Jadi buatSatu, lalu Tinjau, dan hanya itu.
‫Oke.
‫Dan hanya untuk menguji apakah ini
‫masih berfungsi, mari kita lanjutkan dan buat ulasan baru di Tur.
‫Oke?
‫Dan untuk itu, kita memerlukan ID tur,
‫jadi katakanlah Dapatkan Semua Tur.
‫Dan sekarang kita mendapatkan milik pengguna tidak ada lagi, jadi mari
‫kita lanjutkan dan masuk lagi.
‫Jadi dapatkan token baru di sini.
‫Jadi, begitulah, sebagai admin.
‫Jadi sekarang, Dapatkan Semua Tur, ini dia.
‫Mari kita pilih salah satunya.
‫Jadi katakanlah, Pendaki Hutan.
‫Saya pikir yang ini sudah memiliki beberapa ulasan, bukan?
‫Oh tidak, tidak.
‫Jadi yang satu ini bagus untuk dicoba sekarang.
‫Jadi, Buat Ulasan Baru di Tur.
‫Ingat, kita harus mengubah ID di sini.
‫Dan sekarang kami dapat
‫memposting ulasan ini hanya dengan peringkat dan ulasan.
‫Tapi saya pikir itu
‫sebenarnya tidak akan berhasil karena kami masuk sebagai
‫administrator, dan hanya pengguna biasa yang dapat memposting ulasan.
‫Oke?
‫Baiklah, jadi mari kita lakukan ini di sini.
‫Mencengangkan.
‫Tapi kita akan mendapatkan kesalahan yang baru saja saya katakan.
‫Jadi Anda tidak memiliki izin untuk melakukan.
‫Jadi, kita perlu masuk
‫lagi, kali ini sebagai pengguna yang berbeda.
‫Dan mari kita lihat yang mana yang sebenarnya kita miliki.
‫Oke.
‫Jadi mari kita gunakan tes saja.
‫Atau mungkin tes dengan kata sandi yang salah.
‫Tapi mari kita lihat.
‫Ah, ya.
‫Jadi mari kita bereksperimen dengan testuser.
‫Dan yang satu ini berhasil.
‫Jadi, sebenarnya, kita bisa melanjutkan dan menghapus yang lain
‫ini karena saya agak lupa kata sandinya.
‫Oke.
‫Dan dalam hal ini, itu tidak masalah.
‫Kami hanya dapat menghapus pengguna sesuka kami karena
‫kami hanya dalam pengembangan.
‫Oke?
‫Sekarang kita harus benar-benar dapat menambahkan ulasan ini.
‫Dan memang, ini dia.
‫Sempurna.
‫Jadi itu mengakhiri kuliah ini.
‫Yang perlu kita lakukan
‫selanjutnya adalah membuat fungsi pabrik
‫untuk mendapatkan satu dan mendapatkan semua dokumen dari
‫sumber daya tertentu.