text: angular.module('portainer.services')
  .factory('ServiceService', ['$q', 'Service', 'ResourceControlService', function ServiceServiceFactory($q, Service, ResourceControlService) {
    'use strict';
    var service = {};
  
    service.service = function(id) {
      var deferred = $q.defer();
  
      Service.get({ id: id }).$promise
      .then(function success(data) {
        var service = new ServiceViewModel(data);
        deferred.resolve(service);
      })
      .catch(function error(err) {
        deferred.reject({ msg: 'Unable to retrieve service details', err: err });
      });
  
      return deferred.promise;
    };
  
    service.remove = function(service) {
      var deferred = $q.defer();
  
      Service.remove({id: service.Id}).$promise
      .then(function success() {
        if (service.ResourceControl && service.ResourceControl.Type === 2) {
          return ResourceControlService.deleteResourceControl(service.ResourceControl.Id);
        }
      })
      .then(function success() {
        deferred.resolve();
      })
      .catch(function error(err) {
        deferred.reject({ msg: 'Unable to remove service', err: err });
      });
  
      return deferred.promise;
    };
  
    return service;
  }]);
  