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 }]);