API SAP Account

This commit is contained in:
Rizki
2026-01-08 16:54:56 +07:00
parent 73ac2987a0
commit cc1102c444
3 changed files with 245 additions and 0 deletions

View File

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

View File

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

11
routes/sap.js Normal file
View File

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