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"); }