{ name: 'account', type: types_.PLATFORM_OBJECT, values: Account }
]);
- var result = native_.callSync( 'AccountManager_add', { account: args.account });
+ var result = native_.callSync('AccountManager_add',
+ {
+ userName: args.account.userName,
+ iconUri: args.account.iconUri,
+ applicationId: args.account.provider.applicationId
+ }
+ );
if (native_.isFailure(result)) {
throw native_.getErrorObject(result);
+ } else {
+ args.account.id = new InternalValues_({ id: native_.getResultObject(result) });
}
}
{ name: 'account', type: types_.PLATFORM_OBJECT, values: Account }
]);
- var result = native_.callSync( 'AccountManager_update',
- {
- accountId: args.account.id,
- userName: args.account.userName,
- iconUri: args.account.iconUri
- }
+ var result = native_.callSync('AccountManager_update',
+ {
+ accountId: args.account.id,
+ userName: args.account.userName,
+ iconUri: args.account.iconUri
+ }
);
if (native_.isFailure(result)) {
this->manager_->GetExtendedData(account_id, key, out);
}
-void AccountInstance::AccountManagerAdd(const picojson::value& args,
- picojson::object& out) {
+void AccountInstance::AccountManagerAdd(const picojson::value& args, picojson::object& out) {
LoggerD("Enter");
-
CheckAccess(kPrivilegeAccountWrite, &out);
-
- // implement it
-
- // if success
- // ReportSuccess(out);
- // if error
- // ReportError(out);
+ manager_->AddAccount(args, out);
}
void AccountInstance::AccountManagerRemove(const picojson::value& args,
picojson::object& out) {
LoggerD("Enter");
-
CheckAccess(kPrivilegeAccountWrite, &out);
-
- // implement it
-
- // if success
- // ReportSuccess(out);
- // if error
- // ReportError(out);
+ manager_->RemoveAccount(args, out);
}
void AccountInstance::AccountManagerUpdate(const picojson::value& args,
picojson::object& out) {
LoggerD("Enter");
-
CheckAccess(kPrivilegeAccountWrite, &out);
-
- // implement it
-
- // if success
- // ReportSuccess(out);
- // if error
- // ReportError(out);
+ manager_->UpdateAccount(args, out);
}
void AccountInstance::AccountManagerGetAccount(const picojson::value& args,
}
}
+void AccountManager::AddAccount(const picojson::value& data, picojson::object& out) {
+ 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>();
+
+ int ret = account_create(&account_handle);
+ if (!ret) {
+ ret = account_set_user_name(account_handle, user_name.c_str());
+ if (!ret) {
+ ret = account_set_icon_path(account_handle, icon_uri.c_str());
+ }
+ if (!ret) {
+ ret = account_set_package_name(account_handle, application_id.c_str());
+ }
+ if (!ret) {
+ ret = account_insert_to_db(account_handle, &account_id);
+ }
+ account_destroy(account_handle);
+ }
+ if (!ret) {
+ out["status"] = picojson::value("success");
+ out["result"] = picojson::value(static_cast<double>(account_id));
+ } else {
+ LoggerE("Failed to create account");
+ REPORT_ERROR(out, UnknownException(GetErrorMsg(ret)));
+ }
+}
+
+void AccountManager::RemoveAccount(const picojson::value& data, picojson::object& out) {
+ LoggerD("Enter");
+ int account_id = static_cast<int>(data.get("accountId").get<double>());
+
+ int ret = account_delete_from_db_by_id(account_id);
+
+ if (!ret) {
+ out["status"] = picojson::value("success");
+ } else {
+ LoggerE("Failed to create account");
+ REPORT_ERROR(out, UnknownException(GetErrorMsg(ret)));
+ }
+}
+
+void AccountManager::UpdateAccount(const picojson::value& data, picojson::object& out) {
+ LoggerD("Enter");
+ int account_id = static_cast<int>(data.get("accountId").get<double>());
+ const std::string& user_name = data.get("userName").get<std::string>();
+ const std::string& icon_uri = data.get("iconUri").get<std::string>();
+ account_h account_handle = NULL;
+
+ int ret = account_create(&account_handle);
+
+ if (!ret) {
+ ret = account_query_account_by_account_id(account_id, &account_handle);
+ if (!ret) {
+ ret = account_set_user_name(account_handle, user_name.c_str());
+ }
+ if (!ret) {
+ ret = account_set_icon_path(account_handle, icon_uri.c_str());
+ }
+ if (!ret) {
+ ret = account_update_to_db_by_id(account_handle, account_id);
+ }
+
+ account_destroy(account_handle);
+ }
+ if (!ret) {
+ out["status"] = picojson::value("success");
+ } else {
+ LoggerE("Failed to create account");
+ REPORT_ERROR(out, UnknownException(GetErrorMsg(ret)));
+ }
+}
+
#undef REPORT_ERROR
} // namespace account
static bool ConvertProviderToObject(account_type_h provider, picojson::object& out);
static std::string GetErrorMsg(int error);
+
+ void AddAccount(const picojson::value& data, picojson::object& obj);
+ void RemoveAccount(const picojson::value& data, picojson::object& obj);
+ void UpdateAccount(const picojson::value& data, picojson::object& obj);
+ //bool IsValidPackage(const std::string& packageName);
};
} // namespace account