116 lines
2.8 KiB
JavaScript
116 lines
2.8 KiB
JavaScript
//var datetimelib = $.import("uniorg.libs", "datetime");
|
|
//var logginglib = $.import("uniorg.libs", "uologging");
|
|
//var billingEngine = $.import("uniorg.eon.emobility.billing.engine.v1", "BillingEngine");
|
|
|
|
var serviceName = "eon.emobility.provider.backend.keepAlive.xsjs";
|
|
var serviceVersion = '1.0';
|
|
|
|
var output = {};
|
|
var outMessages = [];
|
|
var outMsg = {};
|
|
var outStatus = "success";
|
|
var myDebug = {};
|
|
|
|
var debugLevel = 0;
|
|
switch ($.request.parameters.get("debug")) {
|
|
case "true":
|
|
case "yes":
|
|
case "1":
|
|
debugLevel = 1;
|
|
break;
|
|
case "full":
|
|
case "2":
|
|
debugLevel = 2;
|
|
break;
|
|
}
|
|
|
|
if (debugLevel > 0) {
|
|
output.requestParams = $.request.parameters;
|
|
}
|
|
|
|
function setOutputMessage() {
|
|
output.status = outStatus;
|
|
if (debugLevel > 0) {
|
|
output.debugInfos = myDebug;
|
|
}
|
|
output.messages = outMessages;
|
|
$.response.contentType = "application/json";
|
|
$.response.setBody(JSON.stringify(output));
|
|
//$.response.status = $.net.http.OK;
|
|
}
|
|
|
|
function exceptionHandler(ex) {
|
|
outMsg = {};
|
|
outMsg.method = "exceptionHandler";
|
|
outMsg.status = "error";
|
|
outMsg.message = ex.toString();
|
|
if (debugLevel > 0) {
|
|
outMsg.exceptionInfo = {};
|
|
outMsg.exceptionInfo.name = ex.name;
|
|
outMsg.exceptionInfo.message = ex.message;
|
|
outMsg.exceptionInfo.fileName = ex.fileName;
|
|
outMsg.exceptionInfo.lineNumber = ex.lineNumber;
|
|
outMsg.exceptionInfo.columnNumber = ex.columnNumber;
|
|
outMsg.exceptionInfo.stack = ex.stack;
|
|
//outMsg.exceptionInfo.source = ex.toSource();
|
|
}
|
|
outMessages.push(outMsg);
|
|
outStatus = "error";
|
|
output.status = outStatus;
|
|
if (debugLevel > 0) {
|
|
output.debugInfos = myDebug;
|
|
}
|
|
output.messages = outMessages;
|
|
|
|
var errbody = JSON.stringify(output);
|
|
$.response.contentType = 'application/json';
|
|
$.response.setBody(errbody);
|
|
$.response.status = $.net.http.INTERNAL_SERVER_ERROR;
|
|
}
|
|
|
|
function checkAuthorization() {
|
|
var isAuthorized = true;
|
|
try {
|
|
$.session.assertAppPrivilege("uniorg.eon.emobility.provider::ViewProviderData");
|
|
} catch (ex) {
|
|
isAuthorized = false;
|
|
outMsg = {};
|
|
outMsg.method = "checkAuthorization";
|
|
outMsg.status = "error";
|
|
outStatus = "error";
|
|
outMsg.message = "Privilege '" + ex.privilege + "' is missing";
|
|
outMessages.push(outMsg);
|
|
$.response.status = $.net.http.FORBIDDEN;
|
|
}
|
|
return isAuthorized;
|
|
}
|
|
|
|
function dbRequest() {
|
|
outMsg = {};
|
|
outMsg.method = "databaseKeepAliveRequest";
|
|
outMsg.status = "success";
|
|
try {
|
|
|
|
var conn = $.db.getConnection();
|
|
var pstmt;
|
|
var query = "SELECT 'ok' as \"Alive\" FROM DUMMY";
|
|
pstmt = conn.prepareStatement(query);
|
|
var rs = pstmt.executeQuery();
|
|
if (rs.next()) {
|
|
outMsg.status = 'success';
|
|
outStatus = 'success';
|
|
}
|
|
rs.close();
|
|
pstmt.close();
|
|
conn.close();
|
|
outMessages.push(outMsg);
|
|
} catch (ex) {
|
|
exceptionHandler(ex);
|
|
}
|
|
}
|
|
|
|
// main
|
|
if (checkAuthorization()) {
|
|
dbRequest();
|
|
}
|
|
setOutputMessage(); |