added try catch block to handle error

This commit is contained in:
kicap1992
2024-04-05 05:27:36 +00:00
parent b0624aa772
commit 3a0493ab1c
3 changed files with 248 additions and 183 deletions

View File

@ -16,7 +16,7 @@ const connection = mysql.createConnection({
}); });
router.get('/', (req, res) => { router.get('/', async (req, res) => {
console.log("Get test"); console.log("Get test");
res.send('Login get test'); res.send('Login get test');
}) })
@ -25,26 +25,32 @@ router.post('/', async (req, res) => {
const { username, password } = req.body const { username, password } = req.body
// change password to string // change password to string
// password = password.toString(); // password = password.toString();
try {
const query = 'SELECT * FROM tb_login_penyewa WHERE nik = ? AND password = ?'; const query = 'SELECT * FROM tb_login_penyewa WHERE nik = ? AND password = ?';
connection.query(query, [username, md5(password)], (error, results) => { connection.query(query, [username, md5(password)], (error, results) => {
if (error) { if (error) {
console.log('error login', error); console.log('error login', error);
return res.status(500).json({ error: 'Internal server error' ,status : false}); return res.status(500).json({ error: 'Internal server error', status: false });
} }
if (results.length === 0) { if (results.length === 0) {
return res.status(401).json({ error: 'Invalid username or password' ,status : false}); return res.status(401).json({ error: 'Invalid username or password', status: false });
} }
const query_data = 'SELECT * FROM tb_penyewa where nik = ?'; const query_data = 'SELECT * FROM tb_penyewa where nik = ?';
connection.query(query_data, [username], (error, results) => { connection.query(query_data, [username], (error, results) => {
if (error) { if (error) {
console.log('error ambil data penyewa', error); console.log('error ambil data penyewa', error);
return res.status(500).json({ error: 'Internal server error' ,status : false}); return res.status(500).json({ error: 'Internal server error', status: false });
} }
return res.json({ success: true, data: results[0] ,status : true}); 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 });
}
}) })

View File

@ -22,111 +22,142 @@ const connection = mysql.createConnection({
database: process.env.DB_NAME database: process.env.DB_NAME
}); });
router.post('/', (req, res) => { router.post('/', async (req, res) => {
let { uid } = req.body; let { uid } = req.body;
try {
console.log('Emitting scan_dia event: ' + uid); console.log('Emitting scan_dia event: ' + uid);
io.emit('scan', uid); // Emitting event using the io instance io.emit('scan', uid); // Emitting event using the io instance
// socket.emit('scan_dia', uid); // socket.emit('scan_dia', uid);
// socket_client.emit('scan_dia', uid); // socket_client.emit('scan_dia', uid);
return res.json({ success: true, uid: 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) => { 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;'; const query = 'SELECT * FROM tb_tempat_sewa a join tb_penyewa b on a.nik=b.nik;';
connection.query(query, (error, results) => { connection.query(query, (error, results) => {
if (error) { if (error) {
console.log('error cek tempat sewa', error); console.log('error cek tempat sewa', 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.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' , (req, res) => { router.get('/id/:id', async (req, res) => {
const { id } = req.params; 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 = ?'; 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) => { connection.query(query, [id], (error, results) => {
if (error) { if (error) {
console.log('error cek id rfid', error); console.log('error cek id rfid', 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.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' , (req, res) => { router.post('/bayar', async (req, res) => {
const { nik, id_tempat_sewa , rfid} = req.body; const { nik, id_tempat_sewa, rfid } = req.body;
console.log(nik, id_tempat_sewa, rfid); 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 = ?'; 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) => { connection.query(query_select, [rfid, id_tempat_sewa, nik], (error, results) => {
if (error) { if (error) {
console.log('error cek id rfid', error); console.log('error cek id rfid', error);
return res.status(500).json({message : 'Internal server error' ,status : false}); return res.status(500).json({ message: 'Internal server error', status: false });
} }
if (results.length === 0) { if (results.length === 0) {
return res.status(401).json({message : 'Data tidak ditemukan' ,status : false}); return res.status(401).json({ message: 'Data tidak ditemukan', status: false });
} }
// console.log(results[0]); // console.log(results[0]);
const saldo_terdahulu = results[0].saldo; const saldo_terdahulu = results[0].saldo;
if (results[0].harga_sewa > saldo_terdahulu) { if (results[0].harga_sewa > saldo_terdahulu) {
return res.status(401).json({message : 'Saldo tidak mencukupi' ,status : false }); return res.status(401).json({ message: 'Saldo tidak mencukupi', status: false });
} }
const saldo_terkini = saldo_terdahulu - results[0].harga_sewa; const saldo_terkini = saldo_terdahulu - results[0].harga_sewa;
const query_update = 'UPDATE tb_penyewa SET saldo = ? WHERE nik = ?'; const query_update = 'UPDATE tb_penyewa SET saldo = ? WHERE nik = ?';
connection.query(query_update, [saldo_terkini, nik], (error, results_update) => { connection.query(query_update, [saldo_terkini, nik], (error, results_update) => {
if (error) { if (error) {
console.log('error bayar', error); console.log('error bayar', error);
return res.status(500).json({message : 'Internal server error' ,status : false}); return res.status(500).json({ message: 'Internal server error', status: false });
} }
// console.log(results_update); // 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 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 jenis = 'Pembayaran Retribusi';
const query_log = 'INSERT INTO tb_log_history (nik, id_tempat_serwa, ket,jenis) VALUES (?, ?, ?, ?)'; 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) => { connection.query(query_log, [nik, id_tempat_sewa, ket, jenis], (error, results) => {
if (error) { if (error) {
console.log('error log', 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 , message : 'Pembayaran retribusi berhasil dilakukan'}); 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' const query_log = 'SELECT * FROM tb_log_history a join tb_penyewa b on a.nik = b.nik'
connection.query(query_log, (error, results) => { connection.query(query_log, (error, results) => {
if (error) { if (error) {
console.log('error log', 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) => { router.get('/penyewa', async (req, res) => {
try {
const query_penyewa = 'SELECT * FROM tb_penyewa'; const query_penyewa = 'SELECT * FROM tb_penyewa';
connection.query(query_penyewa, (error, results) => { connection.query(query_penyewa, (error, results) => {
if (error) { if (error) {
console.log('error log', 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.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 { nik } = req.params;
const { topup } = req.body; const { topup } = req.body;
try {
const query_penyewa = 'SELECT * FROM tb_penyewa where nik = ?'; const query_penyewa = 'SELECT * FROM tb_penyewa where nik = ?';
// console.log(nik, topup); // console.log(nik, topup);
connection.query(query_penyewa, [nik], (error, results) => { connection.query(query_penyewa, [nik], (error, results) => {
if (error) { if (error) {
console.log('error log', 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 });
} }
if (results.length === 0) { if (results.length === 0) {
return res.status(401).json({message : 'Data tidak ditemukan' ,status : false}); return res.status(401).json({ message: 'Data tidak ditemukan', status: false });
} }
const saldo_terdahulu = results[0].saldo; const saldo_terdahulu = results[0].saldo;
// parse integer // parse integer
@ -138,52 +169,62 @@ router.post('/penyewa/:nik' , (req, res) => {
connection.query(query_update, [saldo_terkini, nik], (error, results_update) => { connection.query(query_update, [saldo_terkini, nik], (error, results_update) => {
if (error) { if (error) {
console.log('error bayar', error); console.log('error bayar', error);
return res.status(500).json({message : 'Internal server error' ,status : false}); return res.status(500).json({ message: 'Internal server error', status: false });
} }
const query_log = 'INSERT INTO tb_log_history (nik, ket,jenis) VALUES (?, ?, ?)'; const query_log = 'INSERT INTO tb_log_history (nik, ket,jenis) VALUES (?, ?, ?)';
const jenis = 'Top Up Saldo'; 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; 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(ket);
console.log(jenis); console.log(jenis);
connection.query(query_log, [nik, ket,jenis], (error, results_log) => { connection.query(query_log, [nik, ket, jenis], (error, results_log) => {
if (error) { if (error) {
console.log('error log', 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,status : true , message : 'Top Up Saldo berhasil dilakukan'}); 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 } = 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) => { connection.query(query_select, [nik], (error, results) => {
if (error) { if (error) {
console.log('error select', error); console.log('error select', error);
return res.status(500).json({message : 'Internal server error' ,status : false}); return res.status(500).json({ message: 'Internal server error', status: false });
} }
if (results.length === 0) { if (results.length === 0) {
return res.status(401).json({message : 'Data tidak ditemukan' ,status : false}); return res.status(401).json({ message: 'Data tidak ditemukan', status: false });
} }
const query_update = 'UPDATE tb_penyewa SET nik = ? , nama = ? WHERE nik = ?'; 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_update, [nik_baru, nama, nik], (error, results_update) => {
if (error) { if (error) {
console.log('error update data penyewa', error); console.log('error update data penyewa', 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,status : true , message : 'Perubahan data penyewa berhasil dilakukan'}); 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 });
}
}) })

View File

@ -9,21 +9,22 @@ const connection = mysql.createConnection({
host: process.env.DB_HOST, host: process.env.DB_HOST,
user: process.env.DB_USER, user: process.env.DB_USER,
password: process.env.DB_PASS, 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 { nik } = req.params;
try {
const query = 'SELECT * FROM tb_penyewa where nik = ?'; const query = 'SELECT * FROM tb_penyewa where nik = ?';
connection.query(query, [nik], (error, results) => { connection.query(query, [nik], (error, results) => {
if (error) { if (error) {
console.log('error cek log user', 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 });
} }
if (results.length == 0) { if (results.length == 0) {
return res.status(404).json({message : 'User not found' ,status : false}); 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 = ?'; const query_log = 'SELECT * FROM tb_log_history a join tb_penyewa b on a.nik = b.nik where b.nik = ?';
@ -31,41 +32,58 @@ router.get('/log_user/:nik', (req, res) => {
connection.query(query_log, [nik], (error, results_log) => { connection.query(query_log, [nik], (error, results_log) => {
if (error) { if (error) {
console.log('error cek log user', 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}); return res.status(200).json({ success: true, data: results_log, status: true });
}) })
// return res.json({ success: true, data: results ,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 });
}
}) })
router.get('/tempat_sewa/:nik', (req, res) => { router.get('/tempat_sewa/:nik', async (req, res) => {
const { nik } = req.params; const { nik } = req.params;
try {
const query = 'SELECT * FROM tb_tempat_sewa a join tb_penyewa b on a.nik=b.nik where b.nik = ?'; 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) => { connection.query(query, [nik], (error, results) => {
if (error) { if (error) {
console.log('error cek tempat sewa', error); console.log('error cek tempat sewa', 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.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 { nik } = req.params;
try {
const query = 'SELECT * FROM tb_penyewa where nik = ?'; const query = 'SELECT * FROM tb_penyewa where nik = ?';
connection.query(query, [nik], (error, results) => { connection.query(query, [nik], (error, results) => {
if (error) { if (error) {
console.log('error cek user', error); console.log('error cek user', error);
return res.status(500).json({message : 'Internal server error' ,status : false}); return res.status(500).json({ message: 'Internal server error', status: false });
} }
if (results.length == 0) { if (results.length == 0) {
return res.status(404).json({message : 'User not found' ,status : false}); return res.status(404).json({ message: 'User not found', status: false });
} }
return res.json({ success: true, data: results[0] ,status : true}); 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 module.exports = router