From 2be9341a2f33a91cc4f474490f5607995add89e6 Mon Sep 17 00:00:00 2001 From: Alex Barth <alex_b@53995.no-reply.drupal.org> Date: Sun, 12 Sep 2010 04:40:40 +0000 Subject: [PATCH] Clean up loadSubscription() and make it public, add subscribed() query. --- libraries/PuSHSubscriber.inc | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/libraries/PuSHSubscriber.inc b/libraries/PuSHSubscriber.inc index 3e3b1d32..da257cb0 100644 --- a/libraries/PuSHSubscriber.inc +++ b/libraries/PuSHSubscriber.inc @@ -108,7 +108,7 @@ class PuSHSubscriber { * The callback to unsubscribe. */ public function unsubscribe($topic_url, $callback_url) { - if ($sub = $this->loadSubscription()) { + if ($sub = $this->subscription()) { $this->request($sub->hub, $sub->topic, 'unsubscribe', $callback_url); $sub->delete(); } @@ -156,7 +156,7 @@ class PuSHSubscriber { if ($ignore_signature) { return $raw; } - if (isset($_SERVER['HTTP_X_HUB_SIGNATURE']) && ($sub = $this->loadSubscription())) { + if (isset($_SERVER['HTTP_X_HUB_SIGNATURE']) && ($sub = $this->subscription())) { $result = array(); parse_str($_SERVER['HTTP_X_HUB_SIGNATURE'], $result); if (isset($result['sha1']) && $result['sha1'] == hash_hmac('sha1', $raw, $sub->secret)) { @@ -192,7 +192,7 @@ class PuSHSubscriber { * * In all other cases confirm negative. */ - if ($sub = $this->loadSubscription()) { + if ($sub = $this->subscription()) { if ($_GET['hub_verify_token'] == $sub->post_fields['hub.verify_token']) { if ($_GET['hub_mode'] == 'subscribe' && $sub->status == 'subscribe') { $sub->status = 'subscribed'; @@ -273,12 +273,28 @@ class PuSHSubscriber { } /** - * Helper for loading a subscription. + * Get the subscription associated with this subscriber. + * + * @return + * A PuSHSubscriptionInterface object if a subscription exist, NULL + * otherwise. */ - protected function loadSubscription() { + public function subscription() { return call_user_func(array($this->subscription_class, 'load'), $this->domain, $this->subscriber_id); } + /** + * Determine whether this subscriber is successfully subscribed or not. + */ + public function subscribed() { + if ($sub = $this->subscription()) { + if ($sub->status == 'subscribed') { + return TRUE; + } + } + return FALSE; + } + /** * Helper for messaging. */ -- GitLab