blob: 3b31a1f0163a1e59ef53a6466e07b8a7ac9681f3 [file] [log] [blame]
/**
* data service
*
* @module app/common/services/dataService
* @exports dataService
* @name dataService
*/
window.angular && (function(angular) {
'use strict';
angular.module('app.common.services').service('dataService', [
'Constants',
function(Constants) {
this.server_health = Constants.SERVER_HEALTH.unknown;
this.server_state = 'Unreachable';
this.LED_state = Constants.LED_STATE_TEXT.off;
this.last_updated = new Date();
this.loading = false;
this.server_unreachable = false;
this.showNavigation = false;
this.bodyStyle = {};
this.path = '';
this.hostname = '';
this.mac_address = '';
this.defaultgateway = '';
this.ignoreHttpError = false;
this.systemName = '';
this.configJson = require('../../../config.json');
this.getServerId = function() {
return this.host.replace(/^https?\:\/\//ig, '');
};
this.reloadServerId = function() {
this.server_id = this.getServerId();
};
this.getHost = function() {
if (sessionStorage.getItem(
Constants.API_CREDENTIALS.host_storage_key) !== null) {
return sessionStorage.getItem(
Constants.API_CREDENTIALS.host_storage_key);
} else {
return Constants.API_CREDENTIALS.default_protocol + '://' +
window.location.hostname +
(window.location.port ? ':' + window.location.port : '');
}
};
this.setHost = function(hostWithPort) {
hostWithPort = hostWithPort.replace(/^https?\:\/\//ig, '');
var hostURL =
Constants.API_CREDENTIALS.default_protocol + '://' + hostWithPort;
sessionStorage.setItem(
Constants.API_CREDENTIALS.host_storage_key, hostURL);
this.host = hostURL;
this.reloadServerId();
};
this.getUser = function() {
return sessionStorage.getItem('LOGIN_ID');
};
this.host = this.getHost();
this.server_id = this.getServerId();
this.setNetworkInfo = function(data) {
var formatted = data.formatted_data || {};
this.hostname = data.hostname;
this.defaultgateway = data.defaultgateway;
this.mac_address = data.mac_address;
this.network_interfaces = formatted.interfaces || [];
};
this.setPowerOnState = function() {
this.server_state = Constants.HOST_STATE_TEXT.on;
};
this.setPowerOffState = function() {
this.server_state = Constants.HOST_STATE_TEXT.off;
};
this.setErrorState = function() {
this.server_state = Constants.HOST_STATE_TEXT.error;
};
this.setUnreachableState = function() {
this.server_state = Constants.HOST_STATE_TEXT.unreachable;
};
this.updateServerHealth = function(logs) {
// If any unresolved severity high logs are present, set server health
// to critical. Else if any unresolved severity medium logs are present
// set server health to warning.
this.server_health = Constants.SERVER_HEALTH.good;
for (var log of logs) {
if (log.priority == 'High' && !log.Resolved) {
this.server_health = Constants.SERVER_HEALTH.critical;
return;
} else if (log.priority == 'Medium' && !log.Resolved) {
this.server_health = Constants.SERVER_HEALTH.warning;
}
}
};
this.setSystemName = function(sysName) {
this.systemName = sysName;
};
}
]);
})(window.angular);