const db = require("../config/dbproc.js"); const Adapter = require("./dbadapter.js"); class SAPAccountAdapter extends Adapter { constructor() { super(); } /* ================= LIST ================= */ async queryList(req, callback) { var apires = this.getApiResultDefined(); try { let keyword = req.query.keyword || ""; let qry = ` SELECT * FROM tbl_sap_connections WHERE deleted_at IS NULL AND ( host LIKE '%${keyword}%' OR sap_user LIKE '%${keyword}%' OR ket_sap LIKE '%${keyword}%' ) ORDER BY id ASC `; db.query(qry, [], function (err, result) { if (err) { apires.meta.code = 500; apires.meta.message = err.toString(); callback("err", apires); } else { apires.success = true; apires.data = result; callback(null, apires); } }); } catch (err) { apires.meta.code = 500; apires.meta.message = err.toString(); callback("error", apires); } } /* ================= CREATE ================= */ async queryCreate(req, callback) { var apires = this.getApiResultDefined(); try { const {sap_id, host, sysnr, client, codepage, ket_sap, sap_user, sap_password, aktivasi} = req.body; let qry = ` INSERT INTO tbl_sap_connections (sap_id, host, sysnr, client, codepage, ket_sap, sap_user, sap_password, aktivasi, created_at, created_by, status) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, NOW(), ?, 'Not_Active') `; db.query( qry, [ sap_id, host, sysnr, client, codepage, ket_sap, sap_user, sap_password, aktivasi, req.body.createdby || "system", ], function (err, result) { if (err) { apires.meta.code = 500; apires.meta.message = err.toString(); callback("err", apires); } else { apires.success = true; apires.data = {insertId: result.insertId}; callback(null, apires); } }, ); } catch (err) { apires.meta.code = 500; apires.meta.message = err.toString(); callback("error", apires); } } /* ================= UPDATE ================= */ async queryUpdate(req, callback) { var apires = this.getApiResultDefined(); try { const id = req.params.id; const {host, sysnr, client, codepage, ket_sap, sap_user, sap_password, aktivasi} = req.body; let qry = ` UPDATE tbl_sap_connections SET host = ?, sysnr = ?, client = ?, codepage = ?, ket_sap = ?, sap_user = ?, sap_password = ?, aktivasi = ?, updated_at = NOW(), updated_by = ? WHERE id = ? AND deleted_at IS NULL `; db.query( qry, [ host, sysnr, client, codepage, ket_sap, sap_user, sap_password, aktivasi, req.body.updatedby || "system", id, ], function (err, result) { if (err) { apires.meta.code = 500; apires.meta.message = err.toString(); callback("err", apires); } else { apires.success = true; apires.data = {affectedRows: result.affectedRows}; callback(null, apires); } }, ); } catch (err) { apires.meta.code = 500; apires.meta.message = err.toString(); callback("error", apires); } } /* ================= DELETE (SOFT) ================= */ async queryDelete(req, callback) { var apires = this.getApiResultDefined(); try { const id = req.params.id; let qry = ` UPDATE tbl_sap_connections SET deleted_at = NOW(), deleted_by = ? WHERE id = ? AND deleted_at IS NULL `; db.query(qry, [req.body.deletedby || "system", id], function (err, result) { if (err) { apires.meta.code = 500; apires.meta.message = err.toString(); callback("err", apires); } else { apires.success = true; apires.data = {affectedRows: result.affectedRows}; callback(null, apires); } }); } catch (err) { apires.meta.code = 500; apires.meta.message = err.toString(); callback("error", apires); } } } module.exports = SAPAccountAdapter;