summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYaroslav Mamykin (GitHub) <ymamykin@luxoft.com>2019-10-11 21:19:51 +0300
committerYarik <ymamykin@gmail.com>2019-11-15 15:19:04 +0200
commit4d06eab77da28adaa35ee6b65e586f402f7ea656 (patch)
treed1a6de1f2ac3638b42269f919e83edacd033b0b7
parent37d3b12ea4e87ac0fdf6914ef433a7892ae0cb19 (diff)
downloadsdl_core-4d06eab77da28adaa35ee6b65e586f402f7ea656.tar.gz
fixup! Fix versioning appliance for vehicle data
-rw-r--r--src/components/application_manager/src/rpc_service_impl.cc59
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];