Subscribe/Unsubscribe RPC handlers (#2)

Subscribe to ledgers, transactions and accounts
This commit is contained in:
Nathan Nichols
2021-05-18 08:06:46 -07:00
committed by GitHub
parent c39a0a001d
commit 8ee213f6bc
5 changed files with 557 additions and 5 deletions

View File

@@ -0,0 +1,48 @@
#include <reporting/server/session.h>
void
fail(boost::beast::error_code ec, char const* what)
{
std::cerr << what << ": " << ec.message() << "\n";
}
boost::json::object
buildResponse(
boost::json::object const& request,
BackendInterface const& backend,
SubscriptionManager& subManager,
std::shared_ptr<session> session)
{
std::string command = request.at("command").as_string().c_str();
boost::json::object response;
switch (commandMap[command])
{
case tx:
return doTx(request, backend);
break;
case account_tx:
return doAccountTx(request, backend);
break;
case book_offers:
return doBookOffers(request, backend);
break;
case ledger:
return doLedger(request, backend);
break;
case ledger_data:
return doLedgerData(request, backend);
break;
case account_info:
return doAccountInfo(request, backend);
break;
case subscribe:
return doSubscribe(request, session, subManager);
break;
case unsubscribe:
return doUnsubscribe(request, session, subManager);
break;
default:
BOOST_LOG_TRIVIAL(error) << "Unknown command: " << command;
}
return response;
}