update
This commit is contained in:
@ -1,12 +1,12 @@
|
|||||||
const db = require("../config/dbproc.js");
|
const db = require("../config/dbproc.js");
|
||||||
const Adapter = require("./dbadapter.js");
|
const Adapter = require("./dbadapter.js");
|
||||||
|
const request = require("request");
|
||||||
|
|
||||||
class SAPAccountAdapter extends Adapter {
|
class SAPAccountAdapter extends Adapter {
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ================= LIST ================= */
|
|
||||||
/* ================= LIST + PAGINATION ================= */
|
/* ================= LIST + PAGINATION ================= */
|
||||||
async queryList(req, callback) {
|
async queryList(req, callback) {
|
||||||
var apires = this.getApiResultDefined();
|
var apires = this.getApiResultDefined();
|
||||||
@ -246,6 +246,128 @@ class SAPAccountAdapter extends Adapter {
|
|||||||
callback("error", apires);
|
callback("error", apires);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ================= ACTIVATE ================= */
|
||||||
|
async queryActivate(req, callback) {
|
||||||
|
var apires = this.getApiResultDefined();
|
||||||
|
try {
|
||||||
|
const id = req.params.id;
|
||||||
|
|
||||||
|
/* 1️⃣ Ambil SAP connection dari DB */
|
||||||
|
let qry = `
|
||||||
|
SELECT *
|
||||||
|
FROM tbl_sap_connections
|
||||||
|
WHERE id = ?
|
||||||
|
AND deleted_at IS NULL
|
||||||
|
LIMIT 1
|
||||||
|
`;
|
||||||
|
|
||||||
|
db.query(qry, [id], (err, result) => {
|
||||||
|
if (err || result.length === 0) {
|
||||||
|
apires.meta.code = 404;
|
||||||
|
apires.meta.message = "SAP Connection not found";
|
||||||
|
return callback("err", apires);
|
||||||
|
}
|
||||||
|
|
||||||
|
const sap = result[0];
|
||||||
|
|
||||||
|
/* 2️⃣ Build SAP API URL (host + query) */
|
||||||
|
const sapUrl =
|
||||||
|
process.env.SAP_API_BASE_URL +
|
||||||
|
"/sapConnection" +
|
||||||
|
`?user=${sap.sap_user}` +
|
||||||
|
`&password=${sap.sap_password}` +
|
||||||
|
`&sysnr=${sap.sysnr}` +
|
||||||
|
`&client=${sap.client}` +
|
||||||
|
`&codepage=${sap.codepage}` +
|
||||||
|
`&ket_sap=${sap.ket_sap}` +
|
||||||
|
`&host=${encodeURIComponent(sap.host)}`;
|
||||||
|
|
||||||
|
const options = {
|
||||||
|
method: "POST",
|
||||||
|
url: sapUrl,
|
||||||
|
timeout: 10000, // ⏱️ 10 detik
|
||||||
|
};
|
||||||
|
|
||||||
|
/* 3️⃣ Call SAP API */
|
||||||
|
request(options, (error, response, body) => {
|
||||||
|
if (error) {
|
||||||
|
apires.meta.code = 500;
|
||||||
|
apires.meta.message = error.toString();
|
||||||
|
return callback("err", apires);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (response.statusCode !== 200) {
|
||||||
|
apires.meta.code = response.statusCode;
|
||||||
|
apires.meta.message = "SAP API failed";
|
||||||
|
apires.data = body;
|
||||||
|
return callback("err", apires);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 4️⃣ Set semua Not_Active */
|
||||||
|
db.query("UPDATE tbl_sap_connections SET status='Not_Active'", [], () => {
|
||||||
|
/* 5️⃣ Set Active untuk ID terpilih */
|
||||||
|
db.query(
|
||||||
|
`UPDATE tbl_sap_connections
|
||||||
|
SET status='Active',
|
||||||
|
updated_at=NOW(),
|
||||||
|
updated_by=?
|
||||||
|
WHERE id=?`,
|
||||||
|
[req.body.updatedby || "system", id],
|
||||||
|
(err2) => {
|
||||||
|
if (err2) {
|
||||||
|
apires.meta.code = 500;
|
||||||
|
apires.meta.message = err2.toString();
|
||||||
|
return callback("err", apires);
|
||||||
|
}
|
||||||
|
|
||||||
|
apires.success = true;
|
||||||
|
apires.data = {
|
||||||
|
message: "SAP Connection Activated",
|
||||||
|
sap_id: sap.sap_id,
|
||||||
|
};
|
||||||
|
callback(null, apires);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
apires.meta.code = 500;
|
||||||
|
apires.meta.message = err.toString();
|
||||||
|
callback("error", apires);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ================= CURRENT ================= */
|
||||||
|
async queryCurrent(req, callback) {
|
||||||
|
var apires = this.getApiResultDefined();
|
||||||
|
try {
|
||||||
|
let qry = `
|
||||||
|
SELECT *
|
||||||
|
FROM tbl_sap_connections
|
||||||
|
WHERE status='Active'
|
||||||
|
AND deleted_at IS NULL
|
||||||
|
LIMIT 1
|
||||||
|
`;
|
||||||
|
|
||||||
|
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.length > 0 ? result[0] : null;
|
||||||
|
callback(null, apires);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
apires.meta.code = 500;
|
||||||
|
apires.meta.message = err.toString();
|
||||||
|
callback("error", apires);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = SAPAccountAdapter;
|
module.exports = SAPAccountAdapter;
|
||||||
|
|||||||
@ -74,8 +74,37 @@ exports.detail = (req, res) => {
|
|||||||
});
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
apireshandler.meta.code = 502;
|
apireshandler.meta.code = 502;
|
||||||
apireshandler.meta.message =
|
apireshandler.meta.message = " [24] : SAP Account detail, " + err.toString();
|
||||||
" [24] : SAP Account detail, " + err.toString();
|
sapaccountadapter.sendResponse(502, apireshandler, res);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/* ================= ACTIVATE SAP ================= */
|
||||||
|
exports.activate = (req, res) => {
|
||||||
|
try {
|
||||||
|
sapaccountadapter.queryActivate(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 = " [25] : SAP Account activate, " + err.toString();
|
||||||
|
sapaccountadapter.sendResponse(502, apireshandler, res);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/* ================= CURRENT SAP ================= */
|
||||||
|
exports.current = (req, res) => {
|
||||||
|
try {
|
||||||
|
sapaccountadapter.queryCurrent(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 = " [26] : SAP Account current, " + err.toString();
|
||||||
sapaccountadapter.sendResponse(502, apireshandler, res);
|
sapaccountadapter.sendResponse(502, apireshandler, res);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -8,5 +8,7 @@ router.post("/create", [jwtauth], sapcontroller.create);
|
|||||||
router.put("/update/:id", [jwtauth], sapcontroller.update);
|
router.put("/update/:id", [jwtauth], sapcontroller.update);
|
||||||
router.delete("/delete/:id", [jwtauth], sapcontroller.delete);
|
router.delete("/delete/:id", [jwtauth], sapcontroller.delete);
|
||||||
router.get("/detail/:id", [jwtauth], sapcontroller.detail);
|
router.get("/detail/:id", [jwtauth], sapcontroller.detail);
|
||||||
|
router.post("/activate/:id", [jwtauth], sapcontroller.activate);
|
||||||
|
router.get("/current", [jwtauth], sapcontroller.current);
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
|
|||||||
Reference in New Issue
Block a user