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,
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);
common::PlatformResult registerService(const ApplicationControl &appControl,
double callbackId);
common::PlatformResult unregisterService(double callbackId);
+ common::PlatformResult getRegistrationId(std::string &id);
+ common::PlatformResult getUnreadNotifications();
private:
PushManager();