diff --git a/app/docker/services/nodeService.js b/app/docker/services/nodeService.js index 706f26647..91dacb6d2 100644 --- a/app/docker/services/nodeService.js +++ b/app/docker/services/nodeService.js @@ -1,24 +1,43 @@ -angular.module('portainer.docker') -.factory('NodeService', ['$q', 'Node', function NodeServiceFactory($q, Node) { - 'use strict'; - var service = {}; +angular.module('portainer.docker').factory('NodeService', [ + '$q', 'Node', + function NodeServiceFactory($q, Node) { + 'use strict'; + var service = {}; - service.nodes = function() { - var deferred = $q.defer(); + service.nodes = nodes; + service.node = node; - Node.query({}).$promise - .then(function success(data) { - var nodes = data.map(function (item) { - return new NodeViewModel(item); - }); - deferred.resolve(nodes); - }) - .catch(function error(err) { - deferred.reject({ msg: 'Unable to retrieve nodes', err: err }); - }); + function node(id) { + var deferred = $q.defer(); + Node.get({ id: id }) + .$promise.then(function onNodeLoaded(rawNode) { + var node = new NodeViewModel(rawNode); + return deferred.resolve(node); + }) + .catch(function onFailed(err) { + deferred.reject({ msg: 'Unable to retrieve node', err: err }); + }); - return deferred.promise; - }; + return deferred.promise; + } - return service; -}]); + function nodes() { + var deferred = $q.defer(); + + Node.query({}) + .$promise.then(function success(data) { + var nodes = data.map(function(item) { + return new NodeViewModel(item); + }); + deferred.resolve(nodes); + }) + .catch(function error(err) { + deferred.reject({ msg: 'Unable to retrieve nodes', err: err }); + }); + + return deferred.promise; + } + + return service; + } +]);