Change nesting API calls to promise chain in test-details controller

TestDetailsCtrl previously used a series of nesting API calls to
dataset-service in order to get dataset, raw json, and details json
for the test details page. This replaces the nesting calls with a
promise chain to make the code more 'Angular-y'.

Change-Id: I82ab7935280d657dc556d72159f5d1b84ca83c0d
This commit is contained in:
Austin Clark
2016-03-10 12:28:53 -07:00
parent b0e5edca74
commit d096ef67b7

View File

@@ -5,7 +5,8 @@ var controllersModule = require('./_index');
/** /**
* @ngInject * @ngInject
*/ */
var TestDetailsCtrl = function($scope, $location, $stateParams, datasetService, progressService) { var TestDetailsCtrl =
function($scope, $location, $stateParams, $log, datasetService, progressService) {
var vm = this; var vm = this;
vm.datasetId = $stateParams.datasetId; vm.datasetId = $stateParams.datasetId;
var testName = $stateParams.test; var testName = $stateParams.test;
@@ -14,10 +15,13 @@ var TestDetailsCtrl = function($scope, $location, $stateParams, datasetService,
progressService.start({ parent: 'div[role="main"] .panel-body' }); progressService.start({ parent: 'div[role="main"] .panel-body' });
// load dataset, raw json, and details json // load dataset, raw json, and details json
datasetService.get($stateParams.datasetId).then(function(response) { datasetService.get($stateParams.datasetId)
vm.dataset = response; .then(function(response) {
vm.stats = response.stats; vm.dataset = response;
datasetService.raw(response).then(function(raw) { vm.stats = response.stats;
return datasetService.raw(response);
})
.then(function(raw) {
var item = null; var item = null;
for (var t in raw.data) { for (var t in raw.data) {
if (raw.data[t].name === testName) { if (raw.data[t].name === testName) {
@@ -25,26 +29,19 @@ var TestDetailsCtrl = function($scope, $location, $stateParams, datasetService,
} }
} }
vm.item = item; vm.item = item;
progressService.inc(); progressService.inc();
}).catch(function(ex) { return datasetService.details(vm.dataset);
$log.error(ex); })
progressService.done(); .then(function(deets) {
});
datasetService.details(response).then(function(deets) {
vm.details = deets; vm.details = deets;
vm.originalDetails = angular.copy(deets.data[testName]); vm.originalDetails = angular.copy(deets.data[testName]);
vm.itemDetails = deets.data[testName]; vm.itemDetails = deets.data[testName];
progressService.done(); progressService.done();
}).catch(function(ex) { })
$log.error(ex); .catch(function(error) {
$log.error(error);
progressService.done(); progressService.done();
}); });
}).catch(function(ex) {
$log.error(ex);
progressService.done();
});
vm.parsePythonLogging = function(showINFO, showDEBUG, showWARNING, showERROR) { vm.parsePythonLogging = function(showINFO, showDEBUG, showWARNING, showERROR) {
if (vm.originalDetails && vm.originalDetails.pythonlogging) { if (vm.originalDetails && vm.originalDetails.pythonlogging) {