]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
OStatus classes now has modern schemaDef
authorMikael Nordfeldth <mmn@hethane.se>
Wed, 21 Aug 2013 09:01:31 +0000 (11:01 +0200)
committerMikael Nordfeldth <mmn@hethane.se>
Wed, 21 Aug 2013 09:01:31 +0000 (11:01 +0200)
plugins/OStatus/classes/FeedSub.php
plugins/OStatus/classes/HubSub.php
plugins/OStatus/classes/Ostatus_source.php

index 873742c03ce4b426dff67d2cfe50acf2ae887a49..b84a13115dfe4b738998b857ef84bfe8a81e22cd 100644 (file)
@@ -78,89 +78,27 @@ class FeedSub extends Managed_DataObject
     public $created;
     public $modified;
 
-    /**
-     * return table definition for DB_DataObject
-     *
-     * DB_DataObject needs to know something about the table to manipulate
-     * instances. This method provides all the DB_DataObject needs to know.
-     *
-     * @return array array of column definitions
-     */
-    function table()
-    {
-        return array('id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL,
-                     'uri' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL,
-                     'huburi' =>  DB_DATAOBJECT_STR,
-                     'secret' => DB_DATAOBJECT_STR,
-                     'verify_token' => DB_DATAOBJECT_STR,
-                     'sub_state' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL,
-                     'sub_start' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME,
-                     'sub_end' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME,
-                     'last_update' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME,
-                     'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL,
-                     'modified' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL);
-    }
-
-    static function schemaDef()
-    {
-        return array(new ColumnDef('id', 'integer',
-                                   /*size*/ null,
-                                   /*nullable*/ false,
-                                   /*key*/ 'PRI',
-                                   /*default*/ null,
-                                   /*extra*/ null,
-                                   /*auto_increment*/ true),
-                     new ColumnDef('uri', 'varchar',
-                                   255, false, 'UNI'),
-                     new ColumnDef('huburi', 'text',
-                                   null, true),
-                     new ColumnDef('verify_token', 'text',
-                                   null, true),
-                     new ColumnDef('secret', 'text',
-                                   null, true),
-                     new ColumnDef('sub_state', "enum('subscribe','active','unsubscribe','inactive')",
-                                   null, false),
-                     new ColumnDef('sub_start', 'datetime',
-                                   null, true),
-                     new ColumnDef('sub_end', 'datetime',
-                                   null, true),
-                     new ColumnDef('last_update', 'datetime',
-                                   null, false),
-                     new ColumnDef('created', 'datetime',
-                                   null, false),
-                     new ColumnDef('modified', 'datetime',
-                                   null, false));
-    }
-
-    /**
-     * return key definitions for DB_DataObject
-     *
-     * DB_DataObject needs to know about keys that the table has; this function
-     * defines them.
-     *
-     * @return array key definitions
-     */
-    function keys()
-    {
-        return array_keys($this->keyTypes());
-    }
-
-    /**
-     * return key definitions for Memcached_DataObject
-     *
-     * Our caching system uses the same key definitions, but uses a different
-     * method to get them.
-     *
-     * @return array key definitions
-     */
-    function keyTypes()
-    {
-        return array('id' => 'K', 'uri' => 'U');
-    }
-
-    function sequenceKey()
+    public static function schemaDef()
     {
-        return array('id', true, false);
+        return array(
+            'fields' => array(
+                'id' => array('type' => 'int', 'not null' => true, 'description' => 'FeedSub local unique id'),
+                'uri' => array('type' => 'varchar', 'not null' => true, 'length' => 255, 'description' => 'FeedSub uri'),
+                'huburi' => array('type' => 'text', 'description' => 'FeedSub hub-uri'),
+                'verify_token' => array('type' => 'text', 'description' => 'FeedSub verify-token'),
+                'secret' => array('type' => 'text', 'description' => 'FeedSub stored secret'),
+                'sub_state' => array('type' => 'enum("subscribe","active","unsubscribe","inactive")', 'not null' => true, 'description' => 'subscription state'),
+                'sub_start' => array('type' => 'datetime', 'description' => 'subscription start'),
+                'sub_end' => array('type' => 'datetime', 'description' => 'subscription end'),
+                'last_update' => array('type' => 'datetime', 'not null' => true, 'description' => 'when this record was last updated'),
+                '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('id'),
+            'unique keys' => array(
+                'feedsub_uri_key' => array('uri'),
+            ),
+        );
     }
 
     /**
index 4fcb74ea2aba5d3d84fabf39a32d20fdb292a3ca..7a32e8df1b1aa1437ee53aef3c35042c2df864a0 100644 (file)
@@ -45,74 +45,25 @@ class HubSub extends Managed_DataObject
         return sha1($topic . '|' . $callback);
     }
 
-    /**
-     * return table definition for DB_DataObject
-     *
-     * DB_DataObject needs to know something about the table to manipulate
-     * instances. This method provides all the DB_DataObject needs to know.
-     *
-     * @return array array of column definitions
-     */
-    function table()
-    {
-        return array('hashkey' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL,
-                     'topic' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL,
-                     'callback' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL,
-                     'secret' => DB_DATAOBJECT_STR,
-                     'lease' =>  DB_DATAOBJECT_INT,
-                     'sub_start' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME,
-                     'sub_end' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME,
-                     'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL,
-                     'modified' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL);
-    }
-
-    static function schemaDef()
-    {
-        return array(new ColumnDef('hashkey', 'char',
-                                   /*size*/40,
-                                   /*nullable*/false,
-                                   /*key*/'PRI'),
-                     new ColumnDef('topic', 'varchar',
-                                   /*size*/255,
-                                   /*nullable*/false,
-                                   /*key*/'MUL'),
-                     new ColumnDef('callback', 'varchar',
-                                   255, false),
-                     new ColumnDef('secret', 'text',
-                                   null, true),
-                     new ColumnDef('lease', 'int',
-                                   null, true),
-                     new ColumnDef('sub_start', 'datetime',
-                                   null, true),
-                     new ColumnDef('sub_end', 'datetime',
-                                   null, true),
-                     new ColumnDef('created', 'datetime',
-                                   null, false),
-                     new ColumnDef('modified', 'datetime',
-                                   null, false));
-    }
-
-    function keys()
-    {
-        return array_keys($this->keyTypes());
-    }
-
-    function sequenceKey()
-    {
-        return array(false, false, false);
-    }
-
-    /**
-     * return key definitions for DB_DataObject
-     *
-     * DB_DataObject needs to know about keys that the table has; this function
-     * defines them.
-     *
-     * @return array key definitions
-     */
-    function keyTypes()
+    public static function schemaDef()
     {
-        return array('hashkey' => 'K');
+        return array(
+            'fields' => array(
+                'hashkey' => array('type' => 'char', 'not null' => true, 'length' => 40, 'description' => 'HubSub hashkey'),
+                'topic' => array('type' => 'varchar', 'not null' => true, 'length' => 255, 'description' => 'HubSub topic'),
+                'callback' => array('type' => 'varchar', 'not null' => true, 'length' => 255, 'description' => 'HubSub callback'),
+                'secret' => array('type' => 'text', 'description' => 'HubSub stored secret'),
+                'lease' => array('type' => 'int', 'not null' => true, 'description' => 'HubSub leasetime'),
+                'sub_start' => array('type' => 'datetime', 'description' => 'subscription start'),
+                'sub_end' => array('type' => 'datetime', 'description' => 'subscription end'),
+                '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('hashkey'),
+            'indexes' => array(
+                'hubsub_topic_idx' => array('topic'),
+            ),
+        );
     }
 
     /**
index 8eefb33fa6826cc6e145a25e0d180b0dafede6a2..d122a7e7f4f06622f2ea13b1ea43e19af02fc855 100644 (file)
@@ -32,62 +32,29 @@ class Ostatus_source extends Managed_DataObject
     public $notice_id; // notice we're referring to
     public $profile_uri; // uri of the ostatus_profile this came through -- may be a group feed
     public $method; // push or salmon
+    public $created;
+    public $modified;
 
-    /**
-     * return table definition for DB_DataObject
-     *
-     * DB_DataObject needs to know something about the table to manipulate
-     * instances. This method provides all the DB_DataObject needs to know.
-     *
-     * @return array array of column definitions
-     */
-    function table()
-    {
-        return array('notice_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL,
-                     'profile_uri' => DB_DATAOBJECT_STR,
-                     'method' => DB_DATAOBJECT_STR);
-    }
-
-    static function schemaDef()
-    {
-        return array(new ColumnDef('notice_id', 'integer',
-                                   null, false, 'PRI'),
-                     new ColumnDef('profile_uri', 'varchar',
-                                   255, false),
-                     new ColumnDef('method', "ENUM('push','salmon')",
-                                   null, false));
-    }
-
-    /**
-     * return key definitions for DB_DataObject
-     *
-     * DB_DataObject needs to know about keys that the table has; this function
-     * defines them.
-     *
-     * @return array key definitions
-     */
-    function keys()
+    public static function schemaDef()
     {
-        return array_keys($this->keyTypes());
-    }
-
-    /**
-     * return key definitions for Memcached_DataObject
-     *
-     * Our caching system uses the same key definitions, but uses a different
-     * method to get them.
-     *
-     * @return array key definitions
-     */
-    function keyTypes()
-    {
-        return array('notice_id' => 'K');
-    }
-
-    function sequenceKey()
-    {
-        return array(false, false, false);
-    }
+        return array(
+            'fields' => array(
+                'notice_id' => array('type' => 'int', 'not null' => true, 'description' => 'Notice ID relation'),
+                'profile_uri' => array('type' => 'varchar', 'not null' => true, 'length' => 255, 'description' => 'Profile URI'),
+                'method' => array('type' => 'enum("push","salmon")', 'not null' => true, 'description' => 'source method'),
+                '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('notice_id'),
+            'foreign keys' => array(
+               'ostatus_source_notice_id_fkey' => array('notice', array('notice_id' => 'id')),
+               // not in profile table yet 'ostatus_source_profile_uri_fkey' => array('profile', array('profile_uri' => 'uri')),
+            ),
+            'indexes' => array(
+                'ostatus_source_profile_uri_idx' => array('profile_uri'),
+            ),
+        );
+   }
 
     /**
      * Save a remote notice source record; this helps indicate how trusted we are.