diff options
author | Yaroslav Mamykin (GitHub) <ymamykin@luxoft.com> | 2019-10-11 21:19:51 +0300 |
---|---|---|
committer | Yarik <ymamykin@gmail.com> | 2019-11-15 15:19:04 +0200 |
commit | 4d06eab77da28adaa35ee6b65e586f402f7ea656 (patch) | |
tree | d1a6de1f2ac3638b42269f919e83edacd033b0b7 | |
parent | 37d3b12ea4e87ac0fdf6914ef433a7892ae0cb19 (diff) | |
download | sdl_core-4d06eab77da28adaa35ee6b65e586f402f7ea656.tar.gz |
fixup! Fix versioning appliance for vehicle data
-rw-r--r-- | src/components/application_manager/src/rpc_service_impl.cc | 59 |
1 files changed, 35 insertions, 24 deletions
diff --git a/src/components/application_manager/src/rpc_service_impl.cc b/src/components/application_manager/src/rpc_service_impl.cc index f92e988ccd..185945b28a 100644 --- a/src/components/application_manager/src/rpc_service_impl.cc +++ b/src/components/application_manager/src/rpc_service_impl.cc @@ -535,32 +535,47 @@ void RPCServiceImpl::SendMessageToMobile( allow_unknown_parameters = false; } - mobile_so_factory().attachSchema(*message, false, app->msg_version()); - rpc::ValidationReport report("RPC"); - auto validation_result = message->validate(&report, app->msg_version()); - LOG4CXX_DEBUG(logger_, - "Attached schema to message, result if valid: " - << validation_result - << "\nError report: " << rpc::PrettyFormat(report)); - const auto api_function_id = static_cast<mobile_apis::FunctionID::eType>( (*message)[strings::params][strings::function_id].asUInt()); - if (api_function_id == mobile_apis::FunctionID::GetVehicleDataID) { + if (app) { + mobile_so_factory().attachSchema(*message, false, app->msg_version()); + rpc::ValidationReport report("RPC"); + auto validation_result = message->validate(&report, app->msg_version()); + LOG4CXX_DEBUG(logger_, + "Attached schema to message, result if valid: " + << validation_result + << "\nError report: " << rpc::PrettyFormat(report)); + if (validation_result != smart_objects::errors::eType::OK) { - if (mobile_apis::Result::SUCCESS == - (*message)[strings::msg_params][strings::result_code].asUInt()) { - smart_objects::SmartObjectSPtr response = - MessageHelper::CreateNegativeResponse( - (*message)[strings::params][strings::connection_key].asUInt(), - api_function_id, - (*message)[strings::params][strings::correlation_id].asUInt(), - static_cast<int32_t>(mobile_apis::Result::GENERIC_ERROR)); - - SendMessageToMobile(response); - return; + switch (api_function_id) { + case mobile_apis::FunctionID::GetVehicleDataID: { + if (mobile_apis::Result::SUCCESS == + (*message)[strings::msg_params][strings::result_code].asUInt()) { + smart_objects::SmartObjectSPtr response = + MessageHelper::CreateNegativeResponse( + (*message)[strings::params][strings::connection_key].asUInt(), + api_function_id, + (*message)[strings::params][strings::correlation_id].asUInt(), + static_cast<int32_t>(mobile_apis::Result::GENERIC_ERROR)); + + SendMessageToMobile(response); + return; + } + } break; + + case mobile_apis::FunctionID::OnVehicleDataID: { + return; + } break; + + default:break; } } + } else { + mobile_so_factory().attachSchema(*message, false); + LOG4CXX_DEBUG(logger_, + "Attached schema to message, result if valid: " + << message->isValid()); } if (!ConvertSOtoMessage( @@ -578,10 +593,6 @@ void RPCServiceImpl::SendMessageToMobile( msg_to_mobile[strings::params][strings::connection_key].asUInt(), msg_to_mobile[strings::params][strings::function_id].asInt()); } else if (app) { - if (validation_result != smart_objects::errors::eType::OK) { - return; - } - RPCParams params; const smart_objects::SmartObject& s_map = (*message)[strings::msg_params]; |