github.com/justinjmoses/evergreen@v0.0.0-20170530173719-1d50e381ff0d/public/static/js/services/rest.js (about)

     1  var mciServices = mciServices || {};
     2  
     3  mciServices.rest = angular.module('mciServices.rest', []);
     4  
     5  mciServices.rest.factory('mciBaseRestService', ['$http', function($http) {
     6      // private vars
     7      var baseUrl = '';
     8      var resources = {};
     9  
    10      // the service that will be returned
    11      var service = {};
    12  
    13      var httpCall = function(method, resource, idents, config, callbacks) {
    14          if (!$http[method] || typeof $http[method] !== 'function') {
    15              alert('invalid http method: ' + method);
    16              return;
    17          }
    18  
    19          config.method = method;
    20          config.url = [baseUrl, resource].concat(idents).join('/');
    21  
    22          $http(config)
    23              .success(callbacks.success || function() {})
    24              .error(callbacks.error || function() {});
    25      };
    26  
    27      ['delete', 'get', 'post', 'put'].forEach(function(method) {
    28          service[method + 'Resource'] = function(resource, idents, config, callbacks) {
    29              httpCall(method, resource, idents, config, callbacks);
    30          };
    31      });
    32  
    33      return service;
    34  }]);
    35  
    36  mciServices.rest.factory('historyDrawerService', ['mciBaseRestService',
    37      function(baseSvc) {
    38          var resource = 'history';
    39          var service = {};
    40          var defaultRadius = 10;
    41  
    42          // modelType could be either "tasks" or "versions"
    43          var historyFetcher = function(modelType) {
    44              return function(modelId, historyType, radius, callbacks) {
    45                  var config = {
    46                      params: {
    47                          radius: radius || defaultRadius
    48                      }
    49                  };
    50                  baseSvc.getResource(resource, [modelType, modelId, historyType], config, callbacks);
    51              }
    52          }
    53  
    54          service.fetchVersionHistory = historyFetcher("versions");
    55          service.fetchTaskHistory = historyFetcher("tasks");
    56  
    57          return service;
    58      }
    59  ]);
    60  
    61  mciServices.rest.factory('mciTasksRestService', ['mciBaseRestService', function(baseSvc) {
    62      var resource = 'tasks';
    63  
    64      var service = {};
    65  
    66      service.getResource = function() {
    67          return resource;
    68      };
    69  
    70      service.takeActionOnTask = function(taskId, action, data, callbacks) {
    71          var config = {
    72              data: data
    73          };
    74          config.data['action'] = action;
    75          baseSvc.putResource(resource, [taskId], config, callbacks);
    76      };
    77  
    78      service.getTask = function(taskId, callbacks) {
    79          baseSvc.getResource(resource, [taskId], {}, callbacks);
    80      };
    81  
    82      return service;
    83  }]);
    84  
    85  mciServices.rest.factory('mciBuildsRestService', ['mciBaseRestService', function(baseSvc) {
    86      var resource = 'builds';
    87  
    88      var service = {};
    89  
    90      service.takeActionOnBuild = function(buildId, action, data, callbacks) {
    91          var config = {
    92              data: data
    93          };
    94          config.data['action'] = action;
    95          baseSvc.putResource(resource, [buildId], config, callbacks);
    96      };
    97  
    98      return service;
    99  }]);
   100  
   101  mciServices.rest.factory('mciHostRestService', ['mciBaseRestService', function(baseSvc) {
   102      var resource = 'host';
   103  
   104      var service = {};
   105  
   106      service.updateStatus = function(hostId, action, data, callbacks) {
   107          var config = {
   108              data: data
   109          };
   110          config.data['action'] = action;
   111          baseSvc.putResource(resource, [hostId], config, callbacks);
   112      };
   113  
   114      return service;
   115  }]);
   116  
   117  mciServices.rest.factory('mciHostsRestService', ['mciBaseRestService', function(baseSvc) {
   118      var resource = 'hosts';
   119  
   120      var service = {};
   121  
   122      service.updateStatus = function(hostIds, action, data, callbacks) {
   123          var config = {
   124              data: data
   125          };
   126          config.data['action'] = action;
   127          config.data['host_ids'] = hostIds;
   128          baseSvc.putResource(resource, [], config, callbacks);
   129      };
   130  
   131      return service;
   132  }]);
   133  
   134  mciServices.rest.factory('mciVersionsRestService', ['mciBaseRestService', function(baseSvc) {
   135      var resource = 'version';
   136  
   137      var service = {};
   138  
   139      service.takeActionOnVersion = function(versionId, action, data, callbacks) {
   140          var config = {
   141              data: data
   142          };
   143          config.data['action'] = action;
   144          baseSvc.putResource(resource, [versionId], config, callbacks);
   145      };
   146  
   147      return service;
   148  }]);
   149  
   150  mciServices.rest.factory('mciBuildVariantHistoryRestService', ['mciBaseRestService', function(baseSvc) {
   151      var resource = 'build_variant';
   152  
   153      var service = {};
   154  
   155      service.getBuildVariantHistory = function(project, buildVariant, params, callbacks) {
   156          var _project = encodeURIComponent(project);
   157          var _buildVariant = encodeURIComponent(buildVariant);
   158  
   159          var config = {
   160              params: params
   161          };
   162          baseSvc.getResource(resource, [_project, _buildVariant], config, callbacks);
   163      };
   164  
   165      return service;
   166  }]);
   167  
   168  mciServices.rest.factory('mciTaskHistoryRestService', ['mciBaseRestService', function(baseSvc) {
   169      var resource = 'task_history';
   170  
   171      var service = {};
   172  
   173      service.getTaskHistory = function(project, taskName, params, callbacks) {
   174          var _project = encodeURIComponent(project);
   175          var _taskName = encodeURIComponent(taskName);
   176  
   177          var config = {
   178              params: params
   179          };
   180          baseSvc.getResource(resource, [_project, _taskName], config, callbacks);
   181      };
   182  
   183      return service;
   184  }]);
   185  
   186  mciServices.rest.factory('mciLoginRestService', ['mciBaseRestService', function(baseSvc) {
   187      var resource = 'login';
   188  
   189      var service = {};
   190  
   191      service.authenticate = function(username, password, data, callbacks) {
   192          var config = {
   193              data: data
   194          };
   195          config.data['username'] = username;
   196          config.data['password'] = password;
   197          baseSvc.postResource(resource, [], config, callbacks);
   198      };
   199  
   200      return service;
   201  }]);
   202  
   203  mciServices.rest.factory('mciSpawnRestService', ['mciBaseRestService', function(baseSvc) {
   204      var resource = 'spawn';
   205  
   206      var service = {};
   207  
   208      service.getSpawnedHosts = function(action, params, callbacks) {
   209          baseSvc.getResource(resource, action, params, callbacks);
   210      }
   211  
   212      service.getSpawnableDistros = function(action, params, callbacks) {
   213          var config = {
   214              params: params
   215          };
   216          baseSvc.getResource(resource, action, config, callbacks);
   217      };
   218  
   219      service.getUserKeys = function(action, params, callbacks) {
   220          var config = {
   221              params: params
   222          };
   223          baseSvc.getResource(resource, action, config, callbacks);
   224      };
   225  
   226      service.spawnHost = function(spawnInfo, data, callbacks) {
   227          var config = {
   228              data: data
   229          };
   230          config.data['task_id'] = spawnInfo.task_id;
   231          config.data['distro'] = spawnInfo.distroId;
   232          config.data['save_key'] = spawnInfo.saveKey;
   233          config.data['key_name'] = spawnInfo.spawnKey.name;
   234          config.data['public_key'] = spawnInfo.spawnKey.key;
   235          config.data['userdata'] = spawnInfo.userData;
   236          baseSvc.putResource(resource, [], config, callbacks);
   237      };
   238  
   239      service.terminateHost = function(action, hostId, data, callbacks) {
   240          var config = {
   241              data: data
   242          };
   243          config.data['action'] = action;
   244          config.data['host_id'] = hostId;
   245          baseSvc.postResource(resource, [], config, callbacks);
   246      };
   247  
   248      service.updateRDPPassword = function(action, hostId, rdpPassword, data, callbacks) {
   249          var config = {
   250              data: data
   251          };
   252          config.data['action'] = action;
   253          config.data['host_id'] = hostId;
   254          config.data['rdp_pwd'] = rdpPassword;
   255          baseSvc.postResource(resource, [], config, callbacks);
   256      };
   257  
   258      service.extendHostExpiration = function(action, hostId, addHours, data, callbacks) {
   259          var config = {
   260              data: data
   261          };
   262          config.data['action'] = action;
   263          config.data['host_id'] = hostId;
   264          config.data['add_hours'] = addHours;
   265          baseSvc.postResource(resource, [], config, callbacks);
   266      };
   267  
   268      return service;
   269  }]);
   270  
   271  mciServices.rest.factory('mciTaskStatisticsRestService', ['mciBaseRestService', function(baseSvc) {
   272      var resource = 'task_stats';
   273      var service = {};
   274  
   275      service.getTimeStatistics = function getTimeStatistics(field1, field2, groupByField, days, callbacks) {
   276          baseSvc.getResource(resource, [field1, field2, groupByField, days], {}, callbacks);
   277      };
   278  
   279      return service;
   280  }]);
   281  
   282  
   283  
   284  mciServices.rest.factory('mciDistroRestService', ['mciBaseRestService', function(baseSvc) {
   285      var resource = 'distros';
   286  
   287      var service = {};
   288  
   289      service.addDistro = function(data, callbacks) {
   290          var config = {
   291              data: data
   292          };
   293          baseSvc.putResource(resource, [], config, callbacks);
   294      }
   295  
   296      service.modifyDistro = function(distroId, data, shouldDeco, callbacks) {
   297          var config = {
   298              data: data,
   299              params: {
   300                deco: shouldDeco
   301              }
   302          };
   303          baseSvc.postResource(resource, [distroId], config, callbacks);
   304      }
   305  
   306      service.removeDistro = function(distroId, shouldDeco, callbacks) {
   307          var config = {
   308              params: {
   309                deco: shouldDeco
   310              }
   311          };
   312          baseSvc.deleteResource(resource, [distroId], config, callbacks);
   313      }
   314  
   315      return service;
   316  }]);