Name
global.SaOperationsWrapper
Description
No description available
Script
var SaOperationsWrapper = Class.create();
SaOperationsWrapper.prototype = {
initialize: function(handlerClass) {
this.handler = new handlerClass();
},
process: function(request, response, action, hasBody) {
//extract parameters from request and create paramsDTO
var refererParams = this.getRefererParameters(request);
var paramsDTO = new SNC.RequestParametersDTO();
var queryParams = request.queryParams;
var params = [];
var serviceId = this.retrieveServiceIdFromParams(queryParams);
for (var queryParam in queryParams) {
if (queryParams.hasOwnProperty(queryParam)) {
params.push(queryParam);
paramsDTO.setParameter(queryParam, queryParams[queryParam]);
}
}
if (hasBody) {
var bodyParams;
var requestBody = request.body;
var requestData = requestBody.data; //May be an array or a single object
if (requestData instanceof Array) {
bodyParams = requestData[0];
} else {
bodyParams = requestData;
}
serviceId = (serviceId == null) ? this.retrieveServiceIdFromParams(bodyParams) : serviceId;
for (var bodyParam in bodyParams) {
if (bodyParams.hasOwnProperty(bodyParam)) {
params.push(bodyParam);
paramsDTO.setParameter(bodyParam, bodyParams[bodyParam]);
}
}
}
var responseString = 'FALLBACK';
if (serviceId != null && serviceId.startsWith('PREVIEW')) {
var pmh = new sn_sm_scoped_app.PreviewMapHandler();
responseString = String(pmh.process(serviceId, action, paramsDTO));
}
if (responseString == 'FALLBACK')
responseString = String(this.handler.callAction(action, paramsDTO));
response.setStatus(this.handler.getResponseStatus());
response.setContentType(this.handler.getResponseContentType());
var writer = response.getStreamWriter();
writer.writeString(responseString);
},
processStreams: function(request, response, action, hasBody) {
//extract parameters from request and create paramsDTO
var paramsDTO = new SNC.RequestParametersDTO();
var queryParams = request.queryParams;
for (var queryParam in queryParams) {
if (queryParams.hasOwnProperty(queryParam))
paramsDTO.setParameter(queryParam, queryParams[queryParam]);
}
if (hasBody) {
var requestBody = request.body;
var inputDataStream = requestBody.dataStream;
var outputStream = response.getStreamWriter();
this.handler.callActionStream(action, paramsDTO, inputDataStream, outputStream);
} else {
this.handler.callActionStream(action, paramsDTO, null, response.getStreamWriter());
}
response.setStatus(this.handler.getResponseStatus());
},
retrieveServiceIdFromParams: function(params) {
var propertiesToCheck = ["bsId", "id"];
for (var i in propertiesToCheck) {
if (params.hasOwnProperty(propertiesToCheck[i])) {
return String(params[propertiesToCheck[i]]);
}
}
return null;
},
type: 'SaOperationsWrapper'
};
Sys ID
88bf1a9b7f120300995cbaf8befa91c4