Skip to content

Instantly share code, notes, and snippets.

@alex-wilmer
Created June 3, 2015 13:38
Show Gist options
  • Save alex-wilmer/74566ec890ddddefc209 to your computer and use it in GitHub Desktop.
Save alex-wilmer/74566ec890ddddefc209 to your computer and use it in GitHub Desktop.
function $folder ($http) {
var headers = {'Accept': 'application/json;odata=verbose'}
, getFolders = function (url) {
return $http({
method: 'GET'
, url: url
, headers: headers
})
.then(function (response) {
var results = response.data.d.results;
$.each(results,function(index, item){
if(item.Name !== 'Forms' && item.ItemCount > 0){
getFolders(item.Folders.__deferred.uri)
.then(function (response){
item.ChildFolders= response;
});// end then
getFiles(item.Files.__deferred.uri)
.then(function (response){
item.ChildFiles = response;
}); // end then
}// end if
});// end each
// remove the Forms folder from the result
results = results.filter(function(item) {
return item.Name !== 'Forms';
});
return results;
});
}
, getFiles = function(url){
return $http({
method: 'GET'
, url: url
, headers: headers
})
.then(function (response) {
var results = response.data.d.results;
/*
$.each(results, function(index, item){
// Get metadata for file
item = getFileMetadata(item.ListItemAllFields.__deferred.uri, item);
});// end each
*/
return results;
});
}
, getFileMetadata = function(url, item){
return $http({
method: 'GET'
, url: url
, headers: headers
})
.then(function (response){
item.MyTitle = response.data.d.Title;
item.CSN_ActiveEvents = response.data.d.CSN_ActiveEvents ? response.data.d.CSN_ActiveEvents.Label : "";
return item;
});
}
;
return {
getFolders: function (url) {
return getFolders(url);
},
getFiles: function(url) {
return getFiles(url);
}
};
}
angular
.module('app')
.factory('$folder', $folder)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment