Photo by Fahrul Razi on Unsplash

Untuk mensederhanakan generic fuction pada implementasi sebelumnya mungkin pendekatan ini lebih bagus sehingga pemanggilan generic tidak perlu duplicate

Untuk update pada bloc seperti ini

Sehingga pemanggilan network executer bisa dilakukan dengan cara ini

await NetworkExecuter.shared.execute<MovieResponse>

Sebelumnya

await NetworkExecuter.shared.execute<MovieResponse, MovieResponse>

--

--

Photo by Igor Savelev on Unsplash

Ini merupakan implementasi refresh token dengan RetryWhen pada project lama tetapi karena belum pernah saya dokumentasikan mungkin akan berguna nantinya ketika dibutuhkan.

Jadi cara kerjanya ketika kita mendapatkan response Error, NetworkService akan melakukan Retry maksimal 3 kali sampai kita mendapatkan token baru dengan Hit Refresh Token API.

Dan ketika sudah mencapai maksimal Loop Hit sebanyak 3 kali program akan eksekusi atau menampilkan Alert Unauthorize ketika response Error 403 atau Unauthorize dan redirect ke halaman Login secara otomatis tanpa kita handle pada setiap page.

DRY (Dont Repeat Yourself :D Stupid)

Oke masuk ke sample Code saja ya

--

--

Muhammad Alfiansyah

Muhammad Alfiansyah

Power is dangerous. It corrupts the best and attracts the worst. Power is only given to those who are prepared to lower themselves to pick it up-Ragnar Lothbrok