]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - classes/Subscription.php
move core schema to class files
[quix0rs-gnu-social.git] / classes / Subscription.php
index 8af414b3a7b3ff3048b565548e94260ed3bd3d46..3dbccea422ffb4cd7d587f6d379c5f239f61c52c 100644 (file)
@@ -24,7 +24,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
  */
 require_once INSTALLDIR.'/classes/Memcached_DataObject.php';
 
-class Subscription extends Memcached_DataObject
+class Subscription extends Managed_DataObject
 {
     const CACHE_WINDOW = 201;
     const FORCE = true;
@@ -42,6 +42,28 @@ class Subscription extends Memcached_DataObject
     public $created;                         // datetime()   not_null
     public $modified;                        // timestamp()   not_null default_CURRENT_TIMESTAMP
 
+    public static function schemaDef()
+    {
+        return array(
+            'fields' => array(
+                'subscriber' => array('type' => 'int', 'not null' => true, 'description' => 'profile listening'),
+                'subscribed' => array('type' => 'int', 'not null' => true, 'description' => 'profile being listened to'),
+                'jabber' => array('type' => 'int', 'size' => 'tiny', 'default' => 1, 'description' => 'deliver jabber messages'),
+                'sms' => array('type' => 'int', 'size' => 'tiny', 'default' => 1, 'description' => 'deliver sms messages'),
+                'token' => array('type' => 'varchar', 'length' => 255, 'description' => 'authorization token'),
+                'secret' => array('type' => 'varchar', 'length' => 255, 'description' => 'token secret'),
+                'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'),
+                'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'),
+            ),
+            'primary key' => array('subscriber', 'subscribed'),
+            'indexes' => array(
+                'subscription_subscriber_idx' => array('subscriber', 'created'),
+                'subscription_subscribed_idx' => array('subscribed', 'created'),
+                'subscription_token_idx' => array('token'),
+            ),
+        );
+    }    
+
     /* Static get */
     function staticGet($k,$v=null)
     { return Memcached_DataObject::staticGet('Subscription',$k,$v); }
@@ -198,29 +220,6 @@ class Subscription extends Memcached_DataObject
 
             assert(!empty($sub));
 
-            // @todo: move this block to EndSubscribe handler for
-            // OMB plugin when it exists.
-
-            if (!empty($sub->token)) {
-
-                $token = new Token();
-
-                $token->tok    = $sub->token;
-
-                if ($token->find(true)) {
-
-                    $result = $token->delete();
-
-                    if (!$result) {
-                        common_log_db_error($token, 'DELETE', __FILE__);
-                        // TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
-                        throw new Exception(_('Could not delete subscription OMB token.'));
-                    }
-                } else {
-                    common_log(LOG_ERR, "Couldn't find credentials with token {$token->tok}");
-                }
-            }
-
             $result = $sub->delete();
 
             if (!$result) {