const express = require('express') const multer = require('multer') const path = require('path') const fs = require('fs') const db = require('../database/models') const Blogs = db.Blogs const router = express.Router(); const storage = multer.diskStorage({ destination: (_req, _file, cb) => { cb(null, 'public/images/') }, filename: (_req, file, cb) => { cb(null, Date.now() + path.extname(file.originalname)); } }) const upload = multer({ storage: storage }) /* GET blog page. */ router.get('/add', function (req, res) { res.render('add', { title: 'Express Add Blog' }); }); router.post('/save', upload.single('gambar'), async (req, res) => { const data = { judul: req.body.judul, kategori: req.body.deskripsi, gambar: !req.file ? 'placeholder.jpg' : req.file.filename }; try { await Blogs.create(data) } catch (error) { req.flash('msg_error', error); res.redirect('/') } }); router.get('/edit/:id', async function (req, res) { const id = req.params.id const result = await Blogs.findByPk(id); const data = { title: 'Express Edit Blog', result: result.dataValues } res.render('edit', data); }); router.post('/update/:id', upload.single('gambar'), (req, res) => { const id = req.params.id const data = { judul: req.body.judul, deskripsi: req.body.deskripsi }; Blogs.findByPk(id).then((row) => { if (req.file) { if (row.dataValues.gambar !== 'placeholder.jpg') { fs.unlink(`public/images/${row.dataValues.gambar}`, () => { return true }) } data.gambar = req.file.filename } row.update(data); req.flash('msg_success', 'data berhasil diperbarui'); res.redirect('/') }).catch((err) => { req.flash('msg_error', err); res.redirect('/') }); }); router.get('/delete/:id', function (req, res) { const id = req.params.id Blogs.findByPk(id).then((row) => { if (row.dataValues.cover != 'placeholder.jpg') { fs.unlink(`public/images/${row.dataValues.gambar}`, () => { return true; }) } Blogs.destroy({ where: { id: row.dataValues.id } }).then(() => { req.flash('msg_success', 'data terhapus'); res.redirect('/') }).catch((err) => { req.flash('msg_error', err); res.redirect('/') }) }).catch((err) => { req.flash('msg_error', err); res.redirect('/') }) }); module.exports = router;