Exemplo n.º 1
0
/**
 * 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;
}
Exemplo n.º 2
0
/**
 * 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;
}