JavaScript Sample Code for Preprocessor and Postprocessor
PreProcessor
- To add an input parameter:
// Sample JavaScript Code to add an input parameter for preprocessor
function sampleSetInputParams() {
logger.debug('Tesing Request params');
var requestObj = voltMX.getRequestObject();
requestObj.inputParams['place']='London';
//update request
requestObj.update();
return true;
}
sampleSetInputParams();
- To add a new request parameter:
// Sample JavaScript Code to add a request parameter for preprocessor
function sampleSetRequestParams() {
logger.debug('Testing addRequestParam_ method of DataControllerRequest');
var requestObj = voltMX.getRequestObject();
requestObj.reqParams['eventId']='QueMessage';
//update request
requestObj.update();
return true;
}
sampleSetRequestParams();
- To add an attribute to the session:
// Sample JavaScript Code to add an attribute to the session for preprocessor
function sampleSetSessionAttribute() {
var requestObj = voltMX.getRequestObject();
var session = requestObj.getSession();
session.attributes['AppUserPreferredName'] = 'Cosmo';
//update request
requestObj.update();
return true;
}
sampleSetSessionAttribute();
- To validate the input parameter before Service call:
// Sample JavaScript Code to validate the input before service call for preprocessor
function sampleValidateInputParams() {
var requestObj = voltMX.getRequestObject();
var userName = '';
if (requestObj.inputParams.containsKey('username'))
userName = requestObj.inputParams['username'];
var password = '';
if (requestObj.inputParams.containsKey('password'))
password = requestObj.inputParams['password'];
if( userName == 'masterUser' && password == 'password'){
return true;
}
return false;
}
sampleValidateInputParams();
- A function which uses most of the request APIs:
// Sample JavaScript Code for preprocessor
function fun5() {
logger.debug('Testing addRequestParam_ method of DataControllerRequest');
request.addRequestParam_('newParam', 'newParamValue');
var varParam = request.getParameter('newParam');
logger.debug('The Param Value is :' + varParam);
logger.debug('Tesing containsKeyInRequest method of DataControllerRequest');
var varContainsKey = request.containsKeyInRequest('newParam');
logger.debug('Does it contain newParam :' + varContainsKey);
logger.debug('Tesing containsKeyInRequest method of DataControllerRequest');
request.setAttribute('newAtt', 'newAttValue');
var varContainsAttribute = request.containsKeyInRequestContext('newAt');
logger.debug('Does it contain newAtt :' + varContainsAttribute);
logger.debug('Tesing getAttribute method of DataControllerRequest');
var varGetAttribute = request.getAttribute('newAtt');
logger.debug('The value of attribute newAtt is :' + varGetAttribute);
logger.debug('Tesing getHeader method of DataControllerRequest');
var varHeader = request.getHeader('Host');
logger.debug('The value of Host header is :' + varHeader);
logger.debug('Tesing GetParameterValues method of DataControllerRequest');
var varGetParameterValues = request.getParameterValues('newParam');
for (var i in varGetParameterValues) {
logger.debug('The Array Values are :' + varGetParameterValues[i]);
}
logger.debug('Tesing getRemoteAddr method of DataControllerRequest');
var varGetRemoteAddr = request.getRemoteAddr();
logger.debug('The Remote Address is :' + varGetRemoteAddr);
logger.debug('Tesing put method of HashMap');
serviceInputParams.put('place', 'London');
serviceInputParams.put('city', 'Madras');
serviceInputParams.put('country', 'india');
logger.debug('Tesing getSession method of DataControllerRequest');
var varSession = request.getSession();
varSession.setAttribute('sessionAttributeName', 'sessionAttributeValue');
}
fun5();
// Sample JavaScript Code For jsonToResult API
function sampleModifyResultJson() {
var resultObj = voltMX.getResultObject();
var resultJson = resultObj.toJson();
resultJson.record = {
"message" : "Returned from Pre-processor",
"status" : "rejected"
};
resultObj.appendJson(resultJson);
//update result
resultObj.update();
return false;
}
sampleModifyResultJson();
PostProcessor
- To add parameter to result:
// Sample JavaScript Code to add parameter to result for postprocessor
function AddParamToResult() {
logger.debug('Tesing Result params');
var resultObj = voltMX.getResultObject();
resultObj.params['Location']='RTP';
//update result
resultObj.update();
}
AddParamToResult();
- To add a new output parameter:
// Sample JavaScript Code to add a new output parameter for postprocessor
function fun5() {
logger.debug('Tesing Adding a new Output Parameter');
var newOutputParam = new com.hcl.voltmx.middleware.dataobject.Param();
newOutputParam.setName('outputParamName');
newOutputParam.setValue('outputParamValue');
result.setParam(newOutputParam);
}
fun5();
- To get Session attribute for postprocessor:
// Sample JavaScript Code to get Session attribute for postprocessor
function sampleGetSessionAttribute() {
var requestObj = voltMX.getRequestObject();
var session = requestObj.getSession();
var attrValue = session.attributes['AttributeName'];
}
sampleGetSessionAttribute();
- To add a custom device header:
// Sample JavaScript Code to add a custom device header for postprocessor
function AddDeviceHeaderToResponse() {
var responseObj = voltMX.getResponseObject();
responseObj.deviceHeaders['GEO']='NA';
//update response
responseObj.update();
}
AddDeviceHeaderToResponse();
- To add Datasets to result:
// Sample JavaScript Code to add a dataset to result for postprocessor
function sampleAddResultDataset() {
var resultObj = voltMX.getResultObject();
resultObj.addNewDataset('id1');
resultObj.datasets['id1'].addNewRecord('r00');
resultObj.datasets['id1'].records['r00'].params['color']='red';
resultObj.datasets['id1'].records['r00'].params['value']='#f00';
resultObj.addNewDataset('id2');
resultObj.datasets['id2'].addNewRecord('r10');
resultObj.datasets['id2'].records['r10'].params['color']='green';
resultObj.datasets['id2'].records['r10'].params['value']='#0f0';
//update result
resultObj.update();
}
sampleAddResultDataset();
- A function which uses most of the response APIs:
// Sample JavaScript Code for postprocessor
function fun8() {
var newOutputParam = new com.hcl.voltmx.middleware.dataobject.Param();
newOutputParam.setName('outputParamName');
newOutputParam.setValue('outputParamValue');
result.setParam(newOutputParam);
logger.debug('Tesing getAttribute method of DataControllerResponse');
response.setAttribute('responseAttribute', 'responseAttributeValue');
var varResponseAttribute = response.getAttribute('responseAttribute');
logger.debug('The value of Response Attribute is :' + varResponseAttribute);
logger.debug('Tesing getCharsetEncoding method of DataControllerResponse');
var varCharsetEncoding = response.getCharsetEncoding();
logger.debug('The value of getCharsetEncoding is :' + varCharsetEncoding);
logger.debug('Tesing setDeviceHeaders method of DataControllerResponse');
var varHashMap = new java.util.HashMap();
varHashMap.put('newHeader', 'newHeaderValue');
response.setDeviceHeaders(varHashMap);
logger.debug('Tesing setStatusCode method of DataControllerResponse');
varStatusCode = response.getStatusCode();
logger.debug('The Current Status Code is :' + varStatusCode);
response.setStatusCode(302);
varStatusCode1 = response.getStatusCode();
logger.debug('The Current Status Code is :' + varStatusCode1);
var varSessionPost = request.getSession();
var varRequestSessionAttribute = varSessionPost.getAttribute('sessionAttributeName');
logger.debug('The Session Attribute Value is :' + varRequestSessionAttribute);
}
fun8();
- To set custom httpStatusCode params through JavaScript postprocessor in result:
// Sample JavaScript Code to add Custom Http Status
function setHttpStatusCode() {
var resultObj = voltMX.getResultObject();
resultObj.setHttpStatus(400);
//update result
resultObj.update();
}
setHttpStatusCode();
- To set custom opstatus params through JavaScript postprocessor in result:
// Sample JavaScript Code to add Custom Op Status
function setOpStatusCode() {
var resultObj = voltMX.getResultObject();
resultObj.setOpStatus(300);
//update result
resultObj.update();
}
setOpStatusCode();
// Sample JavaScript Code for resultToJSON API
function getCertificate_Postprocessor(){
var resultObj = voltMX.getResultObject();
var jsonObject = resultObj.toJson();
if(resultObj.records && resultObj.records.length > 0){
var cert = jsonObject.records[0];
jsonObject.certificate = [{
"online_course": true,
"doctor": {
"id": cert.doctor.doctor_id,
"email": cert.doctor.doctor_email,
},
"entity": {
"id": cert.entity.entity_id,
"email": cert.entity.entity_email,
"doc_num": cert.entity.entity_doc_num,
}
}];
return jsonObject;
}
}
getCertificate_Postprocessor();