//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();