[Account] Fix for adding account.
authorTomasz Marciniak <t.marciniak@samsung.com>
Fri, 11 Sep 2015 14:19:31 +0000 (16:19 +0200)
committerTomasz Marciniak <t.marciniak@samsung.com>
Fri, 11 Sep 2015 14:19:31 +0000 (16:19 +0200)
[Verification] Code compiles. TCT pass rate 100%

Change-Id: If2fd1d3296e71240b16d5e1b1530a59a722222b7
Signed-off-by: Tomasz Marciniak <t.marciniak@samsung.com>
src/account/account_manager.cc

index 7348b840a8c38c6208fa04e26379139a7e6d50e0..409ac752c39082fe13d35d19efdd3411ec790969 100755 (executable)
@@ -530,17 +530,23 @@ void AccountManager::AddAccount(const picojson::value& data, picojson::object& o
   LoggerD("Enter");
   account_h account_handle = NULL;
   int account_id;
-  const std::string& user_name = data.get("userName").get<std::string>();
-  const std::string& icon_uri = data.get("iconUri").get<std::string>();
-  const std::string& application_id = data.get("applicationId").get<std::string>();
+
+  const picojson::object& obj = data.get<picojson::object>();
 
   int ret = account_create(&account_handle);
   if (!ret) {
-    ret = account_set_user_name(account_handle, user_name.c_str());
+    const auto it = obj.find("userName");
+    if (obj.end() != it && !(it->second.is<picojson::null>())) {
+      ret = account_set_user_name(account_handle, it->second.get<std::string>().c_str());
+    }
     if (!ret) {
-      ret = account_set_icon_path(account_handle, icon_uri.c_str());
+      const auto it = obj.find("iconUri");
+      if (obj.end() != it && !(it->second.is<picojson::null>())) {
+        ret = account_set_icon_path(account_handle, it->second.get<std::string>().c_str());
+      }
     }
     if (!ret) {
+      const std::string& application_id = data.get("applicationId").get<std::string>();
       ret = account_set_package_name(account_handle, application_id.c_str());
     }
     if (!ret) {