/* * 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 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'); 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('成功删除'); } } } }