/**
@description Valida acesso
@example
var filtro = []
filtro.push(DatasetFactory.createConstraint('password', 'xxxxx', '', ConstraintType.MUST));
filtro.push(DatasetFactory.createConstraint('colleagueId', 'yyyyyy', '', ConstraintType.MUST));
var ds = DatasetFactory.getDataset('ECMColleagueService-validateColleagueLogin', null, filtro, null);
console.log("ds",ds);
*/
function createDataset(fields, constraints, sortFields) {
try {
log.log("####constraints#####1#####")
log.dir(constraints)
log.log("####constraints#####1#####")
return processResult(callService(fields, constraints, sortFields));
} catch(e) {
return processErrorResult(e, constraints);
}
}
function callService(fields, constraints, sortFields) {
log.log("####constraints####2#####")
log.dir(constraints)
log.log("####constraints####2######")
var serviceData = data(constraints);
var params = serviceData.inputValues;
var assigns = serviceData.inputAssignments;
verifyConstraints(serviceData.inputValues, constraints);
var serviceHelper = ServiceManager.getService(serviceData.fluigService);
var serviceLocator = serviceHelper.instantiate(serviceData.locatorClass);
var service = serviceLocator.getColleagueServicePort();
var response = service.validateColleagueLogin(getParamValue(params.companyId, assigns.companyId), getParamValue(params.colleagueId, assigns.colleagueId),
getParamValue(params.password, assigns.password));
return response;
}
function defineStructure() {
addColumn('response');
}
function onSync(lastSyncDate) {
var serviceData = data();
var synchronizedDataset = DatasetBuilder.newDataset();
try {
var resultDataset = processResult(callService());
if (resultDataset != null) {
var values = resultDataset.getValues();
for (var i = 0; i < values.length; i++) {
synchronizedDataset.addRow(values[i]);
}
}
} catch(e) {
log.info('Dataset synchronization error : ' + e.message);
}
return synchronizedDataset;
}
function verifyConstraints(params, constraints) {
if (constraints != null) {
for (var i = 0; i < constraints.length; i++) {
try {
params[constraints[i].fieldName] = JSON.parse(constraints[i].initialValue);
} catch(e) {
params[constraints[i].fieldName] = constraints[i].initialValue;
}
}
}
}
function processResult(result) {
var dataset = DatasetBuilder.newDataset();
dataset.addColumn("response");
dataset.addRow([result]);
return dataset;
}
function processErrorResult(error, constraints) {
var dataset = DatasetBuilder.newDataset();
var params = data().inputValues;
verifyConstraints(params, constraints);
dataset.addColumn('error');
dataset.addColumn('companyId');
dataset.addColumn('password');
dataset.addColumn('colleagueId');
var companyId = isPrimitive(params.companyId) ? params.companyId : JSONUtil.toJSON(params.companyId);
var password = isPrimitive(params.password) ? params.password : JSONUtil.toJSON(params.password);
var colleagueId = isPrimitive(params.colleagueId) ? params.colleagueId : JSONUtil.toJSON(params.colleagueId);
dataset.addRow([error.message, companyId, password, colleagueId]);
return dataset;
}
function getParamValue(param, assignment) {
if (assignment == 'VARIABLE') {
return getValue(param);
} else if (assignment == 'NULL') {
return null;
}
return param;
}
function hasValue(value) {
return value !== null && value !== undefined;
}
function isPrimitive(value) {
return ((typeof value === 'string') || value.substring !== undefined) || typeof value === 'number' || typeof value === 'boolean' || typeof value === 'undefined';
}
function getObjectFactory(serviceHelper) {
var objectFactory = serviceHelper.instantiate("com.totvs.technology.ecm.foundation.ws.ObjectFactory");
return objectFactory;
}
function data(constraints) {
log.log("####constraints##########")
log.dir(constraints)
log.log("####constraints##########")
var password = "";
var colleagueId = "";
for (i = 0; i < constraints.length; i++){
if (constraints[i].fieldName == "password"){
password = new java.lang.String(constraints[i].initialValue);
}else if (constraints[i].fieldName == "colleagueId"){
colleagueId = new java.lang.String(constraints[i].initialValue);
}
}
return {
"fluigService" : "ECMColleagueService",
"operation" : "validateColleagueLogin",
"soapService" : "ECMColleagueServiceService",
"portType" : "ColleagueService",
"locatorClass" : "com.totvs.technology.ecm.foundation.ws.ECMColleagueServiceService",
"portTypeMethod" : "getColleagueServicePort",
"parameters" : [ ],
"inputValues" : {
"companyId" : "WKCompany",
"password" : password+"",
"colleagueId" : colleagueId+""
},
"inputAssignments" : {
"companyId" : "VARIABLE",
"password" : "VALUE",
"colleagueId" : "VALUE"
},
"outputValues" : { },
"outputAssignments" : { },
"extraParams" : {
"enabled" : false
}
}
}
function stringToBoolean(param) {
if(typeof(param) === 'boolean') {
return param;
}
if (param == null || param === 'null') {
return false;
}
switch(param.toLowerCase().trim()) {
case 'true': case 'yes': case '1': return true;
case 'false': case 'no': case '0': case null: return false;
default: return Boolean(param);
}
}