diff --git a/routes/login_routes.js b/routes/login_routes.js index fb83746..bcd8a41 100755 --- a/routes/login_routes.js +++ b/routes/login_routes.js @@ -16,7 +16,7 @@ const connection = mysql.createConnection({ }); -router.get('/', (req, res) => { +router.get('/', async (req, res) => { console.log("Get test"); res.send('Login get test'); }) @@ -25,26 +25,32 @@ router.post('/', async (req, res) => { const { username, password } = req.body // change password to string // password = password.toString(); - const query = 'SELECT * FROM tb_login_penyewa WHERE nik = ? AND password = ?'; + try { + const query = 'SELECT * FROM tb_login_penyewa WHERE nik = ? AND password = ?'; - connection.query(query, [username, md5(password)], (error, results) => { - if (error) { - console.log('error login', error); - return res.status(500).json({ error: 'Internal server error' ,status : false}); - } - if (results.length === 0) { - return res.status(401).json({ error: 'Invalid username or password' ,status : false}); - } - const query_data = 'SELECT * FROM tb_penyewa where nik = ?'; - - connection.query(query_data, [username], (error, results) => { + connection.query(query, [username, md5(password)], (error, results) => { if (error) { - console.log('error ambil data penyewa', error); - return res.status(500).json({ error: 'Internal server error' ,status : false}); + console.log('error login', error); + return res.status(500).json({ error: 'Internal server error', status: false }); } - return res.json({ success: true, data: results[0] ,status : true}); + if (results.length === 0) { + return res.status(401).json({ error: 'Invalid username or password', status: false }); + } + const query_data = 'SELECT * FROM tb_penyewa where nik = ?'; + + connection.query(query_data, [username], (error, results) => { + if (error) { + console.log('error ambil data penyewa', error); + return res.status(500).json({ error: 'Internal server error', status: false }); + } + return res. status(200).json({ success: true, data: results[0], status: true }); + }) }) - }) + } catch (error) { + console.log('error login', error); + return res.status(500).json({ error: 'Internal server error', status: false }); + } + }) diff --git a/routes/scan_routes.js b/routes/scan_routes.js index 23bd4f2..bc21488 100755 --- a/routes/scan_routes.js +++ b/routes/scan_routes.js @@ -22,168 +22,209 @@ const connection = mysql.createConnection({ database: process.env.DB_NAME }); -router.post('/', (req, res) => { +router.post('/', async (req, res) => { let { uid } = req.body; - console.log('Emitting scan_dia event: ' + uid); - io.emit('scan', uid); // Emitting event using the io instance - // socket.emit('scan_dia', uid); - // socket_client.emit('scan_dia', uid); - return res.json({ success: true, uid: uid }); + try { + console.log('Emitting scan_dia event: ' + uid); + io.emit('scan', uid); // Emitting event using the io instance + // socket.emit('scan_dia', uid); + // socket_client.emit('scan_dia', uid); + return res.status(200).json({ success: true, uid: uid }); + } catch (error) { + console.log('error scan', error); + return res.status(500).json({ message: 'Internal server error', status: false }); + } + }); -router.get('/tempat_sewa' , (req, res) => { - const query = 'SELECT * FROM tb_tempat_sewa a join tb_penyewa b on a.nik=b.nik;'; - connection.query(query, (error, results) => { - if (error) { - console.log('error cek tempat sewa', error); - return res.status(500).json({message : 'Internal server error' ,status : false}); - } - return res.json({ success: true, data: results ,status : true}); - }) -}) - -router.get('/id/:id' , (req, res) => { - const { id } = req.params; - const query = 'SELECT * FROM tb_tempat_sewa a join tb_penyewa b on a.nik=b.nik where b.rfid = ?'; - connection.query(query, [id], (error, results) => { - if (error) { - console.log('error cek id rfid', error); - return res.status(500).json({message : 'Internal server error' ,status : false}); - } - return res.json({ success: true, data: results ,status : true}); - }) -}) - -router.post('/bayar' , (req, res) => { - const { nik, id_tempat_sewa , rfid} = req.body; - console.log(nik, id_tempat_sewa, rfid); - const query_select = 'SELECT * FROM tb_tempat_sewa a join tb_penyewa b on a.nik=b.nik where b.rfid = ? and a.id_tempat_serwa = ? and b.nik = ?'; - connection.query(query_select, [rfid , id_tempat_sewa, nik], (error, results) => { - if (error) { - console.log('error cek id rfid', error); - return res.status(500).json({message : 'Internal server error' ,status : false}); - } - if (results.length === 0) { - return res.status(401).json({message : 'Data tidak ditemukan' ,status : false}); - } - // console.log(results[0]); - const saldo_terdahulu = results[0].saldo; - if (results[0].harga_sewa > saldo_terdahulu) { - return res.status(401).json({message : 'Saldo tidak mencukupi' ,status : false }); - } - const saldo_terkini = saldo_terdahulu - results[0].harga_sewa; - const query_update = 'UPDATE tb_penyewa SET saldo = ? WHERE nik = ?'; - connection.query(query_update, [saldo_terkini, nik], (error, results_update) => { +router.get('/tempat_sewa', async (req, res) => { + try { + const query = 'SELECT * FROM tb_tempat_sewa a join tb_penyewa b on a.nik=b.nik;'; + connection.query(query, (error, results) => { if (error) { - console.log('error bayar', error); - return res.status(500).json({message : 'Internal server error' ,status : false}); + console.log('error cek tempat sewa', error); + return res.status(500).json({ message: 'Internal server error', status: false }); } - // console.log(results_update); - const ket = 'Pembayaran Retribusi Dilakukan oleh penyewa : ' + results[0].nik+' - '+results[0].nama + ' - '+results[0].rfid + ' dengan tempat sewa : ' + results[0].nama_tempat_sewa+ '\nSaldo sebelumnya : ' + saldo_terdahulu + '\nSaldo setelah bayar : ' + saldo_terkini; - const jenis = 'Pembayaran Retribusi'; - const query_log = 'INSERT INTO tb_log_history (nik, id_tempat_serwa, ket,jenis) VALUES (?, ?, ?, ?)'; - connection.query(query_log, [nik, id_tempat_sewa, ket, jenis], (error, results) => { + return res.status(200).json({ success: true, data: results, status: true }); + }) + } catch (error) { + console.log('error cek tempat sewa', error); + return res.status(500).json({ message: 'Internal server error', status: false }); + } + +}) + +router.get('/id/:id', async (req, res) => { + const { id } = req.params; + try { + const query = 'SELECT * FROM tb_tempat_sewa a join tb_penyewa b on a.nik=b.nik where b.rfid = ?'; + connection.query(query, [id], (error, results) => { + if (error) { + console.log('error cek id rfid', error); + return res.status(500).json({ message: 'Internal server error', status: false }); + } + return res.status(200).json({ success: true, data: results, status: true }); + }) + } catch (error) { + console.log('error cek id rfid', error); + return res.status(500).json({ message: 'Internal server error', status: false }); + } + +}) + +router.post('/bayar', async (req, res) => { + const { nik, id_tempat_sewa, rfid } = req.body; + console.log(nik, id_tempat_sewa, rfid); + try { + const query_select = 'SELECT * FROM tb_tempat_sewa a join tb_penyewa b on a.nik=b.nik where b.rfid = ? and a.id_tempat_serwa = ? and b.nik = ?'; + connection.query(query_select, [rfid, id_tempat_sewa, nik], (error, results) => { + if (error) { + console.log('error cek id rfid', error); + return res.status(500).json({ message: 'Internal server error', status: false }); + } + if (results.length === 0) { + return res.status(401).json({ message: 'Data tidak ditemukan', status: false }); + } + // console.log(results[0]); + const saldo_terdahulu = results[0].saldo; + if (results[0].harga_sewa > saldo_terdahulu) { + return res.status(401).json({ message: 'Saldo tidak mencukupi', status: false }); + } + const saldo_terkini = saldo_terdahulu - results[0].harga_sewa; + const query_update = 'UPDATE tb_penyewa SET saldo = ? WHERE nik = ?'; + connection.query(query_update, [saldo_terkini, nik], (error, results_update) => { if (error) { - console.log('error log', error); - return res.status(500).json({message : 'Internal server error' ,status : false}); + console.log('error bayar', error); + return res.status(500).json({ message: 'Internal server error', status: false }); } - return res.json({ success: true, data: results ,status : true , message : 'Pembayaran retribusi berhasil dilakukan'}); + // console.log(results_update); + const ket = 'Pembayaran Retribusi Dilakukan oleh penyewa : ' + results[0].nik + ' - ' + results[0].nama + ' - ' + results[0].rfid + ' dengan tempat sewa : ' + results[0].nama_tempat_sewa + '\nSaldo sebelumnya : ' + saldo_terdahulu + '\nSaldo setelah bayar : ' + saldo_terkini; + const jenis = 'Pembayaran Retribusi'; + const query_log = 'INSERT INTO tb_log_history (nik, id_tempat_serwa, ket,jenis) VALUES (?, ?, ?, ?)'; + connection.query(query_log, [nik, id_tempat_sewa, ket, jenis], (error, results) => { + if (error) { + console.log('error log', error); + return res.status(500).json({ message: 'Internal server error', status: false }); + } + return res.status(200).json({ success: true, data: results, status: true, message: 'Pembayaran retribusi berhasil dilakukan' }); + }) }) }) - }) + } catch (error) { + console.log('error bayar', error); + return res.status(500).json({ message: 'Internal server error', status: false }); + } + }) -router.get('/log' , (req, res) => { +router.get('/log', (req, res) => { const query_log = 'SELECT * FROM tb_log_history a join tb_penyewa b on a.nik = b.nik' connection.query(query_log, (error, results) => { if (error) { console.log('error log', error); - return res.status(500).json({message : 'Internal server error' ,status : false}); + return res.status(500).json({ message: 'Internal server error', status: false }); } - return res.json({ success: true, data: results ,status : true}); + return res.json({ success: true, data: results, status: true }); }) }) -router.get('/penyewa' , (req, res) => { - const query_penyewa = 'SELECT * FROM tb_penyewa'; - connection.query(query_penyewa, (error, results) => { - if (error) { - console.log('error log', error); - return res.status(500).json({message : 'Internal server error' ,status : false}); - } - return res.json({ success: true, data: results ,status : true}); - }) +router.get('/penyewa', async (req, res) => { + try { + const query_penyewa = 'SELECT * FROM tb_penyewa'; + connection.query(query_penyewa, (error, results) => { + if (error) { + console.log('error log', error); + return res.status(500).json({ message: 'Internal server error', status: false }); + } + return res.status(200).json({ success: true, data: results, status: true }); + }) + } catch (error) { + console.log('error log', error); + return res.status(500).json({ message: 'Internal server error', status: false }); + } + }) -router.post('/penyewa/:nik' , (req, res) => { +router.post('/penyewa/:nik', async (req, res) => { const { nik } = req.params; const { topup } = req.body; - const query_penyewa = 'SELECT * FROM tb_penyewa where nik = ?'; - // console.log(nik, topup); - connection.query(query_penyewa, [nik], (error, results) => { - if (error) { - console.log('error log', error); - return res.status(500).json({message : 'Internal server error' ,status : false}); - } - if (results.length === 0) { - return res.status(401).json({message : 'Data tidak ditemukan' ,status : false}); - } - const saldo_terdahulu = results[0].saldo; - // parse integer - const saldo_terkini = parseInt(saldo_terdahulu) + parseInt(topup); - // console.log(saldo_terkini, saldo_terdahulu); - // console.log(results); - - const query_update = 'UPDATE tb_penyewa SET saldo = ? WHERE nik = ?'; - connection.query(query_update, [saldo_terkini, nik], (error, results_update) => { + try { + const query_penyewa = 'SELECT * FROM tb_penyewa where nik = ?'; + // console.log(nik, topup); + connection.query(query_penyewa, [nik], (error, results) => { if (error) { - console.log('error bayar', error); - return res.status(500).json({message : 'Internal server error' ,status : false}); + console.log('error log', error); + return res.status(500).json({ message: 'Internal server error', status: false }); } - const query_log = 'INSERT INTO tb_log_history (nik, ket,jenis) VALUES (?, ?, ?)'; - const jenis = 'Top Up Saldo'; - const ket = 'Top Up Saldo dilakukan oleh penyewa : ' + results[0].nik+' - '+results[0].nama + ' - '+results[0].rfid + ' dengan nominal : ' + topup + '\nSaldo sebelumnya : ' + saldo_terdahulu + '\nSaldo setelah topup : ' + saldo_terkini; + if (results.length === 0) { + return res.status(401).json({ message: 'Data tidak ditemukan', status: false }); + } + const saldo_terdahulu = results[0].saldo; + // parse integer + const saldo_terkini = parseInt(saldo_terdahulu) + parseInt(topup); + // console.log(saldo_terkini, saldo_terdahulu); + // console.log(results); - console.log(ket); - console.log(jenis); - - - connection.query(query_log, [nik, ket,jenis], (error, results_log) => { + const query_update = 'UPDATE tb_penyewa SET saldo = ? WHERE nik = ?'; + connection.query(query_update, [saldo_terkini, nik], (error, results_update) => { if (error) { - console.log('error log', error); - return res.status(500).json({message : 'Internal server error' ,status : false}); + console.log('error bayar', error); + return res.status(500).json({ message: 'Internal server error', status: false }); } - return res.json({ success: true,status : true , message : 'Top Up Saldo berhasil dilakukan'}); - }) + const query_log = 'INSERT INTO tb_log_history (nik, ket,jenis) VALUES (?, ?, ?)'; + const jenis = 'Top Up Saldo'; + const ket = 'Top Up Saldo dilakukan oleh penyewa : ' + results[0].nik + ' - ' + results[0].nama + ' - ' + results[0].rfid + ' dengan nominal : ' + topup + '\nSaldo sebelumnya : ' + saldo_terdahulu + '\nSaldo setelah topup : ' + saldo_terkini; - + console.log(ket); + console.log(jenis); + + + connection.query(query_log, [nik, ket, jenis], (error, results_log) => { + if (error) { + console.log('error log', error); + return res.status(500).json({ message: 'Internal server error', status: false }); + } + return res.status(200).json({ success: true, status: true, message: 'Top Up Saldo berhasil dilakukan' }); + }) + + + }) }) - }) + } catch (error) { + console.log('error bayar', error); + return res.status(500).json({ message: 'Internal server error', status: false }); + } + }) -router.put('/penyewa/:nik' , (req, res) => { +router.put('/penyewa/:nik', async (req, res) => { const { nik } = req.params; - const {nik_baru , nama} = req.body; + const { nik_baru, nama } = req.body; + try { + const query_select = 'SELECT * FROM tb_penyewa where nik = ?'; - const query_select = 'SELECT * FROM tb_penyewa where nik = ?'; - - connection.query(query_select, [nik], (error, results) => { - if (error) { - console.log('error select', error); - return res.status(500).json({message : 'Internal server error' ,status : false}); - } - if (results.length === 0) { - return res.status(401).json({message : 'Data tidak ditemukan' ,status : false}); - } - const query_update = 'UPDATE tb_penyewa SET nik = ? , nama = ? WHERE nik = ?'; - connection.query(query_update, [nik_baru, nama, nik], (error, results_update) => { + connection.query(query_select, [nik], (error, results) => { if (error) { - console.log('error update data penyewa', error); - return res.status(500).json({message : 'Internal server error' ,status : false}); + console.log('error select', error); + return res.status(500).json({ message: 'Internal server error', status: false }); } - return res.json({ success: true,status : true , message : 'Perubahan data penyewa berhasil dilakukan'}); + if (results.length === 0) { + return res.status(401).json({ message: 'Data tidak ditemukan', status: false }); + } + const query_update = 'UPDATE tb_penyewa SET nik = ? , nama = ? WHERE nik = ?'; + connection.query(query_update, [nik_baru, nama, nik], (error, results_update) => { + if (error) { + console.log('error update data penyewa', error); + return res.status(500).json({ message: 'Internal server error', status: false }); + } + return res. status(200).json({ success: true, status: true, message: 'Perubahan data penyewa berhasil dilakukan' }); + }) }) - }) + } catch (error) { + console.log('error update data penyewa', error); + return res.status(500).json({ message: 'Internal server error', status: false }); + } + }) diff --git a/routes/user_routes.js b/routes/user_routes.js index 1939187..515dfab 100755 --- a/routes/user_routes.js +++ b/routes/user_routes.js @@ -9,63 +9,81 @@ const connection = mysql.createConnection({ host: process.env.DB_HOST, user: process.env.DB_USER, password: process.env.DB_PASS, - database: process.env.DB_NAMEĀ  + database: process.env.DB_NAME }) -router.get('/log_user/:nik', (req, res) => { +router.get('/log_user/:nik', async (req, res) => { const { nik } = req.params; - const query = 'SELECT * FROM tb_penyewa where nik = ?'; - connection.query(query, [nik], (error, results) => { - if (error) { - console.log('error cek log user', error); - return res.status(500).json({message : 'Internal server error' ,status : false}); - } - - if (results.length == 0) { - return res.status(404).json({message : 'User not found' ,status : false}); - } - - const query_log = 'SELECT * FROM tb_log_history a join tb_penyewa b on a.nik = b.nik where b.nik = ?'; - - connection.query(query_log, [nik], (error, results_log) => { + try { + const query = 'SELECT * FROM tb_penyewa where nik = ?'; + connection.query(query, [nik], (error, results) => { if (error) { console.log('error cek log user', error); - return res.status(500).json({message : 'Internal server error' ,status : false}); + return res.status(500).json({ message: 'Internal server error', status: false }); } - return res.json({ success: true, data: results_log ,status : true}); + + if (results.length == 0) { + return res.status(404).json({ message: 'User not found', status: false }); + } + + const query_log = 'SELECT * FROM tb_log_history a join tb_penyewa b on a.nik = b.nik where b.nik = ?'; + + connection.query(query_log, [nik], (error, results_log) => { + if (error) { + console.log('error cek log user', error); + return res.status(500).json({ message: 'Internal server error', status: false }); + } + return res.status(200).json({ success: true, data: results_log, status: true }); + }) + + // return res.json({ success: true, data: results ,status : true}); }) + } catch (error) { + console.log('error cek log user', error); + return res.status(500).json({ message: 'Internal server error', status: false }); + } - // return res.json({ success: true, data: results ,status : true}); - }) }) -router.get('/tempat_sewa/:nik', (req, res) => { +router.get('/tempat_sewa/:nik', async (req, res) => { const { nik } = req.params; - const query = 'SELECT * FROM tb_tempat_sewa a join tb_penyewa b on a.nik=b.nik where b.nik = ?'; - connection.query(query, [nik], (error, results) => { - if (error) { - console.log('error cek tempat sewa', error); - return res.status(500).json({message : 'Internal server error' ,status : false}); - } - return res.json({ success: true, data: results ,status : true}); - }) + try { + const query = 'SELECT * FROM tb_tempat_sewa a join tb_penyewa b on a.nik=b.nik where b.nik = ?'; + connection.query(query, [nik], (error, results) => { + if (error) { + console.log('error cek tempat sewa', error); + return res.status(500).json({ message: 'Internal server error', status: false }); + } + return res.status(200).json({ success: true, data: results, status: true }); + }) + } catch (error) { + console.log('error cek tempat sewa', error); + return res.status(500).json({ message: 'Internal server error', status: false }); + } + }) -router.get('/user/:nik' , (req, res) => { +router.get('/user/:nik', async (req, res) => { const { nik } = req.params; - const query = 'SELECT * FROM tb_penyewa where nik = ?'; - connection.query(query, [nik], (error, results) => { - if (error) { - console.log('error cek user', error); - return res.status(500).json({message : 'Internal server error' ,status : false}); - } - if (results.length == 0) { - return res.status(404).json({message : 'User not found' ,status : false}); - } - return res.json({ success: true, data: results[0] ,status : true}); - }) + try { + const query = 'SELECT * FROM tb_penyewa where nik = ?'; + connection.query(query, [nik], (error, results) => { + if (error) { + console.log('error cek user', error); + return res.status(500).json({ message: 'Internal server error', status: false }); + } + if (results.length == 0) { + return res.status(404).json({ message: 'User not found', status: false }); + } + return res.status(200).json({ success: true, data: results[0], status: true }); + }) + } catch (error) { + console.log('error cek user', error); + return res.status(500).json({ message: 'Internal server error', status: false }); + } + }) module.exports = router