[Push] getRegistrationId and getUnreadNotifications
authorPrzemyslaw Ciezkowski <p.ciezkowski@samsung.com>
Thu, 12 Feb 2015 14:31:57 +0000 (15:31 +0100)
committerPawel Andruszkiewicz <p.andruszkie@samsung.com>
Fri, 20 Feb 2015 12:43:18 +0000 (21:43 +0900)
Change-Id: I3d161ec52bf52a57616de0a5ea9c588d93b32200
Signed-off-by: Przemyslaw Ciezkowski <p.ciezkowski@samsung.com>
src/push/push_instance.cc
src/push/push_manager.cc
src/push/push_manager.h

index 0ae23ce5d6ad919f8af095c94756f57dcff1d98d..a2c9101204184b9eb7e69a0247793ed92df3f95f 100644 (file)
@@ -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,
index 8ac8ca6c774e40f254b087aa561293af9d1caacc..9944037b2d61d239e015b679523b29efced05efa 100644 (file)
@@ -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);
index 62f9c7218ef43b0041bd9b66fe71aa9b17edea4c..8de1a8ba62214878e86a42624db0f73fcc65718c 100644 (file)
@@ -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();