diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2015-02-10 12:04:50 +0100 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2015-02-10 12:08:07 +0100 |
commit | d48ce48093faf1a0778b424397a2879a93e5fb5e (patch) | |
tree | 46c66a3c288b70603cb2b7069e57b6ad9e7f6e75 /src/rest.cpp | |
parent | a9565863e09a32729bd6ce33f31889099b3d75cb (diff) | |
parent | 2c0f901ea90e3efab5e15abeba011597cfdd92c1 (diff) |
Merge #5548: [REST] add /rest/chaininfos
2c0f901 [REST] rest/chaininfos add documentation (Jonas Schnelli)
59582c8 [REST] add /rest/chaininfos (Jonas Schnelli)
Diffstat (limited to 'src/rest.cpp')
-rw-r--r-- | src/rest.cpp | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/src/rest.cpp b/src/rest.cpp index 1ee1d52912..adc2d56284 100644 --- a/src/rest.cpp +++ b/src/rest.cpp @@ -95,7 +95,7 @@ static bool rest_headers(AcceptedConnection* conn, bool fRun) { vector<string> params; - enum RetFormat rf = ParseDataFormat(params, strReq); + const RetFormat rf = ParseDataFormat(params, strReq); vector<string> path; boost::split(path, params[0], boost::is_any_of("/")); @@ -159,7 +159,7 @@ static bool rest_block(AcceptedConnection* conn, bool showTxDetails) { vector<string> params; - enum RetFormat rf = ParseDataFormat(params, strReq); + const RetFormat rf = ParseDataFormat(params, strReq); string hashStr = params[0]; uint256 hash; @@ -226,13 +226,39 @@ static bool rest_block_notxdetails(AcceptedConnection* conn, return rest_block(conn, strReq, mapHeaders, fRun, false); } +static bool rest_chaininfo(AcceptedConnection* conn, + const std::string& strReq, + const std::map<std::string, std::string>& mapHeaders, + bool fRun) +{ + vector<string> params; + const RetFormat rf = ParseDataFormat(params, strReq); + + switch (rf) { + case RF_JSON: { + Array rpcParams; + Value chainInfoObject = getblockchaininfo(rpcParams, false); + + string strJSON = write_string(chainInfoObject, false) + "\n"; + conn->stream() << HTTPReply(HTTP_OK, strJSON, fRun) << std::flush; + return true; + } + default: { + throw RESTERR(HTTP_NOT_FOUND, "output format not found (available: json)"); + } + } + + // not reached + return true; // continue to process further HTTP reqs on this cxn +} + static bool rest_tx(AcceptedConnection* conn, const std::string& strReq, const std::map<std::string, std::string>& mapHeaders, bool fRun) { vector<string> params; - enum RetFormat rf = ParseDataFormat(params, strReq); + const RetFormat rf = ParseDataFormat(params, strReq); string hashStr = params[0]; uint256 hash; @@ -287,6 +313,7 @@ static const struct { {"/rest/tx/", rest_tx}, {"/rest/block/notxdetails/", rest_block_notxdetails}, {"/rest/block/", rest_block_extended}, + {"/rest/chaininfo", rest_chaininfo}, {"/rest/headers/", rest_headers}, }; |