-
-
Save tarlepp/79845632bb3cb4d7223d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Folder.js has folders object and files object | |
// Here we need to load a Folder's files and update some permission, until there is no folder anymore | |
function shareFolderRecursively(folderId, permission, next) { | |
var processFiles = function(files, next) { | |
async.each( | |
files, | |
function(file, callback) { | |
file.permission = permission; | |
file.save(callback) | |
}, | |
next | |
); | |
}; | |
var processFolders = function(folders, next) { | |
async.each( | |
folders, | |
function(folder, callback){ | |
shareFolderRecursively(folder.id, permission, callback); | |
}, | |
next | |
); | |
}; | |
var folderHandler = function(error, folder) { | |
if (error) { | |
return next(error); | |
} | |
async.parallel( | |
[ | |
function (callback) { | |
processFiles(folder.files, callback); | |
}, | |
function (callback) { | |
processFolders(folder.files, callback); | |
} | |
], | |
function (error, results) { | |
if (error) { | |
sails.log.error('Error occurred while processing files / folders!'); | |
sails.log.error(error); | |
} | |
next(error); | |
} | |
); | |
}; | |
sails.models['folders'] | |
.findOne(folderId) | |
.populate('files') | |
.populate('folders') | |
.exec(folderHandler); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment