angular.module('extension.storidge')
.factory('StoridgeNodeService', ['$q', 'Storidge', function StoridgeNodeServiceFactory($q, Storidge) {
  'use strict';
  var service = {};

  service.nodes = function() {
    var deferred = $q.defer();

    Storidge.queryNodes().$promise
    .then(function success(data) {
      var nodeData = data.nodes;
      var nodes = [];

      for (var key in nodeData) {
        if (nodeData.hasOwnProperty(key)) {
          nodes.push(new StoridgeNodeModel(key, nodeData[key]));
        }
      }

      deferred.resolve(nodes);
    })
    .catch(function error(err) {
      deferred.reject({ msg: 'Unable to retrieve Storidge profiles', err: err });
    });

    return deferred.promise;
  };

  return service;
}]);