added support for customizing daemon api cmds [getmasternodecount only so far]

This commit is contained in:
joeuhren
2019-10-09 13:04:32 -06:00
parent 3d6fc2923b
commit e645ee8635
4 changed files with 75 additions and 47 deletions
+52 -42
View File
@@ -1,5 +1,6 @@
var onode = require('./node');
var express = require('express');
var settings = require('./settings');
module.exports = function(){
function express_app(){
@@ -30,6 +31,7 @@ module.exports = function(){
if (method == 'sendmany' ||
method == 'getmasternodecountonline' ||
method == 'getmasternodecount' ||
method == 'getmasternodelist' ||
method == 'getvotelist') {
command = specialApiCase(method);
@@ -73,50 +75,58 @@ module.exports = function(){
function specialApiCase(method_name){
var params = [];
if(method_name == 'sendmany'){
var after_account = false;
var before_min_conf = true;
var address_info = {};
for(var parameter in query_parameters){
if(query_parameters.hasOwnProperty(parameter)){
if(parameter == 'minconf'){
before_min_conf = false;
params.push(address_info);
switch(method_name) {
case 'sendmany':
var after_account = false;
var before_min_conf = true;
var address_info = {};
for(var parameter in query_parameters){
if(query_parameters.hasOwnProperty(parameter)){
if(parameter == 'minconf'){
before_min_conf = false;
params.push(address_info);
}
var param = query_parameters[parameter];
if(!isNaN(param)){
param = parseFloat(param);
}
if(after_account && before_min_conf){
address_info[parameter] = param;
}
else {
params.push(param);
}
if(parameter == 'account') after_account = true;
}
var param = query_parameters[parameter];
if(!isNaN(param)){
param = parseFloat(param);
}
if(after_account && before_min_conf){
address_info[parameter] = param;
}
else{
params.push(param);
}
if(parameter == 'account') after_account = true;
}
}
if(before_min_conf){
params.push(address_info);
}
}
//not liking this
if(method_name == 'getvotelist'){
method_name = 'masternodelist'
params.push('votes');
}
if(method_name == 'getmasternodelist'){
method_name = 'masternode'
params.push('list');
}
if(method_name == 'getmasternodecountonline'){
method_name = 'masternode';
params.push('count');
params.push('enabled');
if(before_min_conf){
params.push(address_info);
}
break;
case 'getvotelist':
method_name = 'masternodelist'
params.push('votes');
break;
case 'getmasternodelist':
method_name = 'masternode'
params.push('list');
break;
case 'getmasternodecountonline':
method_name = 'masternode';
params.push('count');
params.push('enabled');
break;
case 'getmasternodecount':
// split cmd by spaces
var sSplit = settings.api_cmds.masternode_count.split(' ');
for (i=0; i<sSplit.length; i++) {
if (i==0)
method_name = sSplit[i];
else
params.push(sSplit[i]);
}
break;
}
return [{