diff options
Diffstat (limited to 'src/components/policy/policy_external/src/sql_pt_representation.cc')
-rw-r--r-- | src/components/policy/policy_external/src/sql_pt_representation.cc | 68 |
1 files changed, 35 insertions, 33 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; |