var AWSService = {};
|
AWSService = {
|
sfSessionId : '',
|
insertModule : 'Insert AWS ',
|
updateModule : 'Update AWS ',
|
queryModule : 'Query AWS ',
|
searchModule : 'Search AWS ',
|
confirmTrans : 'Confirm Transaction To AWS',
|
successStatus : 'success',
|
failStatus : 'fail',
|
insertCalloutLog:function(module,url,request,response,status){
|
if(AWSService.sfSessionId){
|
sforce.connection.sessionId = AWSService.sfSessionId;
|
let transLog = new sforce.SObject('Transaction_Log__c');
|
transLog.AWS_Data_Id__c = '';
|
transLog.Module__c = module;
|
transLog.Interface_URL__c = url;
|
transLog.Request__c = request;
|
transLog.Response__c = response;
|
transLog.Status__c = status;
|
let insertLogResult = sforce.connection.create([transLog]);
|
if(insertLogResult[0].getBoolean(AWSService.successStatus)) {
|
console.log('Insert Log Id: ' + insertLogResult[0].id);
|
return insertLogResult[0].id;
|
}else {
|
console.log('Faield to insert log');
|
return '';
|
}
|
}
|
},
|
//Search Contact
|
search:function(searchUrl,requestSearchPayload,searchBack,token) {
|
let payloadstr= null;
|
if (requestSearchPayload) {
|
if (typeof requestSearchPayload == 'string') {
|
payloadstr = requestSearchPayload;
|
}else{
|
payloadstr = JSON.stringify(requestSearchPayload);
|
}
|
}
|
let para = {
|
url:searchUrl,
|
headers: {
|
'Content-Type': 'application/json',
|
'pi-token': token
|
},
|
type: "post",
|
success: function (result) {
|
AWSService.insertCalloutLog(AWSService.searchModule,searchUrl,JSON.stringify(requestSearchPayload),JSON.stringify(result),AWSService.successStatus);
|
searchBack(result);
|
},
|
error: function (error){
|
//错误相关处理 404属于该处理(经测试)
|
//还可能是"timeout", "error", "notmodified" 和 "parsererror"。
|
AWSService.insertCalloutLog(AWSService.searchModule,searchUrl,JSON.stringify(requestSearchPayload),JSON.stringify(error),AWSService.failStatus);
|
console.log('错误处理',error);
|
}
|
};
|
if (payloadstr) {
|
para.data = payloadstr;
|
}
|
jQuery.ajax(para);
|
|
},
|
|
//query
|
query:function(queryURL, awsDataId, queryback, token) {
|
if(awsDataId){
|
let para = {
|
url:queryURL + '?dataId=' + awsDataId,
|
headers: {
|
'Content-Type': 'application/json',
|
'pi-token': token
|
},
|
type: "get",
|
success: function (data) {
|
AWSService.insertCalloutLog(AWSService.queryModule,queryURL,queryURL + '?dataId=' + awsDataId,JSON.stringify(data),AWSService.successStatus);
|
queryback(data);
|
},
|
error: function (error){
|
//错误相关处理 404属于该处理(经测试)
|
//还可能是"timeout", "error", "notmodified" 和 "parsererror"。
|
AWSService.insertCalloutLog(AWSService.queryModule,queryURL,queryURL + '?dataId=' + awsDataId,JSON.stringify(error),AWSService.failStatus);
|
console.log(error);
|
}
|
};
|
jQuery.ajax(para);}else{
|
unblockUI();
|
}
|
},
|
|
//queryRepair
|
queryRepair:function(queryURL, awsDataId,Id,ContactId,queryback, token) {
|
if(awsDataId){
|
let para = {
|
url:queryURL + '?dataId=' + awsDataId,
|
headers: {
|
'Content-Type': 'application/json',
|
'pi-token': token
|
},
|
type: "get",
|
success: function (data) {
|
AWSService.insertCalloutLog(AWSService.queryModule,queryURL,queryURL + '?dataId=' + awsDataId,JSON.stringify(data),AWSService.successStatus);
|
queryback(data,Id,ContactId);
|
},
|
error: function (error){
|
//错误相关处理 404属于该处理(经测试)
|
//还可能是"timeout", "error", "notmodified" 和 "parsererror"。
|
AWSService.insertCalloutLog(AWSService.queryModule,queryURL,queryURL + '?dataId=' + awsDataId,JSON.stringify(error),AWSService.failStatus);
|
console.log(error);
|
}
|
};
|
jQuery.ajax(para);}else{
|
unblockUI();
|
}
|
|
},
|
|
//queryAddress
|
queryAddress:function(queryURL, addressName, queryback, token) {
|
if(addressName){
|
let para = {
|
url:queryURL + '?detailedAddress=' + addressName,
|
headers: {
|
'Content-Type': 'application/json',
|
'pi-token': token
|
},
|
type: "get",
|
success: function (data) {
|
AWSService.insertCalloutLog(AWSService.queryModule,queryURL,queryURL + '?detailedAddress=' + awsDataId,JSON.stringify(data),AWSService.successStatus);
|
queryback(data);
|
},
|
error: function (error){
|
//错误相关处理 404属于该处理(经测试)
|
//还可能是"timeout", "error", "notmodified" 和 "parsererror"。
|
AWSService.insertCalloutLog(AWSService.queryModule,queryURL,queryURL + '?detailedAddress=' + awsDataId,JSON.stringify(error),AWSService.failStatus);
|
console.log(error);
|
}
|
};
|
jQuery.ajax(para);}else{
|
unblockUI();
|
}
|
|
},
|
|
//insert
|
insert:function(newURL, payloadJson, payloadForNewPI, controllerSaveMethod, token, transactionURL,isNewMode,insertOrUpdateBack,redirectCallBack) {
|
console.log('Process New PI Data');
|
console.log(JSON.stringify(payloadForNewPI));
|
|
|
let payloadstr= null;
|
if (payloadForNewPI) {
|
if (typeof payloadForNewPI == 'string') {
|
payloadstr = payloadForNewPI;
|
}else{
|
payloadstr = JSON.stringify(payloadForNewPI);
|
}
|
}
|
let para = {
|
url:newURL,
|
headers: {
|
'Content-Type': 'application/json',
|
'pi-token': token
|
},
|
type: "post",
|
success: function (result) {
|
AWSService.insertCalloutLog(AWSService.insertModule,newURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),AWSService.successStatus);
|
AWSService.back(result, payloadJson, transactionURL, token, controllerSaveMethod,isNewMode,insertOrUpdateBack,redirectCallBack);
|
},
|
error: function (error){
|
//错误相关处理 404属于该处理(经测试)
|
//还可能是"timeout", "error", "notmodified" 和 "parsererror"。
|
AWSService.insertCalloutLog(AWSService.insertModule,newURL,JSON.stringify(payloadForNewPI),JSON.stringify(error),AWSService.failStatus);
|
console.log(error);
|
}
|
};
|
if (payloadstr) {
|
para.data = payloadstr;
|
}
|
jQuery.ajax(para);
|
|
|
},
|
|
//update
|
update:function(updateURL, payloadJson, payloadForNewPI, controllerSaveMethod, token, transactionURL,isNewMode,insertOrUpdateBack,redirectCallBack) {
|
console.log('Process New PI Data');
|
console.log(JSON.stringify(payloadForNewPI));
|
if(payloadForNewPI && JSON.parse(payloadForNewPI)[0] && JSON.parse(payloadForNewPI)[0]['dataId']){
|
let payloadstr= null;
|
if (payloadForNewPI) {
|
if (typeof payloadForNewPI == 'string') {
|
payloadstr = payloadForNewPI;
|
}else{
|
payloadstr = JSON.stringify(payloadForNewPI);
|
}
|
}
|
let para = {
|
url:updateURL,
|
headers: {
|
'Content-Type': 'application/json',
|
'pi-token': token
|
},
|
type: "post",
|
success: function (result) {
|
AWSService.insertCalloutLog(AWSService.updateModule,updateURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),AWSService.successStatus);
|
AWSService.back(result, payloadJson, transactionURL, token, controllerSaveMethod,isNewMode,insertOrUpdateBack,redirectCallBack);
|
},
|
error: function (error){
|
//错误相关处理 404属于该处理(经测试)
|
//还可能是"timeout", "error", "notmodified" 和 "parsererror"。
|
AWSService.insertCalloutLog(AWSService.updateModule,updateURL,JSON.stringify(payloadForNewPI),JSON.stringify(error),AWSService.failStatus);
|
console.log(error);
|
}
|
};
|
if (payloadstr) {
|
para.data = payloadstr;
|
}
|
jQuery.ajax(para);
|
}else{
|
unblockUI();
|
}
|
|
},
|
|
//update
|
post:function(postURL, payloadForNewPI, callback, token) {
|
console.log('Process New PI Data');
|
console.log(JSON.stringify(payloadForNewPI));
|
|
let payloadstr= null;
|
if (payloadForNewPI) {
|
if (typeof payloadForNewPI == 'string') {
|
payloadstr = payloadForNewPI;
|
}else{
|
payloadstr = JSON.stringify(payloadForNewPI);
|
}
|
}
|
let para = {
|
url:postURL,
|
headers: {
|
'Content-Type': 'application/json',
|
'pi-token': token
|
},
|
type: "post",
|
success: function (result) {
|
AWSService.insertCalloutLog(AWSService.insertModule,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),AWSService.successStatus);
|
if(callback) callback(result);
|
},
|
error: function (error){
|
AWSService.insertCalloutLog(AWSService.insertModule,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(error),AWSService.failStatus);
|
console.log(error);
|
}
|
};
|
if (payloadstr) {
|
para.data = payloadstr;
|
}
|
jQuery.ajax(para);
|
|
},
|
|
//update
|
postAWS:function(postURL,moduleName,payloadForNewPI, callback, token) {
|
console.log('Process New PI Data');
|
console.log(JSON.stringify(payloadForNewPI));
|
|
let payloadstr= null;
|
if (payloadForNewPI) {
|
if (typeof payloadForNewPI == 'string') {
|
payloadstr = payloadForNewPI;
|
}else{
|
payloadstr = JSON.stringify(payloadForNewPI);
|
}
|
}
|
let para = {
|
url:postURL,
|
headers: {
|
'Content-Type': 'application/json',
|
'pi-token': token
|
},
|
type: "post",
|
success: function (result) {
|
AWSService.insertCalloutLog(moduleName,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),AWSService.successStatus);
|
if(callback)callback(result);
|
},
|
error: function (error){
|
AWSService.insertCalloutLog(moduleName,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(error),AWSService.failStatus);
|
console.log(error);
|
}
|
};
|
if (payloadstr) {
|
para.data = payloadstr;
|
}
|
jQuery.ajax(para);
|
|
},
|
|
confirmTrans:function(transactionURL,transParameters,callback,token){
|
|
let payloadstr= null;
|
if (transParameters) {
|
if (typeof transParameters == 'string') {
|
payloadstr = transParameters;
|
}else{
|
payloadstr = JSON.stringify(transParameters);
|
}
|
}
|
let para = {
|
url:transactionURL,
|
headers: {
|
'Content-Type': 'application/json',
|
'pi-token': token
|
},
|
type: "post",
|
success: function (result) {
|
AWSService.insertCalloutLog(AWSService.confirmTrans,transactionURL,JSON.stringify(transParameters),JSON.stringify(result),AWSService.successStatus);
|
if(callback)callback(result);
|
},
|
error: function (error){
|
AWSService.insertCalloutLog(AWSService.confirmTrans,transactionURL,JSON.stringify(transParameters),JSON.stringify(error),AWSService.failStatus);
|
console.log(error);
|
}
|
};
|
|
if (payloadstr) {
|
para.data = payloadstr;
|
}
|
jQuery.ajax(para);
|
|
},
|
|
sfdcBack : function(event, result, transId, token, transactionURL,redirectCallBack) {
|
let sfId = '';
|
let errorMsg = '';
|
if (event.status) {
|
console.log('sf Id from SF Backend:' + JSON.stringify(result));
|
let transParameters = {
|
txId: transId
|
};
|
if (result.status == 'success') {
|
transParameters.isSuccess = 1;
|
transParameters.sfRecordId = sfId = result.recordId;;
|
}else{
|
transParameters.isSuccess = 0;
|
errorMsg = result.message;
|
}
|
|
let para = {
|
url:transactionURL,
|
headers: {
|
'Content-Type': 'application/json',
|
'pi-token': token
|
},
|
data:JSON.stringify(transParameters),
|
type: "post",
|
success: function (result) {
|
AWSService.insertCalloutLog(AWSService.confirmTrans,transactionURL,JSON.stringify(transParameters),JSON.stringify(result),AWSService.successStatus);
|
redirectCallBack(sfId,errorMsg);
|
},
|
error: function (error){
|
AWSService.insertCalloutLog(AWSService.confirmTrans,transactionURL,JSON.stringify(transParameters),JSON.stringify(error),AWSService.failStatus);
|
console.log(error);
|
}
|
};
|
|
jQuery.ajax(para);
|
}
|
},
|
|
// AWSService.back(result, payloadJson, transactionURL, token, controllerSaveMethod);
|
back : function(result, payloadJson, transactionURL, token, controllerSaveMethod,isNewMode,insertOrUpdateBack,redirectCallBack) {
|
let payloadJsonStr = JSON.stringify(insertOrUpdateBack(payloadJson, result,isNewMode));
|
let transId = result.txId + '';
|
Visualforce.remoting.Manager.invokeAction(
|
controllerSaveMethod, // example '{!$RemoteAction.NewAndEditLeadController.saveLead}'
|
payloadJsonStr, transId, isNewMode,
|
function (result, event) {
|
AWSService.sfdcBack(event, result, transId, token, transactionURL,redirectCallBack);
|
},
|
{ escape: true }
|
);
|
}
|
};
|