From 2ef272b80532b3f0d167fb9573231388dc953378 Mon Sep 17 00:00:00 2001 From: Arthur Britto Date: Mon, 3 Dec 2012 14:51:41 -0800 Subject: [PATCH] Refactor RPC unl_add. --- src/cpp/ripple/CallRPC.cpp | 35 ++++++++++++++++++++++++++---- src/cpp/ripple/CallRPC.h | 2 ++ src/cpp/ripple/RPCHandler.cpp | 41 +++++++++++++++++++---------------- 3 files changed, 55 insertions(+), 23 deletions(-) diff --git a/src/cpp/ripple/CallRPC.cpp b/src/cpp/ripple/CallRPC.cpp index 37d480b94..5f9b1b9c3 100644 --- a/src/cpp/ripple/CallRPC.cpp +++ b/src/cpp/ripple/CallRPC.cpp @@ -113,6 +113,11 @@ Json::Value RPCParser::parseAccountTransactions(const Json::Value& jvParams) return jvRequest; } +Json::Value RPCParser::parseEvented(const Json::Value& jvParams) +{ + return rpcError(rpcNO_EVENTS); +} + // submit any transaction to the network // submit private_key json Json::Value RPCParser::parseSubmit(const Json::Value& jvParams) @@ -124,7 +129,7 @@ Json::Value RPCParser::parseSubmit(const Json::Value& jvParams) { Json::Value jvRequest; - jvRequest["secret"] = params[0u].asString(); + jvRequest["secret"] = jvParams[0u].asString(); jvRequest["tx_json"] = txJSON; return jvRequest; @@ -133,11 +138,33 @@ Json::Value RPCParser::parseSubmit(const Json::Value& jvParams) return rpcError(rpcINVALID_PARAMS); } -Json::Value RPCParser::parseEvented(const Json::Value& jvParams) +// unl_add | [] +Json::Value RPCParser::parseUnlAdd(const Json::Value& jvParams) { - return rpcError(rpcNO_EVENTS); + std::string strNode = jvParams[0u].asString(); + std::string strComment = (jvParams.size() == 2) ? jvParams[1u].asString() : ""; + + RippleAddress naNodePublic; + + if (strNode.length()) + { + Json::Value jvRequest; + + jvRequest["node"] = strNode; + + if (strComment.length()) + jvRequest["comment"] = strComment; + + return jvRequest; + } + + return rpcError(rpcINVALID_PARAMS); } +// +// parseCommand +// + // Convert a rpc method and params to a request. // <-- { method: xyz, params: [... ] } or { error: ..., ... } Json::Value RPCParser::parseCommand(std::string strMethod, Json::Value jvParams) @@ -183,7 +210,7 @@ Json::Value RPCParser::parseCommand(std::string strMethod, Json::Value jvParams) // { "tx", &RPCParser::doTx, 1, 1, true, false, optNone }, // { "tx_history", &RPCParser::doTxHistory, 1, 1, false, false, optNone }, // -// { "unl_add", &RPCParser::doUnlAdd, 1, 2, true, false, optNone }, + { "unl_add", &RPCParser::parseUnlAdd, 1, 2 }, // { "unl_delete", &RPCParser::doUnlDelete, 1, 1, true, false, optNone }, { "unl_list", &RPCParser::parseAsIs, 0, 0 }, { "unl_load", &RPCParser::parseAsIs, 0, 0 }, diff --git a/src/cpp/ripple/CallRPC.h b/src/cpp/ripple/CallRPC.h index 411a7496d..2f4175767 100644 --- a/src/cpp/ripple/CallRPC.h +++ b/src/cpp/ripple/CallRPC.h @@ -18,6 +18,8 @@ protected: Json::Value parseSubmit(const Json::Value& jvParams); Json::Value parseEvented(const Json::Value& jvParams); + Json::Value parseUnlAdd(const Json::Value& jvParams); + public: Json::Value parseCommand(std::string strMethod, Json::Value jvParams); }; diff --git a/src/cpp/ripple/RPCHandler.cpp b/src/cpp/ripple/RPCHandler.cpp index 8ca5ac9ac..c37207b26 100644 --- a/src/cpp/ripple/RPCHandler.cpp +++ b/src/cpp/ripple/RPCHandler.cpp @@ -1240,17 +1240,20 @@ Json::Value RPCHandler::doAccountTransactions(Json::Value jvRequest) #endif } -// unl_add | [] -Json::Value RPCHandler::doUnlAdd(Json::Value params) +// { +// node: |, +// comment: // optional +// } +Json::Value RPCHandler::doUnlAdd(Json::Value jvParams) { - std::string strNode = params[0u].asString(); - std::string strComment = (params.size() == 2) ? params[1u].asString() : ""; + std::string strNode = jvParams.isMember("node") ? jvParams["node"].asString() : ""; + std::string strComment = jvParams.isMember("comment") ? jvParams["comment"].asString() : ""; - RippleAddress naNodePublic; + RippleAddress raNodePublic; - if (naNodePublic.setNodePublic(strNode)) + if (raNodePublic.setNodePublic(strNode)) { - theApp->getUNL().nodeAddPublic(naNodePublic, UniqueNodeList::vsManual, strComment); + theApp->getUNL().nodeAddPublic(raNodePublic, UniqueNodeList::vsManual, strComment); return "adding node by public key"; } @@ -2184,33 +2187,33 @@ Json::Value RPCHandler::doCommand(Json::Value& jvParams, int iRole) { "data_store", &RPCHandler::doDataStore, 2, 2, true, false, optNone }, { "get_counts", &RPCHandler::doGetCounts, 0, 1, true, false, optNone }, { "ledger", &RPCHandler::doLedger, 0, 2, false, false, optNetwork }, - { "ledger_accept", &RPCHandler::doLedgerAccept, 0, 0, true, false, optCurrent }, - { "ledger_closed", &RPCHandler::doLedgerClosed, 0, 0, false, false, optClosed }, - { "ledger_current", &RPCHandler::doLedgerCurrent, 0, 0, false, false, optCurrent }, + { "ledger_accept", &RPCHandler::doLedgerAccept, -1, -1, true, false, optCurrent }, + { "ledger_closed", &RPCHandler::doLedgerClosed, -1, -1, false, false, optClosed }, + { "ledger_current", &RPCHandler::doLedgerCurrent, -1, -1, false, false, optCurrent }, { "ledger_entry", &RPCHandler::doLedgerEntry, -1, -1, false, false, optCurrent }, { "ledger_header", &RPCHandler::doLedgerHeader, -1, -1, false, false, optCurrent }, { "log_level", &RPCHandler::doLogLevel, 0, 2, true, false, optNone }, - { "logrotate", &RPCHandler::doLogRotate, 0, 0, true, false, optNone }, + { "logrotate", &RPCHandler::doLogRotate, -1, -1, true, false, optNone }, { "nickname_info", &RPCHandler::doNicknameInfo, 1, 1, false, false, optCurrent }, { "owner_info", &RPCHandler::doOwnerInfo, 1, 2, false, false, optCurrent }, - { "peers", &RPCHandler::doPeers, 0, 0, true, false, optNone }, + { "peers", &RPCHandler::doPeers, -1, -1, true, false, optNone }, { "profile", &RPCHandler::doProfile, 1, 9, false, false, optCurrent }, { "ripple_lines_get", &RPCHandler::doRippleLinesGet, 1, 2, false, false, optCurrent }, { "ripple_path_find", &RPCHandler::doRipplePathFind, -1, -1, false, false, optCurrent }, { "submit", &RPCHandler::doSubmit, -1, -1, false, false, optCurrent }, - { "server_info", &RPCHandler::doServerInfo, 0, 0, true, false, optNone }, - { "stop", &RPCHandler::doStop, 0, 0, true, false, optNone }, + { "server_info", &RPCHandler::doServerInfo, -1, -1, true, false, optNone }, + { "stop", &RPCHandler::doStop, -1, -1, true, false, optNone }, { "transaction_entry", &RPCHandler::doTransactionEntry, -1, -1, false, false, optCurrent }, { "tx", &RPCHandler::doTx, 1, 1, true, false, optNone }, { "tx_history", &RPCHandler::doTxHistory, 1, 1, false, false, optNone }, { "unl_add", &RPCHandler::doUnlAdd, 1, 2, true, false, optNone }, { "unl_delete", &RPCHandler::doUnlDelete, 1, 1, true, false, optNone }, - { "unl_list", &RPCHandler::doUnlList, 0, 0, true, false, optNone }, - { "unl_load", &RPCHandler::doUnlLoad, 0, 0, true, false, optNone }, - { "unl_network", &RPCHandler::doUnlNetwork, 0, 0, true, false, optNone }, - { "unl_reset", &RPCHandler::doUnlReset, 0, 0, true, false, optNone }, - { "unl_score", &RPCHandler::doUnlScore, 0, 0, true, false, optNone }, + { "unl_list", &RPCHandler::doUnlList, -1, -1, true, false, optNone }, + { "unl_load", &RPCHandler::doUnlLoad, -1, -1, true, false, optNone }, + { "unl_network", &RPCHandler::doUnlNetwork, -1, -1, true, false, optNone }, + { "unl_reset", &RPCHandler::doUnlReset, -1, -1, true, false, optNone }, + { "unl_score", &RPCHandler::doUnlScore, -1, -1, true, false, optNone }, { "validation_create", &RPCHandler::doValidationCreate, 0, 1, false, false, optNone }, { "validation_seed", &RPCHandler::doValidationSeed, 0, 1, false, false, optNone },