importDataFromCSVController
importDataFromCSVController
@future(callout=true)
public static void fetchAndProcessFilesFromGoogleDrive() {
try {
importDataFromCSVController controllerInstance = new
importDataFromCSVController();
controllerInstance.getFilesFromGoogleDrive();
} catch (Exception e) {
System.debug('Exception in fetchAndProcessFilesFromGoogleDrive: ' +
e.getMessage());
}
}
public importDataFromCSVController() {
csvFileLines = new String[]{};
accountList = new List<Account>();
refreshToken(); // Fetch the access token dynamically
}
private void refreshToken() {
accessToken = GoogleAuthService.refreshAccessToken(); // Fetch access token
dynamically
}
public void importCSVFile() {
try {
csvAsString = csvFileBody.toString();
csvFileLines = csvAsString.split('\n');
if (!accountList.isEmpty()) {
insert accountList;
}
} catch (Exception e) {
ApexPages.Message errorMessage = new
ApexPages.Message(ApexPages.Severity.ERROR, 'An error occurred while importing
data. Please check the CSV file and try again.');
ApexPages.addMessage(errorMessage);
System.debug('Error importing CSV file: ' + e.getMessage());
}
}
if (res.getStatusCode() == 200) {
String responseBody = res.getBody();
Map<String, Object> responseMap = (Map<String, Object>)
JSON.deserializeUntyped(responseBody);
List<Object> files = (List<Object>) responseMap.get('files');
// Now you can use the fileId to fetch the content of the file
if needed
System.debug('File ID: ' + fileId + ', File Name: ' + fileName
+ ', Mime Type: ' + mimeType);
if (mimeType == 'text/csv') {
System.debug('### File ID: ' + fileId);
System.debug('### File Name: ' + fileName);
if (!processedFiles.contains(fileId)) {
processCSVFile(fileId);
processedFiles.add(fileId);
} else {
System.debug('File ID ' + fileId + ' has already been
processed.');
}
}
}
if (processedFiles.isEmpty()) {
// throw new CustomException('No unprocessed CSV files found.');
}
} else {
System.debug('No files found in Google Drive.');
}
} else {
System.debug('Error fetching files from Google Drive');
}
} catch (Exception e) {
System.debug('Exception in getFilesFromGoogleDrive: ' + e.getMessage());
}
}