This commit is contained in:
Rizki
2026-01-08 17:12:08 +07:00
parent cc1102c444
commit 0221a6fb04
3 changed files with 112 additions and 13 deletions

View File

@ -7,10 +7,15 @@ class SAPAccountAdapter extends Adapter {
} }
/* ================= LIST ================= */ /* ================= LIST ================= */
/* ================= LIST + PAGINATION ================= */
async queryList(req, callback) { async queryList(req, callback) {
var apires = this.getApiResultDefined(); var apires = this.getApiResultDefined();
try { try {
let limit = parseInt(req.query.limit) || 10;
let offset = parseInt(req.query.offset) || 0;
let keyword = req.query.keyword || ""; let keyword = req.query.keyword || "";
/* ===== QUERY TOTAL ROW ===== */
let qry = ` let qry = `
SELECT * SELECT *
FROM tbl_sap_connections FROM tbl_sap_connections
@ -20,7 +25,6 @@ class SAPAccountAdapter extends Adapter {
OR sap_user LIKE '%${keyword}%' OR sap_user LIKE '%${keyword}%'
OR ket_sap LIKE '%${keyword}%' OR ket_sap LIKE '%${keyword}%'
) )
ORDER BY id ASC
`; `;
db.query(qry, [], function (err, result) { db.query(qry, [], function (err, result) {
@ -29,11 +33,51 @@ class SAPAccountAdapter extends Adapter {
apires.meta.message = err.toString(); apires.meta.message = err.toString();
callback("err", apires); callback("err", apires);
} else { } else {
if (result.length > 0) {
let pagination = result.length / limit;
if (!Number.isInteger(pagination)) {
pagination = Math.floor(result.length / limit) + 1;
}
apires.success = true; apires.success = true;
apires.data = result; apires.data.push({
totalpage: pagination,
totalrows: result.length,
});
/* ===== QUERY DATA WITH LIMIT ===== */
let qryData = `
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
LIMIT ${offset}, ${limit}
`;
db.query(qryData, [], function (err, resultData) {
if (err) {
apires.meta.code = 500;
apires.meta.message = err.toString();
callback("err", apires);
} else {
apires.data.push({
results: JSON.parse(JSON.stringify(resultData)),
});
callback(null, apires); callback(null, apires);
} }
}); });
} else {
apires.meta.code = 200;
apires.meta.message = "Record Not Found";
callback(null, apires);
}
}
});
} catch (err) { } catch (err) {
apires.meta.code = 500; apires.meta.code = 500;
apires.meta.message = err.toString(); apires.meta.message = err.toString();
@ -164,6 +208,44 @@ class SAPAccountAdapter extends Adapter {
callback("error", apires); callback("error", apires);
} }
} }
/* ================= DETAIL ================= */
async queryDetail(req, callback) {
var apires = this.getApiResultDefined();
try {
const id = req.params.id;
let qry = `
SELECT *
FROM tbl_sap_connections
WHERE id = ?
AND deleted_at IS NULL
LIMIT 1
`;
db.query(qry, [id], function (err, result) {
if (err) {
apires.meta.code = 500;
apires.meta.message = err.toString();
callback("err", apires);
} else {
if (result.length > 0) {
apires.success = true;
apires.data = result[0];
} else {
apires.meta.code = 200;
apires.meta.message = "Record Not Found";
apires.data = null;
}
callback(null, apires);
}
});
} catch (err) {
apires.meta.code = 500;
apires.meta.message = err.toString();
callback("error", apires);
}
}
} }
module.exports = SAPAccountAdapter; module.exports = SAPAccountAdapter;

View File

@ -63,3 +63,19 @@ exports.delete = (req, res) => {
sapaccountadapter.sendResponse(502, apireshandler, res); sapaccountadapter.sendResponse(502, apireshandler, res);
} }
}; };
/* ================= DETAIL ================= */
exports.detail = (req, res) => {
try {
sapaccountadapter.queryDetail(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 =
" [24] : SAP Account detail, " + err.toString();
sapaccountadapter.sendResponse(502, apireshandler, res);
}
};

View File

@ -7,5 +7,6 @@ router.get("/list", [jwtauth], sapcontroller.list);
router.post("/create", [jwtauth], sapcontroller.create); 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);
module.exports = router; module.exports = router;