move dashboard api into dashboard module

This commit is contained in:
Iuri Matias 2018-03-13 06:24:07 -04:00
parent 119ef6f8e5
commit 46fd27842a
3 changed files with 34 additions and 25 deletions

View File

@ -28,6 +28,36 @@ class Dashboard {
let console, monitor;
let self = this;
let plugin = this.plugins.createPlugin('dashboard', {});
plugin.registerAPICall(
'ws',
'/embark/dashboard',
(ws, req) => {
let dashboardState = { contractsState: [], environment: "", status: "", availableServices: [] };
// TODO: doesn't feel quite right, should be refactored into a shared
// dashboard state
self.events.request('setDashboardState');
self.events.on('contractsState', (contracts) => {
dashboardState.contractsState = [];
contracts.forEach(function (row) {
dashboardState.contractsState.push({contractName: row[0], address: row[1], status: row[2]});
});
ws.send(JSON.stringify(dashboardState));
});
self.events.on('status', (status) => {
dashboardState.status = status;
ws.send(JSON.stringify(dashboardState));
});
self.events.on('servicesState', (servicesState) => {
dashboardState.availableServices = servicesState;
ws.send(JSON.stringify(dashboardState));
});
}
);
async.waterfall([
function startConsole(callback) {
console = new Console({

View File

@ -38,30 +38,10 @@ class Server {
});
});
app.ws('/embark/dashboard', function(ws, req) {
let dashboardState = { contractsState: [], environment: "", status: "", availableServices: [] };
// TODO: doesn't feel quite right, should be refactored into a shared
// dashboard state
self.events.request('setDashboardState');
self.events.on('contractsState', (contracts) => {
dashboardState.contractsState = [];
contracts.forEach(function (row) {
dashboardState.contractsState.push({contractName: row[0], address: row[1], status: row[2]});
});
ws.send(JSON.stringify(dashboardState));
});
self.events.on('status', (status) => {
dashboardState.status = status;
ws.send(JSON.stringify(dashboardState));
});
self.events.on('servicesState', (servicesState) => {
dashboardState.availableServices = servicesState;
ws.send(JSON.stringify(dashboardState));
});
});
let apiCalls = self.plugins.getPluginsProperty("apiCalls", "apiCalls");
for (let apiCall of apiCalls) {
app[apiCall.method].apply(app, [apiCall.endpoint, apiCall.cb]);
}
app.get('/embark', function (req, res) {
res.send('Welcome to Embark')

View File

@ -1,6 +1,5 @@
pragma solidity ^0.4.17;
contract AnotherStorage {
address public simpleStorageAddress;
address simpleStorageAddress2;