From: Pawel Andruszkiewicz
Date: Fri, 13 Feb 2015 14:40:05 +0000 (+0100)
Subject: [Account] Fixes for getExtendedData() and setExtendedData().
X-Git-Tag: submit/tizen_tv/20150603.064601~1^2~444
X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=736678b604367ee1a227cb83389467ee63f444ae;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git
[Account] Fixes for getExtendedData() and setExtendedData().
Change-Id: Icc708e6ce3a9f4db7f614b11dd197c7954de975c
---
diff --git a/src/account/account_api.js b/src/account/account_api.js
index 009479df..43669e9c 100644
--- a/src/account/account_api.js
+++ b/src/account/account_api.js
@@ -87,13 +87,11 @@ Account.prototype.setExtendedData = function() {
Account.prototype.getExtendedData = function() {
- if (T_.isFunction(arguments[0])) {
+ if (T_.isFunction(arguments[0]) || arguments.length > 1) {
var args = validator_.validateArgs(arguments, [
{
name : 'successCallback',
- type : types_.FUNCTION,
- optional : false,
- nullable : false
+ type : types_.FUNCTION
},
{
name : 'errorCallback',
@@ -112,6 +110,10 @@ Account.prototype.getExtendedData = function() {
args.errorCallback(native_.getErrorObject(result));
}
} else {
+ var data = native_.getResultObject(result);
+ for (var i = 0; i < data.length; ++i) {
+ Object.freeze(data[i]);
+ }
args.successCallback(native_.getResultObject(result));
}
}
diff --git a/src/account/account_manager.cc b/src/account/account_manager.cc
index b30356dd..fc5250f1 100644
--- a/src/account/account_manager.cc
+++ b/src/account/account_manager.cc
@@ -422,7 +422,8 @@ void AccountManager::GetExtendedData(int account_id, const std::string& key, pic
if (ACCOUNT_ERROR_NONE != ret) {
if (ACCOUNT_ERROR_RECORD_NOT_FOUND == ret) {
LoggerE("There is no extended data value for %s", key.c_str());
- REPORT_ERROR(out, NotFoundException("There is no extended data value for specified key"));
+ out["status"] = picojson::value("success");
+ out["result"] = picojson::value();
} else {
LoggerE("Failed to get custom field");
REPORT_ERROR(out, UnknownException(GetErrorMsg(ret)));
@@ -493,6 +494,13 @@ void AccountManager::SetExtendedData(int account_id, const std::string& key, con
if (ACCOUNT_ERROR_NONE != ret) {
LoggerE("Failed to set custom field");
REPORT_ERROR(out, UnknownException(GetErrorMsg(ret)));
+ return;
+ }
+
+ ret = account_update_to_db_by_id(account, account_id);
+ if (ACCOUNT_ERROR_NONE != ret) {
+ LoggerE("Failed to update account in database");
+ REPORT_ERROR(out, UnknownException(GetErrorMsg(ret)));
} else {
out["status"] = picojson::value("success");
}