Added missing returns and moved to /lib
This commit is contained in:
parent
7f4bd311fe
commit
0412a35195
|
@ -9,7 +9,7 @@ var querystring = require('querystring');
|
||||||
var bodyParser = require('body-parser')
|
var bodyParser = require('body-parser')
|
||||||
|
|
||||||
var WalletService = require('./server');
|
var WalletService = require('./server');
|
||||||
var stats = require('../scripts/stats');
|
var stats = require('./stats');
|
||||||
|
|
||||||
log.disableColor();
|
log.disableColor();
|
||||||
log.debug = log.verbose;
|
log.debug = log.verbose;
|
||||||
|
|
160
scripts/stats.js
160
scripts/stats.js
|
@ -1,160 +0,0 @@
|
||||||
#!/usr/bin/env node
|
|
||||||
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var _ = require('lodash');
|
|
||||||
var mongodb = require('mongodb');
|
|
||||||
var moment = require('moment');
|
|
||||||
var async = require('async');
|
|
||||||
var config = require('../config');
|
|
||||||
|
|
||||||
|
|
||||||
var c = config.storageOpts.mongoDb;
|
|
||||||
var url = 'mongodb://' + (c.host || 'localhost') + ':' + (c.port || 27017) + '/bws';
|
|
||||||
|
|
||||||
var startDate = moment();
|
|
||||||
var endDate = moment();
|
|
||||||
|
|
||||||
var stats = {};
|
|
||||||
var wallets = {};
|
|
||||||
var bwsStats = {};
|
|
||||||
|
|
||||||
bwsStats.cleanUp = function() {
|
|
||||||
stats = {
|
|
||||||
'livenet': {},
|
|
||||||
'testnet': {}
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
bwsStats.AddingWalletToCache = function(data) {
|
|
||||||
if (!data) return;
|
|
||||||
wallets[data.id] = data.network;
|
|
||||||
};
|
|
||||||
|
|
||||||
bwsStats.TotalNewWallets = function(data) {
|
|
||||||
if (!data) return;
|
|
||||||
var day = moment(data.createdOn * 1000).format('YYYYMMDD');
|
|
||||||
if (!stats[data.network][day]) {
|
|
||||||
stats[data.network][day] = {
|
|
||||||
totalTx: 0,
|
|
||||||
totalAmount: 0,
|
|
||||||
totalNewWallets: 0
|
|
||||||
};
|
|
||||||
}
|
|
||||||
stats[data.network][day].totalNewWallets++;
|
|
||||||
};
|
|
||||||
|
|
||||||
bwsStats.TotalTxps = function(data) {
|
|
||||||
if (!data) return;
|
|
||||||
var day = moment(data.createdOn * 1000).format('YYYYMMDD');
|
|
||||||
var network = wallets[data.walletId];
|
|
||||||
if (!stats[network][day]) {
|
|
||||||
stats[network][day] = {
|
|
||||||
totalTx: 0,
|
|
||||||
totalAmount: 0,
|
|
||||||
totalNewWallets: 0
|
|
||||||
};
|
|
||||||
}
|
|
||||||
stats[network][day].totalTx++;
|
|
||||||
stats[network][day].totalAmount += data.amount;
|
|
||||||
};
|
|
||||||
|
|
||||||
bwsStats.ProcessData = function(DB, cb) {
|
|
||||||
bwsStats.ProccesWallets(DB, function() {
|
|
||||||
bwsStats.ProccesNewWallets(DB, function() {
|
|
||||||
bwsStats.ProccesTxs(DB, function() {
|
|
||||||
DB.close();
|
|
||||||
cb();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
bwsStats.ProccesWallets = function(DB, cb) {
|
|
||||||
var collection = DB.collection('wallets');
|
|
||||||
collection.find({}).toArray(function(err, items) {
|
|
||||||
if (err) {
|
|
||||||
console.log('Error.', err);
|
|
||||||
cb(err);
|
|
||||||
}
|
|
||||||
|
|
||||||
items.forEach(function(it) {
|
|
||||||
bwsStats.AddingWalletToCache(it);
|
|
||||||
});
|
|
||||||
cb();
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
bwsStats.ProccesNewWallets = function(DB, cb) {
|
|
||||||
var collection = DB.collection('wallets');
|
|
||||||
var start = Math.floor(startDate.startOf('day').valueOf() / 1000);
|
|
||||||
var end = Math.floor(endDate.endOf('day').valueOf() / 1000);
|
|
||||||
|
|
||||||
collection.find({
|
|
||||||
createdOn: {
|
|
||||||
$gt: start,
|
|
||||||
$lt: end
|
|
||||||
}
|
|
||||||
}).toArray(function(err, items) {
|
|
||||||
if (err) {
|
|
||||||
console.log('Error.', err);
|
|
||||||
cb(err);
|
|
||||||
}
|
|
||||||
items.forEach(function(it) {
|
|
||||||
bwsStats.TotalNewWallets(it);
|
|
||||||
});
|
|
||||||
cb();
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
bwsStats.ProccesTxs = function(DB, cb) {
|
|
||||||
var collection = DB.collection('txs');
|
|
||||||
var start = Math.floor(startDate.startOf('day').valueOf() / 1000);
|
|
||||||
var end = Math.floor(endDate.endOf('day').valueOf() / 1000);
|
|
||||||
|
|
||||||
collection.find({
|
|
||||||
createdOn: {
|
|
||||||
$gt: start,
|
|
||||||
$lt: end
|
|
||||||
}
|
|
||||||
}).toArray(
|
|
||||||
function(err, items) {
|
|
||||||
if (err) {
|
|
||||||
console.log('Error.', err);
|
|
||||||
cb(err);
|
|
||||||
} else {
|
|
||||||
items.forEach(function(it) {
|
|
||||||
bwsStats.TotalTxps(it);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
cb();
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
bwsStats.getStats = function(opts, cb) {
|
|
||||||
if (opts) {
|
|
||||||
startDate = moment(opts.from);
|
|
||||||
endDate = moment(opts.to);
|
|
||||||
}
|
|
||||||
bwsStats.cleanUp();
|
|
||||||
|
|
||||||
mongodb.MongoClient.connect(url, function(err, db) {
|
|
||||||
if (err) {
|
|
||||||
console.log('Unable to connect to the mongoDB server. Error:', err);
|
|
||||||
cb(err, null);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
console.log('Connection established to ', url);
|
|
||||||
bwsStats.ProcessData(db, function(err) {
|
|
||||||
if (err) {
|
|
||||||
console.log('Error.', err);
|
|
||||||
cb(err, null);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
cb(null, stats);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
module.exports = bwsStats;
|
|
Loading…
Reference in New Issue