diff --git a/adapter/sapaccountadapter.js b/adapter/sapaccountadapter.js new file mode 100644 index 0000000..e731935 --- /dev/null +++ b/adapter/sapaccountadapter.js @@ -0,0 +1,169 @@ +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; diff --git a/controllers/sap_account.js b/controllers/sap_account.js new file mode 100644 index 0000000..a20fb2c --- /dev/null +++ b/controllers/sap_account.js @@ -0,0 +1,65 @@ +const SAPAccountAdapter = require("../adapter/sapaccountadapter.js"); +const sapaccountadapter = new SAPAccountAdapter(); +const Controllers = require("./controller.js"); +const controllers = new Controllers(); +var apireshandler = controllers.getApiResultDefined(); + +/* ================= LIST ================= */ +exports.list = (req, res) => { + try { + sapaccountadapter.queryList(req, function (err, data) { + let statusCode = data != null ? data.meta.code : 200; + if (err) statusCode = 500; + sapaccountadapter.sendResponse(statusCode, data, res); + }); + } catch (err) { + apireshandler.meta.code = 502; + apireshandler.meta.message = " [20] : SAP Account controller, " + err.toString(); + sapaccountadapter.sendResponse(502, apireshandler, res); + } +}; + +/* ================= CREATE ================= */ +exports.create = (req, res) => { + try { + sapaccountadapter.queryCreate(req, function (err, data) { + let statusCode = data != null ? data.meta.code : 200; + if (err) statusCode = 500; + sapaccountadapter.sendResponse(statusCode, data, res); + }); + } catch (err) { + apireshandler.meta.code = 502; + apireshandler.meta.message = " [21] : SAP Account create, " + err.toString(); + sapaccountadapter.sendResponse(502, apireshandler, res); + } +}; + +/* ================= UPDATE ================= */ +exports.update = (req, res) => { + try { + sapaccountadapter.queryUpdate(req, function (err, data) { + let statusCode = data != null ? data.meta.code : 200; + if (err) statusCode = 500; + sapaccountadapter.sendResponse(statusCode, data, res); + }); + } catch (err) { + apireshandler.meta.code = 502; + apireshandler.meta.message = " [22] : SAP Account update, " + err.toString(); + sapaccountadapter.sendResponse(502, apireshandler, res); + } +}; + +/* ================= DELETE (SOFT DELETE) ================= */ +exports.delete = (req, res) => { + try { + sapaccountadapter.queryDelete(req, function (err, data) { + let statusCode = data != null ? data.meta.code : 200; + if (err) statusCode = 500; + sapaccountadapter.sendResponse(statusCode, data, res); + }); + } catch (err) { + apireshandler.meta.code = 502; + apireshandler.meta.message = " [23] : SAP Account delete, " + err.toString(); + sapaccountadapter.sendResponse(502, apireshandler, res); + } +}; diff --git a/routes/sap.js b/routes/sap.js new file mode 100644 index 0000000..c068039 --- /dev/null +++ b/routes/sap.js @@ -0,0 +1,11 @@ +const express = require("express"); +const sapcontroller = require("../controllers/sap_account.js"); +const jwtauth = require("../middlewares/auth.js"); +const router = express.Router(); + +router.get("/list", [jwtauth], sapcontroller.list); +router.post("/create", [jwtauth], sapcontroller.create); +router.put("/update/:id", [jwtauth], sapcontroller.update); +router.delete("/delete/:id", [jwtauth], sapcontroller.delete); + +module.exports = router;