summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Keeler <jacob.keeler@livioradio.com>2017-09-07 13:40:01 -0400
committerGitHub <noreply@github.com>2017-09-07 13:40:01 -0400
commit6b5c69d658022613154a7555e26a4d15a1d114da (patch)
treebb5ea4496ea3967a70236071684c0a585d7b7a9d
parent3f003d6bbb301725218a8dbacfcf92e04fb874d7 (diff)
parent36a37e964f03b3c01decee10c80a67b8c5ec1590 (diff)
downloadsdl_core-6b5c69d658022613154a7555e26a4d15a1d114da.tar.gz
Merge pull request #1615 from AKalinich-Luxoft/fix/fix_consumer_friendly_messages_saving
Fix Consumer Friendly Messages removing from PT
-rw-r--r--src/components/policy/policy_external/src/sql_pt_representation.cc68
-rw-r--r--src/components/policy/policy_regular/src/sql_pt_representation.cc65
2 files changed, 70 insertions, 63 deletions
diff --git a/src/components/policy/policy_external/src/sql_pt_representation.cc b/src/components/policy/policy_external/src/sql_pt_representation.cc
index 7f67ed82f6..f9cc5e5ed5 100644
--- a/src/components/policy/policy_external/src/sql_pt_representation.cc
+++ b/src/components/policy/policy_external/src/sql_pt_representation.cc
@@ -1287,46 +1287,48 @@ bool SQLPTRepresentation::SaveConsumerFriendlyMessages(
// According CRS-2419 If there is no “consumer_friendly_messages” key,
// the current local consumer_friendly_messages section shall be maintained in
// the policy table. So it won't be changed/updated
- if (messages.messages.is_initialized()) {
- utils::dbms::SQLQuery query(db());
- if (!messages.messages->empty()) {
- if (!query.Exec(sql_pt::kDeleteMessageString)) {
- LOG4CXX_WARN(logger_, "Incorrect delete from message.");
- return false;
- }
- }
+ if (!messages.messages.is_initialized()) {
+ LOG4CXX_INFO(logger_, "ConsumerFriendlyMessages messages list is empty");
+ return true;
+ }
- if (query.Prepare(sql_pt::kUpdateVersion)) {
- query.Bind(0, messages.version);
- if (!query.Exec()) {
- LOG4CXX_WARN(logger_, "Incorrect update into version.");
- return false;
- }
- } else {
- LOG4CXX_WARN(logger_, "Incorrect update statement for version.");
+ utils::dbms::SQLQuery query(db());
+ bool delete_query_exec_result = true;
+ if (!messages.messages->empty()) {
+ delete_query_exec_result = query.Exec(sql_pt::kDeleteMessageString);
+ }
+
+ if (!delete_query_exec_result) {
+ LOG4CXX_WARN(logger_, "Failed to delete messages from DB.");
+ return false;
+ }
+
+ if (!query.Prepare(sql_pt::kUpdateVersion)) {
+ LOG4CXX_WARN(logger_, "Invalid update messages version statement.");
+ return false;
+ }
+
+ query.Bind(0, messages.version);
+ if (!query.Exec()) {
+ LOG4CXX_WARN(logger_, "Failed to update messages version number in DB.");
+ return false;
+ }
+
+ policy_table::Messages::const_iterator it;
+ for (it = messages.messages->begin(); it != messages.messages->end(); ++it) {
+ if (!SaveMessageType(it->first)) {
return false;
}
-
- policy_table::Messages::const_iterator it;
- // TODO(IKozyrenko): Check logic if optional container is missing
- for (it = messages.messages->begin(); it != messages.messages->end();
- ++it) {
- if (!SaveMessageType(it->first)) {
+ const policy_table::Languages& langs = it->second.languages;
+ policy_table::Languages::const_iterator lang_it;
+ for (lang_it = langs.begin(); lang_it != langs.end(); ++lang_it) {
+ if (!SaveLanguage(lang_it->first)) {
return false;
}
- const policy_table::Languages& langs = it->second.languages;
- policy_table::Languages::const_iterator lang_it;
- for (lang_it = langs.begin(); lang_it != langs.end(); ++lang_it) {
- if (!SaveLanguage(lang_it->first)) {
- return false;
- }
- if (!SaveMessageString(it->first, lang_it->first, lang_it->second)) {
- return false;
- }
+ if (!SaveMessageString(it->first, lang_it->first, lang_it->second)) {
+ return false;
}
}
- } else {
- LOG4CXX_INFO(logger_, "Messages list is empty");
}
return true;
diff --git a/src/components/policy/policy_regular/src/sql_pt_representation.cc b/src/components/policy/policy_regular/src/sql_pt_representation.cc
index 9f529b7d78..04fc0d7658 100644
--- a/src/components/policy/policy_regular/src/sql_pt_representation.cc
+++ b/src/components/policy/policy_regular/src/sql_pt_representation.cc
@@ -1198,43 +1198,48 @@ bool SQLPTRepresentation::SaveConsumerFriendlyMessages(
// According CRS-2419 If there is no “consumer_friendly_messages” key,
// the current local consumer_friendly_messages section shall be maintained in
// the policy table. So it won't be changed/updated
- if (messages.messages.is_initialized()) {
- utils::dbms::SQLQuery query(db());
- if (!query.Exec(sql_pt::kDeleteMessageString)) {
- LOG4CXX_WARN(logger_, "Incorrect delete from message.");
- return false;
- }
+ if (!messages.messages.is_initialized()) {
+ LOG4CXX_INFO(logger_, "ConsumerFriendlyMessages messages list is empty");
+ return true;
+ }
- if (query.Prepare(sql_pt::kUpdateVersion)) {
- query.Bind(0, messages.version);
- if (!query.Exec()) {
- LOG4CXX_WARN(logger_, "Incorrect update into version.");
- return false;
- }
- } else {
- LOG4CXX_WARN(logger_, "Incorrect update statement for version.");
+ utils::dbms::SQLQuery query(db());
+ bool delete_query_exec_result = true;
+ if (!messages.messages->empty()) {
+ delete_query_exec_result = query.Exec(sql_pt::kDeleteMessageString);
+ }
+
+ if (!delete_query_exec_result) {
+ LOG4CXX_WARN(logger_, "Failed to delete messages from DB.");
+ return false;
+ }
+
+ if (!query.Prepare(sql_pt::kUpdateVersion)) {
+ LOG4CXX_WARN(logger_, "Invalid update messages version statement.");
+ return false;
+ }
+
+ query.Bind(0, messages.version);
+ if (!query.Exec()) {
+ LOG4CXX_WARN(logger_, "Failed to update messages version number in DB.");
+ return false;
+ }
+
+ policy_table::Messages::const_iterator it;
+ for (it = messages.messages->begin(); it != messages.messages->end(); ++it) {
+ if (!SaveMessageType(it->first)) {
return false;
}
-
- policy_table::Messages::const_iterator it;
- for (it = messages.messages->begin(); it != messages.messages->end();
- ++it) {
- if (!SaveMessageType(it->first)) {
+ const policy_table::Languages& langs = it->second.languages;
+ policy_table::Languages::const_iterator lang_it;
+ for (lang_it = langs.begin(); lang_it != langs.end(); ++lang_it) {
+ if (!SaveLanguage(lang_it->first)) {
return false;
}
- const policy_table::Languages& langs = it->second.languages;
- policy_table::Languages::const_iterator lang_it;
- for (lang_it = langs.begin(); lang_it != langs.end(); ++lang_it) {
- if (!SaveLanguage(lang_it->first)) {
- return false;
- }
- if (!SaveMessageString(it->first, lang_it->first, lang_it->second)) {
- return false;
- }
+ if (!SaveMessageString(it->first, lang_it->first, lang_it->second)) {
+ return false;
}
}
- } else {
- LOG4CXX_INFO(logger_, "Messages list is empty");
}
return true;