/*
|
* Author: Bubba Li
|
* Created Date: 01/25/2022
|
* Purpose: Utility class for AWS Servicw
|
* Test Class: AWSServiceTool
|
* History:
|
* 01/25/2022 - Bubba Li - Initial Code.
|
*
|
* */
|
public without sharing class AWSServiceTool {
|
public static Boolean getAWSServiceStatus(){
|
AWS_Integration_Info__mdt awsConfiguration = [SELECT Enable_AWS_Service__c FROM AWS_Integration_Info__mdt WHERE DeveloperName = 'AWS_Default_Configuration'];
|
if (awsConfiguration == null) {
|
System.debug('AWS_Integration_Info__mdt没配置');
|
return false;
|
}
|
return awsConfiguration.Enable_AWS_Service__c;
|
}
|
public static List<Contact> getNoPIContact(String searchContactName,String accountId){
|
if(searchContactName!='' || accountId!=''){
|
String noPISQL = 'select Id,Name,Email,Phone,Account.Name,MobilePhone from Contact where Account_Record_Type_DeveloperName__c in('+'\'Agency\''+','+'\'Dealer\''+')';
|
if(String.isNotEmpty(accountId)){
|
String[] accountIds = accountId.split(',');
|
String accounts = '';
|
for(String s : accountIds){
|
accounts += ',\''+s+'\'';
|
}
|
accounts = accounts.substring(1);
|
System.debug('accounts = ' + accounts);
|
noPISQL += ' and AccountId in ('+accounts+')';
|
}
|
if(String.isNotEmpty(searchContactName)){
|
noPISQL += ' and Name like \'%'+searchContactName+'%\'';
|
}
|
system.debug('noPISQL = ' + noPISQL);
|
List<Contact> partnerContactList = Database.query(noPISQL);
|
return partnerContactList;
|
}
|
return new List<Contact>();
|
}
|
public static String getAWSToken(){
|
AWS_Integration_Info__mdt awsConfiguration = [SELECT App_Id__c,Token_URL__c,App_Secret__c,Host_URL__c FROM AWS_Integration_Info__mdt WHERE DeveloperName = 'AWS_Default_Configuration'];
|
if (awsConfiguration == null) {
|
System.debug('AWS_Integration_Info__mdt没配置');
|
return null;
|
}
|
String awsAppId = awsConfiguration.App_Id__c;
|
String awsAppSecret = awsConfiguration.App_Secret__c;
|
Http http = new Http();
|
HttpRequest request = new HttpRequest();
|
String url = awsConfiguration.Token_URL__c;
|
request.setEndpoint(url);
|
request.setMethod('GET');
|
if(Test.isRunningTest()){
|
return 'UTToken';
|
}
|
HttpResponse response = http.send(request);
|
Map<String, Object> results = (Map<String, Object>) JSON.deserializeUntyped(response.getBody());
|
String token = (String)results.get('object');
|
return token;
|
}
|
@future(callout=true)
|
public static void deleteFileAddress(Set<String> fileAddressIds){
|
//1. Get file address id
|
system.debug('fileAddressId = '+ JSON.serialize(fileAddressIds));
|
PIHelper.PIIntegration documentPI=PIHelper.getPIIntegrationInfo('Document');
|
//2. Delete aws file doucment and post aws service
|
Http http = new Http();
|
HttpRequest request = new HttpRequest();
|
String url = documentPI.deleteUrl;
|
request.setEndpoint(url);
|
request.setMethod('POST');
|
request.setHeader('pi-token',documentPI.token);
|
request.setHeader('Content-Type', 'application/json');
|
request.setBody(JSON.serialize(fileAddressIds));
|
HttpResponse response = http.send(request);
|
system.debug('response = ' + response);
|
if(response.getStatusCode() == 200){
|
Map<String, Object> results = (Map<String, Object>) JSON.deserializeUntyped(response.getBody());
|
if(results.get('status')=='0'){
|
System.debug('成功删除');
|
}
|
}
|
}
|
//add for pipl sushanhu 20220311 start
|
public static response sendToPiAWS(String rowDataStr, String endpoint,String awsToken) {
|
|
Http http = new Http();
|
HttpRequest req = new HttpRequest();
|
HTTPResponse res;
|
String resb;
|
req.setHeader('Content-Type', 'application/json');
|
req.setTimeout(120000);
|
req.setEndpoint(endpoint);
|
req.setMethod('POST');
|
req.setHeader('pi-token', awsToken);
|
req.setBody(rowDataStr);
|
res = http.send(req);
|
string ress = String.valueOf(res.getStatusCode()) ;
|
resb = res.getBody();
|
system.debug('ress:' + ress);
|
return new response(ress, resb);
|
}
|
|
public class response {
|
public string status;
|
public string responseBody;
|
public response(string status, string responseBody ) {
|
this.status = status;
|
this.responseBody = responseBody;
|
}
|
}
|
//add for pipl sushanhu 20220311 end
|
//add for pipl sushanhu 20220311 start
|
public class NFMResponse{
|
public Boolean SFStatus;
|
public String SFMessage;
|
public StaticResponse staticResponse;
|
}
|
public class StaticResponse{
|
public string status;
|
public String Message;
|
public StaticResponse(){
|
status='0';
|
Message='';
|
}
|
}
|
public static NFMResponse getNFMResponse(){
|
NFMResponse result=new NFMResponse();
|
result.staticResponse =new StaticResponse();
|
return result;
|
|
}
|
//add for pipl sushanhu 20220311 en
|
|
|
}
|