blob: af66f8174e97561deefb794c69cac30c7caa6efc [file] [log] [blame]
/**
* API utilities service
*
* @module app/common/services/api-utils
* @exports APIUtils
* @name APIUtils
* @version 0.0.1
*/
window.angular && (function (angular) {
'use strict';
angular
.module('app.common.services')
.factory('APIUtils', ['$http', 'Constants', function($http, Constants){
var SERVICE = {
LOGIN_CREDENTIALS: Constants.LOGIN_CREDENTIALS,
API_CREDENTIALS: Constants.API_CREDENTIALS,
API_RESPONSE: Constants.API_RESPONSE,
CHASSIS_POWER_STATE: Constants.CHASSIS_POWER_STATE,
HOST_STATE_TEXT: Constants.HOST_STATE,
HOST_STATE: Constants.HOST_STATE,
getChassisState: function(callback){
$http({
method: 'GET',
url: SERVICE.API_CREDENTIALS.host + "/xyz/openbmc_project/state/chassis0",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
withCredentials: true
}).success(function(response){
var json = JSON.stringify(response);
var content = JSON.parse(json);
callback(content.data.CurrentPowerState);
}).error(function(error){
console.log(error);
});
},
getHostState: function(callback){
$http({
method: 'GET',
url: SERVICE.API_CREDENTIALS.host + "/xyz/openbmc_project/state/host0",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
withCredentials: true
}).success(function(response){
var json = JSON.stringify(response);
var content = JSON.parse(json);
callback(content.data.CurrentHostState);
}).error(function(error){
console.log(error);
});
},
login: function(username, password, callback){
$http({
method: 'POST',
url: SERVICE.API_CREDENTIALS.host + "/login",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
withCredentials: true,
data: JSON.stringify({"data": [username, password]})
}).success(function(response){
if(callback){
callback(response);
}
}).error(function(error){
if(callback){
callback(null, true);
}
console.log(error);
});
},
logout: function(callback){
$http({
method: 'POST',
url: SERVICE.API_CREDENTIALS.host + "/logout",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
withCredentials: true,
data: JSON.stringify({"data": []})
}).success(function(response){
if(callback){
callback(response);
}
}).error(function(error){
if(callback){
callback(null, error);
}
console.log(error);
});
},
chassisPowerOn: function(callback){
$http({
method: 'POST',
url: SERVICE.API_CREDENTIALS.host + "/xyz/openbmc_project/state/host0",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
withCredentials: true,
data: JSON.stringify({"data": []})
}).success(function(response){
var json = JSON.stringify(response);
var content = JSON.parse(json);
if(callback){
return callback(content.data.CurrentPowerState);
}
}).error(function(error){
if(callback){
callback(error);
}else{
console.log(error);
}
});
},
chassisPowerOff: function(callback){
$http({
method: 'POST',
url: SERVICE.API_CREDENTIALS.host + "/xyz/openbmc_project/state/host0",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
withCredentials: true,
data: JSON.stringify({"data": []})
}).success(function(response){
var json = JSON.stringify(response);
var content = JSON.parse(json);
if(callback){
return callback(content.data.CurrentPowerState);
}
}).error(function(error){
if(callback){
callback(error);
}else{
console.log(error);
}
});
},
hostPowerOn: function(callback){
/**
curl -c cjar -b cjar -k -H "Content-Type: application/json" -d
"{\"data\": \"xyz.openbmc_project.State.Host.Transition.Off\"}"
-X PUT
https://9.3.164.147/xyz/openbmc_project/state/host0/attr/RequestedHostTransition
**/
$http({
method: 'PUT',
url: SERVICE.API_CREDENTIALS.host + "/xyz/openbmc_project/state/host0/attr/RequestedHostTransition",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
withCredentials: true,
data: JSON.stringify({"data": "xyz.openbmc_project.State.Host.Transition.On"})
}).success(function(response){
var json = JSON.stringify(response);
var content = JSON.parse(json);
if(callback){
return callback(content.status);
}
}).error(function(error){
if(callback){
callback(error);
}else{
console.log(error);
}
});
},
hostPowerOff: function(callback){
$http({
method: 'PUT',
url: SERVICE.API_CREDENTIALS.host + "/xyz/openbmc_project/state/host0/attr/RequestedHostTransition",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
withCredentials: true,
data: JSON.stringify({"data": "xyz.openbmc_project.State.Host.Transition.Off"})
}).success(function(response){
var json = JSON.stringify(response);
var content = JSON.parse(json);
if(callback){
return callback(content.status);
}
}).error(function(error){
if(callback){
callback(error);
}else{
console.log(error);
}
});
},
hostReboot: function(callback){
$http({
method: 'POST',
url: SERVICE.API_CREDENTIALS.host + "/xyz/openbmc_project/state/host0",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
withCredentials: true,
data: JSON.stringify({"data": []}),
}).success(function(response){
var json = JSON.stringify(response);
var content = JSON.parse(json);
if(callback){
return callback(content);
}
}).error(function(error){
if(callback){
callback(error);
}else{
console.log(error);
}
});
},
hostShutdown: function(callback){
$http({
method: 'POST',
url: SERVICE.API_CREDENTIALS.host + "/xyz/openbmc_project/state/host0",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
withCredentials: true,
data: JSON.stringify({"data": []})
}).success(function(response){
var json = JSON.stringify(response);
var content = JSON.parse(json);
if(callback){
return callback(content);
}
}).error(function(error){
if(callback){
callback(error);
}else{
console.log(error);
}
});
}
};
return SERVICE;
}]);
})(window.angular);