@@ -13,11 +13,19 @@ ton_http::schemas::v2::ConfigParamRequest ton_http::handlers::GetConfigParamHand
1313 const HttpRequest& request, RequestContext&
1414) const {
1515 schemas::v2::ConfigParamRequest req;
16-
17- try {
18- req.config_id = boost::lexical_cast<std::int32_t >(request.GetArg (" config_id" ));
19- } catch (std::exception& exc) {
20- throw utils::TonlibException (" failed to parse config_id" , 422 );
16+ if (request.HasArg (" param" )) {
17+ try {
18+ req.param = boost::lexical_cast<std::int32_t >(request.GetArg (" param" ));
19+ } catch (std::exception& exc) {
20+ throw utils::TonlibException (" failed to parse param" , 422 );
21+ }
22+ }
23+ if (request.HasArg (" config_id" )) { // backward compatibility
24+ try {
25+ req.param = boost::lexical_cast<std::int32_t >(request.GetArg (" config_id" ));
26+ } catch (std::exception& exc) {
27+ throw utils::TonlibException (" failed to parse config_id" , 422 );
28+ }
2129 }
2230 if (request.HasArg (" seqno" )) {
2331 try {
@@ -32,7 +40,17 @@ ton_http::schemas::v2::ConfigParamRequest ton_http::handlers::GetConfigParamHand
3240td::Status ton_http::handlers::GetConfigParamHandler::ValidateRequest (
3341 const schemas::v2::ConfigParamRequest& request
3442) const {
35- if (request.config_id < 0 ) {
43+ std::int32_t param = -1 ;
44+ if (!(request.config_id .has_value () ^ request.param .has_value ())) {
45+ return td::Status::Error (422 , " only one of config_id or param should be specified" );
46+ }
47+ if (request.config_id .has_value ()) {
48+ param = request.config_id .value ();
49+ }
50+ if (request.param .has_value ()) {
51+ param = request.param .value ();
52+ }
53+ if (param < 0 ) {
3654 return td::Status::Error (422 , " param should be non-negative" );
3755 }
3856 if (request.seqno .has_value () && request.seqno .value () <= 0 ) {
@@ -43,6 +61,7 @@ td::Status ton_http::handlers::GetConfigParamHandler::ValidateRequest(
4361td::Result<ton_http::schemas::v2::ConfigInfo> ton_http::handlers::GetConfigParamHandler::HandleRequestTonlibThrow (
4462 schemas::v2::ConfigParamRequest& request, multiclient::SessionPtr& session
4563) const {
46- TRY_RESULT (result, tonlib_component_.DoRequest (&core::TonlibWorker::getConfigParam, request.config_id , request.seqno , session));
64+ auto param = (request.config_id .has_value () ? request.config_id .value () : request.param .has_value () ? request.param .value () : -1 );
65+ TRY_RESULT (result, tonlib_component_.DoRequest (&core::TonlibWorker::getConfigParam, param, request.seqno , session));
4766 return converters::Convert (result);
4867}
0 commit comments