
The DatasetService is intended to load and manage any number of configured data sources as specified in `config.json`. It also enforces use of Angular's built-in content caching to improve loading times of already-accessed datasets. Change-Id: Ibb161a171d6375bf024bf8c0ab051c3f1a97f760
74 lines
1.3 KiB
JavaScript
74 lines
1.3 KiB
JavaScript
'use strict';
|
|
|
|
var servicesModule = require('./_index.js');
|
|
|
|
/**
|
|
* @ngInject
|
|
*/
|
|
function DatasetService($q, $http) {
|
|
|
|
var service = {};
|
|
|
|
service.list = function() {
|
|
return $http({
|
|
cache: true,
|
|
url: 'data/config.json',
|
|
method: 'GET'
|
|
});
|
|
};
|
|
|
|
service.get = function(id) {
|
|
return $q(function(resolve, reject) {
|
|
service.list().then(function(response) {
|
|
for (let entry of response.data.tempest) {
|
|
if (entry.id === id) {
|
|
resolve(entry);
|
|
return;
|
|
}
|
|
}
|
|
|
|
reject("Dataset not found with ID: " + id);
|
|
}, function(reason) {
|
|
reject(reason);
|
|
});
|
|
});
|
|
};
|
|
|
|
service.raw = function(dataset) {
|
|
return $http({
|
|
cache: true,
|
|
url: dataset.raw,
|
|
method: 'GET'
|
|
});
|
|
};
|
|
|
|
service.details = function(dataset) {
|
|
return $http({
|
|
cache: true,
|
|
url: dataset.details,
|
|
method: 'GET'
|
|
});
|
|
};
|
|
|
|
service.tree = function(dataset) {
|
|
return $http({
|
|
cache: true,
|
|
url: dataset.tree,
|
|
method: 'GET'
|
|
});
|
|
};
|
|
|
|
service.dstat = function(dataset) {
|
|
return $http({
|
|
cache: true,
|
|
url: dataset.dstat,
|
|
method: 'GET'
|
|
});
|
|
};
|
|
|
|
return service;
|
|
|
|
}
|
|
|
|
servicesModule.service('datasetService', DatasetService);
|