122 lines
6.3 KiB
OpenEdge ABL
122 lines
6.3 KiB
OpenEdge ABL
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<String,String> createFolderFromAction(Boolean isServiceMode,String userId,String folderName, String parentFolderId ,String recordId,String newAccessTokenGnt) {
|
|
Map<String,String> newAccessTokenMap=new Map<String,String>();
|
|
// String ACCESS_TOKEN;
|
|
// String refreshToken;
|
|
// System.debug('parentFolderId >>>'+parentFolderId);
|
|
// Map<String, Object> accessTokenMap=new Map<String, Object>();
|
|
// // Map<String,Map<String,Object>> storageTokenMap=new Map<String,Map<String,Object>>();
|
|
// Map<String,String> googleDriveMap=new Map<String,String>();
|
|
// 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<String, String> headers = new Map<String, String>();
|
|
// 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<String, object> resultMap = (Map<String, object>) 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<String, String> headers1 = new Map<String, String>();
|
|
// 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<String, object> resultMap = (Map<String, object>) 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<String, String>();
|
|
}
|
|
|
|
public static void linkFilesWithRecord(String recordId,String folderId,String storageType,String folderName){
|
|
try{
|
|
// List<HIC_FilesME__File_Link__c> fileLinkList = new List<HIC_FilesME__File_Link__c>();
|
|
|
|
// 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();
|
|
}
|
|
}
|
|
} |