/** * Unregisters the current user from a given push notification service * * @param string $service_name name of the service * * @return SuccessResult|ErrorResult */ function ws_pack_users_unregister_from_push_notifications($service_name) { $result = false; $user = elgg_get_logged_in_user_entity(); $api_application = ws_pack_get_current_api_application(); if (!empty($user) && !empty($api_application)) { if ($api_application_user_settings = ws_pack_get_application_user_settings($user, $api_application)) { switch ($service_name) { case "appcelerator": if ($api_application_user_settings->unregisterFromPushNotifications($service_name)) { $result = new SuccessResult($service_name); } break; default: $result = new ErrorResult(elgg_echo("ws_pack:push_notifications:error:unsupported_service", array($service_name))); break; } } else { $result = new ErrorResult(elgg_echo("ws_pack:user_settings:error:notfound")); } } if ($result === false) { $result = new ErrorResult(elgg_echo("ws_pack:users:unregister_from_push_notifications:error")); } return $result; }
/** * Unregisters the current user from a given push notification service * * @param string $service_name name of the service * * @return SuccessResult|ErrorResult */ function ws_pack_users_unregister_from_push_notifications($service_name) { $result = false; $user = elgg_get_logged_in_user_entity(); $api_application = ws_pack_get_current_api_application(); if (!empty($user) && !empty($api_application)) { // is the service registered if ($api_application->isRegisteredPushNotificationService($service_name)) { $api_application_user_settings = ws_pack_get_application_user_settings($user, $api_application); if (!empty($api_application_user_settings)) { if ($api_application_user_settings->unregisterFromPushNotifications($service_name)) { $result = new SuccessResult($service_name); } } else { $result = new ErrorResult(elgg_echo("ws_pack:user_settings:error:notfound")); } } else { $result = new ErrorResult(elgg_echo("ws_pack:push_notifications:error:unsupported_service", [$service_name])); } } if ($result === false) { $result = new ErrorResult(elgg_echo("ws_pack:users:unregister_from_push_notifications:error")); } return $result; }