public without sharing class InvocableApexActionHandler { private static final String GOOGLE_DRIVE_API_URL = 'https://www.googleapis.com/drive/v3/files'; private static String externalStorage = 'Google Drive'; public static Map createFolderFromAction(Boolean isServiceMode,String userId,String folderName, String parentFolderId ,String recordId,String newAccessTokenGnt) { Map newAccessTokenMap=new Map(); // String ACCESS_TOKEN; // String refreshToken; // System.debug('parentFolderId >>>'+parentFolderId); // Map accessTokenMap=new Map(); // // Map> storageTokenMap=new Map>(); // Map googleDriveMap=new Map(); // try{ // System.debug('newAccessTokenGnt'+newAccessTokenGnt); // if(newAccessTokenGnt == null){ // accessTokenMap = CloudStorageUtlilty.getAccessToken(isServiceMode, userId, externalStorage); // ACCESS_TOKEN=(String)accessTokenMap.get('ACCESS_TOKEN'); // refreshToken = (String) accessTokenMap.get('REFRESH_TOKEN'); // } // else{ // ACCESS_TOKEN=newAccessTokenGnt; // } // String folderMetadata = '{' + // '"name": "' + folderName + '",' + // '"mimeType": "application/vnd.google-apps.folder"'; // if (parentFolderId != null && parentFolderId != '') { // folderMetadata += ',"parents": ["' + parentFolderId + '"]'; // } // folderMetadata += '}'; // Map headers = new Map(); // headers.put('Authorization', 'Bearer ' + ACCESS_TOKEN); // headers.put( 'Content-Type', 'application/json'); // HttpResponse res = CloudStorageUtlilty.makeCallout(folderMetadata, GOOGLE_DRIVE_API_URL, headers, 'POST'); // String createdFolderName; // String folderId; // if (res.getStatusCode() == 200) { // System.debug('resBody'+JSON.serializePretty(res.getBody())); // String responseBody = res.getBody(); // Map resultMap = (Map) JSON.deserializeUntyped(responseBody); // folderId=(String) resultMap.get('id'); // createdFolderName=(String) resultMap.get('name'); // googleDriveMap.put('folderName',createdFolderName); // googleDriveMap.put('parentFolderId',folderId); // } // else if(res.getStatusCode() == 401){ // newAccessTokenMap = CloudStorageUtlilty.refreshAndReturn(refreshToken, externalStorage); // googleDriveMap.put('isnewAccesstoken' ,'true'); // googleDriveMap.put('newAccessToken', newAccessTokenMap.get('ACCESS_TOKEN')); // Map headers1 = new Map(); // headers1.put('Authorization', 'Bearer ' + newAccessTokenMap.get('ACCESS_TOKEN')); // headers1.put( 'Content-Type', 'application/json'); // HttpResponse res1 = CloudStorageUtlilty.makeCallout(folderMetadata, GOOGLE_DRIVE_API_URL, headers1, 'POST'); // String responseBody = res1.getBody(); // Map resultMap = (Map) JSON.deserializeUntyped(responseBody); // folderId=(String) resultMap.get('id'); // createdFolderName=(String) resultMap.get('name'); // googleDriveMap.put('folderName',createdFolderName); // googleDriveMap.put('parentFolderId',folderId); // // storageTokenMap.put('Google Drive',googleDriveMap); // } // return googleDriveMap; // } // catch (Exception e) { // FME_Logger.error(e.getMessage(), 'InvocableApexActionHandler' + e.getLineNumber(), 'createFolderFromAction'); // // System.debug('>>>error='+e.getMessage()); // // throw new AuraHandledException(e.getMessage()); // } // finally{ // FME_Logger.saveLog(); // } return new Map(); } public static void linkFilesWithRecord(String recordId,String folderId,String storageType,String folderName){ try{ // List fileLinkList = new List(); // HIC_FilesME__File_Link__c fileLink = new HIC_FilesME__File_Link__c(); // fileLink.HIC_FilesME__Linked_Entity_Id__c = folderId; // fileLink.HIC_FilesME__Linked_Storage_Type__c = storageType; // fileLink.HIC_FilesME__Linked_Entity_Name__c = folderName; // fileLink.HIC_FilesME__Linked_Mimetype__c = 'application/vnd.google-apps.folder'; // fileLink.HIC_FilesME__Linked_Record_Id__c = recordId; // fileLinkList.add(fileLink); // if(fileLinkList.size()>0){ // insert fileLinkList; // } } catch(Exception e){ FME_Logger.error(e.getMessage(), 'InvocableApexActionHandler' + e.getLineNumber(), 'linkFilesWithRecord'); } // finally{ // FME_Logger.saveLog(); // } } public static void moveSalesforceFiles(String storageType,String recordId,String folderId,String driveId){ try{ ContentVersion cv = [SELECT Id, VersionData,Title,FileExtension FROM ContentVersion WHERE Id = :recordId]; Integer fileSize = cv.VersionData.size(); // if (fileSize <= 6000000) { // //String cloudFileId = 'test'; // String fileId = FME_GoogleDriveService.uploadFile(cv, folderId); // System.debug('✅ File uploaded to Google Drive, fileId = ' + fileId); // } } catch(Exception e){ FME_Logger.error(e.getMessage(), 'InvocableApexActionHandler' + e.getLineNumber(), 'linkFilesWithRecord'); } finally{ FME_Logger.saveLog(); } } }