From: Przemyslaw Ciezkowski Date: Thu, 12 Feb 2015 14:31:57 +0000 (+0100) Subject: [Push] getRegistrationId and getUnreadNotifications X-Git-Tag: submit/tizen_tv/20150603.064601~1^2~398 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=eaabfcdb71b29bdf17bad8dedd29126ef313bb38;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [Push] getRegistrationId and getUnreadNotifications Change-Id: I3d161ec52bf52a57616de0a5ea9c588d93b32200 Signed-off-by: Przemyslaw Ciezkowski --- diff --git a/src/push/push_instance.cc b/src/push/push_instance.cc index 0ae23ce5..a2c91012 100644 --- a/src/push/push_instance.cc +++ b/src/push/push_instance.cc @@ -102,15 +102,31 @@ void PushInstance::disconnectService(const picojson::value& args, void PushInstance::getRegistrationId(const picojson::value& args, picojson::object& out) { LoggerD("Enter"); - picojson::value result; - ReportSuccess(result, out); + std::string id; + common::PlatformResult result = PushManager::getInstance() + .getRegistrationId(id); + if (result.IsError()) { + // this method should fail silently and return null + picojson::value res = picojson::value(); + ReportSuccess(res, out); + } else { + picojson::value res(id); + ReportSuccess(res, out); + } } void PushInstance::getUnreadNotifications(const picojson::value& args, picojson::object& out) { LoggerD("Enter"); - picojson::value result; - ReportSuccess(result, out); + common::PlatformResult result = PushManager::getInstance() + .getUnreadNotifications(); + if (result.IsError()) { + LoggerE("Error occured"); + ReportError(result, &out); + } else { + picojson::value res; + ReportSuccess(res, out); + } } void PushInstance::onPushRegister(double callbackId, diff --git a/src/push/push_manager.cc b/src/push/push_manager.cc index 8ac8ca6c..9944037b 100644 --- a/src/push/push_manager.cc +++ b/src/push/push_manager.cc @@ -192,6 +192,32 @@ common::PlatformResult PushManager::unregisterService(double callbackId) { return common::PlatformResult(ErrorCode::NO_ERROR); } +common::PlatformResult PushManager::getRegistrationId(std::string& id) { + LoggerD("Enter"); + char* temp = NULL; + int ret = push_get_registration_id(m_handle, &temp); + if (ret != PUSH_ERROR_NONE) { + LoggerE("Failed to get id: push_get_registration_id failed"); + return common::PlatformResult(ErrorCode::UNKNOWN_ERR, + "Unknown error"); + } + id = temp; + free(temp); + return common::PlatformResult(ErrorCode::NO_ERROR); +} + +common::PlatformResult PushManager::getUnreadNotifications() { + LoggerD("Enter"); + int ret = push_request_unread_notification(m_handle); + if (ret != PUSH_ERROR_NONE) { + LoggerE( + "Failed to send request: push_request_unread_notification failed"); + return common::PlatformResult(ErrorCode::UNKNOWN_ERR, + "Unknown error"); + } + return common::PlatformResult(ErrorCode::NO_ERROR); +} + void PushManager::onPushState(push_state_e state, const char* err, void* user_data) { LoggerD("Enter %d", state); diff --git a/src/push/push_manager.h b/src/push/push_manager.h index 62f9c721..8de1a8ba 100644 --- a/src/push/push_manager.h +++ b/src/push/push_manager.h @@ -42,6 +42,8 @@ class PushManager { common::PlatformResult registerService(const ApplicationControl &appControl, double callbackId); common::PlatformResult unregisterService(double callbackId); + common::PlatformResult getRegistrationId(std::string &id); + common::PlatformResult getUnreadNotifications(); private: PushManager();