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(); - For jsonToResult API
// 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(); -
For resultToJSON API
// 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();