252 lines
5.9 KiB
JavaScript
252 lines
5.9 KiB
JavaScript
const db = require("../config/dbproc.js");
|
|
const Adapter = require("./dbadapter.js");
|
|
|
|
class SAPAccountAdapter extends Adapter {
|
|
constructor() {
|
|
super();
|
|
}
|
|
|
|
/* ================= LIST ================= */
|
|
/* ================= LIST + PAGINATION ================= */
|
|
async queryList(req, callback) {
|
|
var apires = this.getApiResultDefined();
|
|
try {
|
|
let limit = parseInt(req.query.limit) || 10;
|
|
let offset = parseInt(req.query.offset) || 0;
|
|
let keyword = req.query.keyword || "";
|
|
|
|
/* ===== QUERY TOTAL ROW ===== */
|
|
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}%'
|
|
)
|
|
`;
|
|
|
|
db.query(qry, [], function (err, result) {
|
|
if (err) {
|
|
apires.meta.code = 500;
|
|
apires.meta.message = err.toString();
|
|
callback("err", apires);
|
|
} 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.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);
|
|
}
|
|
});
|
|
} else {
|
|
apires.meta.code = 200;
|
|
apires.meta.message = "Record Not Found";
|
|
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);
|
|
}
|
|
}
|
|
|
|
/* ================= 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;
|