/* * 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 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 partnerContactList = Database.query(noPISQL); return partnerContactList; } return new List(); } 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 results = (Map) JSON.deserializeUntyped(response.getBody()); String token = (String)results.get('object'); return token; } @future(callout=true) public static void deleteFileAddress(Set 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 results = (Map) 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 }