blob: 65ae86b6ba4b063aaaeda54234187d7f201659f9 [file] [log] [blame]
Iftekharul Islam99d199f2017-03-24 15:28:25 -05001/**
2 * API utilities service
3 *
4 * @module app/common/services/api-utils
5 * @exports APIUtils
6 * @name APIUtils
7 * @version 0.0.1
8 */
9
10window.angular && (function (angular) {
11 'use strict';
12 angular
13 .module('app.common.services')
14 .factory('APIUtils', ['$http', 'Constants', function($http, Constants){
15 var SERVICE = {
16 LOGIN_CREDENTIALS: Constants.LOGIN_CREDENTIALS,
17 API_CREDENTIALS: Constants.API_CREDENTIALS,
18 API_RESPONSE: Constants.API_RESPONSE,
19 CHASSIS_POWER_STATE: Constants.CHASSIS_POWER_STATE,
20 HOST_STATE_TEXT: Constants.HOST_STATE,
21 HOST_STATE: Constants.HOST_STATE,
22 getChassisState: function(callback){
23 $http({
24 method: 'GET',
25 url: SERVICE.API_CREDENTIALS.host + "/xyz/openbmc_project/state/chassis0",
26 headers: {
27 'Accept': 'application/json',
28 'Content-Type': 'application/json'
29 },
30 withCredentials: true
31 }).success(function(response){
32 var json = JSON.stringify(response);
33 var content = JSON.parse(json);
34 callback(content.data.CurrentPowerState);
35 }).error(function(error){
36 console.log(error);
37 });
38 },
39 getHostState: function(callback){
40 $http({
41 method: 'GET',
42 url: SERVICE.API_CREDENTIALS.host + "/xyz/openbmc_project/state/host0",
43 headers: {
44 'Accept': 'application/json',
45 'Content-Type': 'application/json'
46 },
47 withCredentials: true
48 }).success(function(response){
49 var json = JSON.stringify(response);
50 var content = JSON.parse(json);
51 callback(content.data.CurrentHostState);
52 }).error(function(error){
53 console.log(error);
54 });
55 },
56 login: function(username, password, callback){
57 $http({
58 method: 'POST',
59 url: SERVICE.API_CREDENTIALS.host + "/login",
60 headers: {
61 'Accept': 'application/json',
62 'Content-Type': 'application/json'
63 },
64 withCredentials: true,
65 data: JSON.stringify({"data": [username, password]})
66 }).success(function(response){
67 if(callback){
68 callback(response);
69 }
70 }).error(function(error){
71 if(callback){
72 callback(null, true);
73 }
74 console.log(error);
75 });
76 },
77 logout: function(callback){
78 $http({
79 method: 'POST',
80 url: SERVICE.API_CREDENTIALS.host + "/logout",
81 headers: {
82 'Accept': 'application/json',
83 'Content-Type': 'application/json'
84 },
85 withCredentials: true,
86 data: JSON.stringify({"data": []})
87 }).success(function(response){
88 if(callback){
89 callback(response);
90 }
91 }).error(function(error){
92 if(callback){
93 callback(null, error);
94 }
95 console.log(error);
96 });
97 },
98 chassisPowerOn: function(callback){
99 $http({
100 method: 'POST',
101 url: SERVICE.API_CREDENTIALS.host + "/xyz/openbmc_project/state/host0",
102 headers: {
103 'Accept': 'application/json',
104 'Content-Type': 'application/json'
105 },
106 withCredentials: true,
107 data: JSON.stringify({"data": []})
108 }).success(function(response){
109 var json = JSON.stringify(response);
110 var content = JSON.parse(json);
111 if(callback){
112 return callback(content.data.CurrentPowerState);
113 }
114 }).error(function(error){
115 if(callback){
116 callback(error);
117 }else{
118 console.log(error);
119 }
120 });
121 },
122 chassisPowerOff: function(callback){
123 $http({
124 method: 'POST',
125 url: SERVICE.API_CREDENTIALS.host + "/xyz/openbmc_project/state/host0",
126 headers: {
127 'Accept': 'application/json',
128 'Content-Type': 'application/json'
129 },
130 withCredentials: true,
131 data: JSON.stringify({"data": []})
132 }).success(function(response){
133 var json = JSON.stringify(response);
134 var content = JSON.parse(json);
135 if(callback){
136 return callback(content.data.CurrentPowerState);
137 }
138 }).error(function(error){
139 if(callback){
140 callback(error);
141 }else{
142 console.log(error);
143 }
144 });
145 },
Iftekharul Islam55368122017-03-27 09:46:50 -0500146 bmcReboot: function(callback){
147 $http({
148 method: 'PUT',
149 url: SERVICE.API_CREDENTIALS.host + "/xyz/openbmc_project/state/bmc0/attr/RequestedBmcTransition",
150 headers: {
151 'Accept': 'application/json',
152 'Content-Type': 'application/json'
153 },
154 withCredentials: true,
155 data: JSON.stringify({"data": "xyz.openbmc_project.State.BMC.Transition.Reboot"})
156 }).success(function(response){
157 var json = JSON.stringify(response);
158 var content = JSON.parse(json);
159 if(callback){
160 return callback(content.status);
161 }
162 }).error(function(error){
163 if(callback){
164 callback(error);
165 }else{
166 console.log(error);
167 }
168 });
169 },
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500170 hostPowerOn: function(callback){
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500171 $http({
172 method: 'PUT',
173 url: SERVICE.API_CREDENTIALS.host + "/xyz/openbmc_project/state/host0/attr/RequestedHostTransition",
174 headers: {
175 'Accept': 'application/json',
176 'Content-Type': 'application/json'
177 },
178 withCredentials: true,
179 data: JSON.stringify({"data": "xyz.openbmc_project.State.Host.Transition.On"})
180 }).success(function(response){
181 var json = JSON.stringify(response);
182 var content = JSON.parse(json);
183 if(callback){
184 return callback(content.status);
185 }
186 }).error(function(error){
187 if(callback){
188 callback(error);
189 }else{
190 console.log(error);
191 }
192 });
193 },
194 hostPowerOff: function(callback){
195 $http({
196 method: 'PUT',
197 url: SERVICE.API_CREDENTIALS.host + "/xyz/openbmc_project/state/host0/attr/RequestedHostTransition",
198 headers: {
199 'Accept': 'application/json',
200 'Content-Type': 'application/json'
201 },
202 withCredentials: true,
203 data: JSON.stringify({"data": "xyz.openbmc_project.State.Host.Transition.Off"})
204 }).success(function(response){
205 var json = JSON.stringify(response);
206 var content = JSON.parse(json);
207 if(callback){
208 return callback(content.status);
209 }
210 }).error(function(error){
211 if(callback){
212 callback(error);
213 }else{
214 console.log(error);
215 }
216 });
217 },
218 hostReboot: function(callback){
219 $http({
220 method: 'POST',
221 url: SERVICE.API_CREDENTIALS.host + "/xyz/openbmc_project/state/host0",
222 headers: {
223 'Accept': 'application/json',
224 'Content-Type': 'application/json'
225 },
226 withCredentials: true,
227 data: JSON.stringify({"data": []}),
228 }).success(function(response){
229 var json = JSON.stringify(response);
230 var content = JSON.parse(json);
231 if(callback){
232 return callback(content);
233 }
234 }).error(function(error){
235 if(callback){
236 callback(error);
237 }else{
238 console.log(error);
239 }
240 });
241 },
242 hostShutdown: function(callback){
243 $http({
244 method: 'POST',
245 url: SERVICE.API_CREDENTIALS.host + "/xyz/openbmc_project/state/host0",
246 headers: {
247 'Accept': 'application/json',
248 'Content-Type': 'application/json'
249 },
250 withCredentials: true,
251 data: JSON.stringify({"data": []})
252 }).success(function(response){
253 var json = JSON.stringify(response);
254 var content = JSON.parse(json);
255 if(callback){
256 return callback(content);
257 }
258 }).error(function(error){
259 if(callback){
260 callback(error);
261 }else{
262 console.log(error);
263 }
264 });
265 }
266 };
267 return SERVICE;
268 }]);
269
270 })(window.angular);