Setelah menyelesaikan Router untuk menambahkan data baru, tentunya kita juga perlu membuat Router untuk mengubah data. Pada router ini kita akan menggunakan method PUT.
Buka kembali file router/posts.js, dan perhatikan pada bagian ini:
router/posts.js
/**
* Route untuk mengupdate artikel berdasarkan ID
*/
router.put('/:id', function(req, res, next){
});
Lakukan perubahan kode menjadi seperti ini:
router/posts.js
router.put('/:id', async function(req, res, next){
try {
const id = req.params.id
const {
title,
content,
tags,
published
} = req.body
const post = models.posts.update({
title,
content,
tags,
published
}, {
where: {
id: id
}
})
if (post) {
res.json({
'status': 'OK',
'messages': 'Post berhasil diubah'
})
}
} catch(err) {
res.status(400).json({
'status': 'ERROR',
'messages': err.message
})
}
});
Proses yang ditulis hampir sama dengan router untuk menambah data. Yaitu pertama kita tangkap parameter id dan data-data yang dikirim melalui request body. Selanjutnya update row data menggunakan method update.
Jika berhasil mengupdate data, maka kembalikan response dengan status OK beserta pesan suksesnya. Sebaliknya kembalikan response dengan status error (400) jika proses update data gagal.
Done! Kita sudah menyelesaikan membuat router untuk mengubah data berdasarkan ID. Silahkan melakukan testing kembali menggunakan CURL atau POSTMAN untuk mencoba mengupdate data yang sudah ada.
Untuk mendownload atau melihat full source code pada tahap ini, silahkan kunjungi repo github
https://github.com/sakukode/simple-restapi/tree/v0.6