export default class AWSService {
|
sfSessionId = '';
|
insertModule = 'Insert Ali ';
|
updateModule = 'Update Ali ';
|
queryModule = 'Query Ali ';
|
searchModule = 'Search Ali ';
|
// confirmTrans = 'Confirm Transaction To Ali',
|
successStatus = 'success';
|
failStatus = 'fail';
|
insertCalloutLog(module,url,request,response,status){
|
return;
|
}
|
//Search Contact
|
search2(staticResource, requestSearchPayload, searchBack) {
|
this.search(staticResource.searchUrl, requestSearchPayload, searchBack, staticResource.token);
|
}
|
search(searchUrl,requestSearchPayload,searchBack,token) {
|
let payloadstr= null;
|
if (requestSearchPayload) {
|
if (typeof requestSearchPayload == 'string') {
|
payloadstr = requestSearchPayload;
|
}else{
|
payloadstr = JSON.stringify(requestSearchPayload);
|
}
|
}
|
fetch(searchUrl, {
|
method: 'POST',
|
body: payloadstr,
|
headers: {
|
'Content-Type': 'application/json',
|
'pi-token': token
|
}
|
}).then((data) => {
|
return data.json();
|
}).then((result) => {
|
this.insertCalloutLog(this.searchModule,searchUrl,JSON.stringify(requestSearchPayload),JSON.stringify(result),this.successStatus);
|
searchBack(result);
|
}).catch(error => {
|
this.insertCalloutLog(this.searchModule,searchUrl,JSON.stringify(requestSearchPayload),JSON.stringify(error),this.failStatus);
|
console.log(error);
|
});
|
|
}
|
|
query2(staticResource, AliDataId, queryback) {
|
this.search(staticResource.queryUrl, AliDataId, queryback, staticResource.token);
|
}
|
//query
|
query(queryURL, AliDataId, queryback, token) {
|
fetch(queryURL + '?dataId=' + AliDataId, {
|
method: 'GET',
|
headers: {
|
'Content-Type': 'application/json',
|
'pi-token': token
|
}
|
}).then((data) => {
|
return data.json();
|
}).then((data) => {
|
this.insertCalloutLog(this.queryModule,queryURL,queryURL + '?dataId=' + AliDataId,JSON.stringify(data),this.successStatus);
|
queryback(data);
|
}).catch(error => {
|
this.insertCalloutLog(this.queryModule,queryURL,queryURL + '?dataId=' + AliDataId,JSON.stringify(error),this.failStatus);
|
console.log(error);
|
});
|
}
|
insert(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(piConfig,payloadJson,payloadForNewPI,redirectCallBack) {
|
let updateURL = piConfig.staticResource.updateUrl;
|
let controllerSaveMethod = piConfig.insertMethod;
|
let token = piConfig.staticResource.token;
|
let transactionURL = piConfig.staticResource.transactionUrl;
|
let isNewMode = piConfig.isNewMode;
|
let insertOrUpdateBack = piConfig.insertOrUpdateBack;
|
console.log('Process New PI Data');
|
console.log(JSON.stringify(payloadForNewPI));
|
if(piConfig.hasPIFields){
|
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: "put",
|
success: result => {
|
this.insertCalloutLog(this.updateModule,updateURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),this.successStatus);
|
this.back(result, payloadJson, transactionURL, token, controllerSaveMethod,isNewMode,insertOrUpdateBack,redirectCallBack,piConfig.staticResource.currentUserId);
|
},
|
error: error =>{
|
//错误相关处理 404属于该处理(经测试)
|
//还可能是"timeout", "error", "notmodified" 和 "parsererror"。
|
this.insertCalloutLog(this.updateModule,updateURL,JSON.stringify(payloadForNewPI),JSON.stringify(error),this.failStatus);
|
console.log(error);
|
}
|
};
|
if (payloadstr) {
|
para.data = payloadstr;
|
}
|
jQuery.ajax(para);
|
}else{
|
Visualforce.remoting.Manager.invokeAction(
|
controllerSaveMethod,
|
JSON.stringify(payloadJson), '', isNewMode,
|
(result, event) => {
|
if (event.status) {
|
redirectCallBack(result.recordId,result.status == 'success'? null : result.message);
|
}else{
|
console.log(result)
|
console.log(event)
|
}
|
|
},
|
{ escape: true }
|
);
|
}
|
|
}
|
|
get(queryURL, callback, token) {
|
console.log('Process New PI Data');
|
|
fetch(queryURL, {
|
method: 'GET',
|
body: payloadstr,
|
headers: {
|
'Content-Type': 'application/json',
|
'pi-token': token
|
}
|
}).then((data) => {
|
return data.json();
|
}).then((result) => {
|
this.insertCalloutLog(this.queryModule,queryURL,'',JSON.stringify(result),this.successStatus);
|
callback(result);
|
}).catch(error => {
|
this.insertCalloutLog(this.queryModule,queryURL,'',JSON.stringify(error),this.failStatus);
|
console.log(error);
|
});
|
|
}
|
|
post(postURL, payloadForNewPI, callback, token,callbackError) {
|
this.pushData(postURL,payloadForNewPI,callback, token,'POST');
|
}
|
|
put(putURL, payloadForNewPI, callback, token){
|
this.pushData(putURL,payloadForNewPI,callback, token,'PUT');
|
}
|
|
pushData(destUrl, payloadForNewPI, callback, token,type) {
|
console.log('enter '+type);
|
//console.log(JSON.stringify(payloadForNewPI));
|
|
let payloadstr= null;
|
if (payloadForNewPI) {
|
if (typeof payloadForNewPI == 'string') {
|
payloadstr = payloadForNewPI;
|
}else{
|
payloadstr = JSON.stringify(payloadForNewPI);
|
}
|
}
|
console.log(payloadstr);
|
fetch(destUrl, {
|
method: type,
|
body: payloadstr,
|
headers: {
|
'Content-Type': 'application/json',
|
'pi-token': token
|
}
|
}).then((data) => {
|
return data.json();
|
}).then((result) => {
|
callback(result);
|
}).catch(error => {
|
let message = error + '';
|
if(error.body && error.body.message){
|
message = error.body.message;
|
}
|
callback({
|
message : 'AWS处理出错,原因:' + message
|
})
|
});
|
}
|
|
confirm(result,sfId,transId, token, transactionURL,redirectCallBack){
|
this.sfdcBack({status:result},{status:result?'success':'failed',recordId:sfId},transId,token,transactionURL,redirectCallBack)
|
}
|
|
sfdcBack (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;
|
}
|
|
this.post(transactionURL, transParameters, redirectCallBack, token)
|
}else{
|
console.log('event.status=false');
|
}
|
}
|
|
// this.back(result, payloadJson, transactionURL, token, controllerSaveMethod);
|
back (result, payloadJson, transactionURL, token, controllerSaveMethod,isNewMode,insertOrUpdateBack,redirectCallBack,operater) {
|
let payloadJsonStr = JSON.stringify(insertOrUpdateBack(payloadJson, result,isNewMode));
|
let transId = result.txId + '';
|
Visualforce.remoting.Manager.invokeAction(
|
controllerSaveMethod, // example '{!$RemoteAction.NewAndEditLeadController.saveLead}'
|
payloadJsonStr, transId, isNewMode,
|
(result, event)=> {
|
this.sfdcBack(event, result, transId, token, transactionURL,redirectCallBack,operater);
|
},
|
{ escape: true }
|
);
|
}
|
//校验是否有特殊字符*
|
isSpecialchar (params) {
|
console.log('isSpecialchar start');
|
console.log('params:'+params);
|
if (!params) {
|
console.log('参数为空:'+params);
|
return false;
|
}
|
console.log('是否有*:'+params.indexOf('*'));
|
if (params.indexOf('*') >= 0 ){
|
return true;
|
}
|
return false;
|
}
|
|
test(){
|
console.log('lwc AWSService load success');
|
}
|
}
|