提交 7aa0c838 编写于 作者: J Jonathan Giszczak

Revise chain API to return http response 200 or 202, as appropriate.

上级 674a5449
...@@ -26,13 +26,13 @@ chain_api_plugin::~chain_api_plugin(){} ...@@ -26,13 +26,13 @@ chain_api_plugin::~chain_api_plugin(){}
void chain_api_plugin::set_program_options(options_description&, options_description&) {} void chain_api_plugin::set_program_options(options_description&, options_description&) {}
void chain_api_plugin::plugin_initialize(const variables_map&) {} void chain_api_plugin::plugin_initialize(const variables_map&) {}
#define CALL(api_name, api_handle, api_namespace, call_name) \ #define CALL(api_name, api_handle, api_namespace, call_name, http_response_code) \
{std::string("/v1/" #api_name "/" #call_name), \ {std::string("/v1/" #api_name "/" #call_name), \
[this, api_handle](string, string body, url_response_callback cb) mutable { \ [this, api_handle](string, string body, url_response_callback cb) mutable { \
try { \ try { \
if (body.empty()) body = "{}"; \ if (body.empty()) body = "{}"; \
auto result = api_handle.call_name(fc::json::from_string(body).as<api_namespace::call_name ## _params>()); \ auto result = api_handle.call_name(fc::json::from_string(body).as<api_namespace::call_name ## _params>()); \
cb(201, fc::json::to_string(result)); \ cb(http_response_code, fc::json::to_string(result)); \
} catch (chain::tx_missing_sigs& e) { \ } catch (chain::tx_missing_sigs& e) { \
error_results results{401, "UnAuthorized", e.to_string()}; \ error_results results{401, "UnAuthorized", e.to_string()}; \
cb(401, fc::json::to_string(results)); \ cb(401, fc::json::to_string(results)); \
...@@ -53,8 +53,8 @@ void chain_api_plugin::plugin_initialize(const variables_map&) {} ...@@ -53,8 +53,8 @@ void chain_api_plugin::plugin_initialize(const variables_map&) {}
} \ } \
}} }}
#define CHAIN_RO_CALL(call_name) CALL(chain, ro_api, chain_apis::read_only, call_name) #define CHAIN_RO_CALL(call_name, http_response_code) CALL(chain, ro_api, chain_apis::read_only, call_name, http_response_code)
#define CHAIN_RW_CALL(call_name) CALL(chain, rw_api, chain_apis::read_write, call_name) #define CHAIN_RW_CALL(call_name, http_response_code) CALL(chain, rw_api, chain_apis::read_write, call_name, http_response_code)
void chain_api_plugin::plugin_startup() { void chain_api_plugin::plugin_startup() {
ilog( "starting chain_api_plugin" ); ilog( "starting chain_api_plugin" );
...@@ -63,17 +63,17 @@ void chain_api_plugin::plugin_startup() { ...@@ -63,17 +63,17 @@ void chain_api_plugin::plugin_startup() {
auto rw_api = app().get_plugin<chain_plugin>().get_read_write_api(); auto rw_api = app().get_plugin<chain_plugin>().get_read_write_api();
app().get_plugin<http_plugin>().add_api({ app().get_plugin<http_plugin>().add_api({
CHAIN_RO_CALL(get_info), CHAIN_RO_CALL(get_info, 200),
CHAIN_RO_CALL(get_block), CHAIN_RO_CALL(get_block, 200),
CHAIN_RO_CALL(get_account), CHAIN_RO_CALL(get_account, 200),
CHAIN_RO_CALL(get_code), CHAIN_RO_CALL(get_code, 200),
CHAIN_RO_CALL(get_table_rows), CHAIN_RO_CALL(get_table_rows, 200),
CHAIN_RO_CALL(abi_json_to_bin), CHAIN_RO_CALL(abi_json_to_bin, 200),
CHAIN_RO_CALL(abi_bin_to_json), CHAIN_RO_CALL(abi_bin_to_json, 200),
CHAIN_RO_CALL(get_required_keys), CHAIN_RO_CALL(get_required_keys, 200),
CHAIN_RW_CALL(push_block), CHAIN_RW_CALL(push_block, 202),
CHAIN_RW_CALL(push_transaction), CHAIN_RW_CALL(push_transaction, 202),
CHAIN_RW_CALL(push_transactions) CHAIN_RW_CALL(push_transactions, 202)
}); });
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册