$arr = null;
try {
    if (!isset($_SESSION['subscriptionId'])) {
        throw new Exception('You must first create a subscription.');
    }
    $events = array();
    if (isset($_REQUEST['updateSubscriptionText'])) {
        $events[] = 'TEXT';
    }
    if (isset($_REQUEST['updateSubscriptionMms'])) {
        $events[] = 'MMS';
    }
    if (count($events) == 0) {
        throw new Exception("You must select at least one of Text or MMS");
    }
    $subscriptionId = $_SESSION['subscriptionId'];
    envinit();
    $webhooksSrvc = new WebhooksService(getFqdn(), getSessionToken());
    $callbackData = $_REQUEST['updateCallbackData'];
    if ($callbackData == '') {
        $callbackData = null;
    }
    $args = new UpdateSubscriptionArgs(CHANNEL_ID, $subscriptionId, $events, $callbackData, EXPIRES_IN);
    $webhooksSrvc->UpdateNotificationSubscription($args);
    $_SESSION['subscriptionExpiry'] = EXPIRES_IN + time();
    $arr = array('success' => true, 'text' => 'Subscription updated.');
} catch (Exception $e) {
    $arr = array('success' => false, 'text' => $e->getMessage());
}
echo json_encode($arr);
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */