function createFolderInSharedDrive(googleEmail, googleID, surnameLetter, ID, sharedDriveId) {
try {
const parentFolder = Drive.Files.create({
'name': `${googleID} [${ID}]`,
'mimeType': 'application/vnd.google-apps.folder',
'parents': [sharedDriveId]
}, null, {supportsAllDrives: true});
const subfolderNames = ['Absence',
'Form',
'Appraisal',
'Pre-employment',
'Contractual',
'Employee',
'Payments',
'Management',
'Termination',
'Confidential'];
const subfolders = [];
subfolderNames.forEach(name => {
try {
const folder = Drive.Files.create({
'name': `${name} - ${googleID} [${ID}]`,
'mimeType': 'application/vnd.google-apps.folder',
'parents': [parentFolder.id]
}, null, {supportsAllDrives: true});
subfolders.push(folder); // Only add the folder if creation was successful
} catch (error) {
Logger.log(`Error creating subfolder '${name}': ${error}`);
}
});
// Log success message
if (subfolders.length > 0) {
Logger.log(
'Folders created successfully,' + parentFolder.getName() + ',' + parentFolder.getId() + ',' +
subfolders.map(folder => folder.getName() + ',' + folder.getId()).join('\n')
);
} else {
Logger.log('No subfolders were created successfully.');
}
// Construct folder details object
// and write output to the Folder_IDs sheet (in calling function)
const folderDetails = [
`'${ID}`,
googleEmail,
`${googleID} [${ID}]`,
surnameLetter,
sharedDriveId,
parentFolder.id,
...subfolders.flatMap(folder => folder ? [folder.name, folder.id] : [])
];
return folderDetails;
} catch (error) {
Logger.log('Error creating the main folder:', error);
throw error; // Re-throw to handle errors gracefully
}
}