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");
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 });
}
})

View File

@ -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 });
}
})

View File

@ -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