angular.module('portainer.docker') .factory('ConfigService', ['$q', 'Config', function ConfigServiceFactory($q, Config) { 'use strict'; var service = {}; service.config = function(configId) { var deferred = $q.defer(); Config.get({id: configId}).$promise .then(function success(data) { var config = new ConfigViewModel(data); deferred.resolve(config); }) .catch(function error(err) { deferred.reject({ msg: 'Unable to retrieve config details', err: err }); }); return deferred.promise; }; service.configs = function() { var deferred = $q.defer(); Config.query({}).$promise .then(function success(data) { var configs = data.map(function (item) { return new ConfigViewModel(item); }); deferred.resolve(configs); }) .catch(function error(err) { deferred.reject({ msg: 'Unable to retrieve configs', err: err }); }); return deferred.promise; }; service.remove = function(configId) { var deferred = $q.defer(); Config.remove({ id: configId }).$promise .then(function success(data) { if (data.message) { deferred.reject({ msg: data.message }); } else { deferred.resolve(); } }) .catch(function error(err) { deferred.reject({ msg: 'Unable to remove config', err: err }); }); return deferred.promise; }; service.create = function(config) { return Config.create(config).$promise; }; return service; }]);