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();