]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Use the new onUpdateKeys in dataobject for tasks on-update of keys
authorMikael Nordfeldth <mmn@hethane.se>
Wed, 23 Mar 2016 14:22:34 +0000 (15:22 +0100)
committerMikael Nordfeldth <mmn@hethane.se>
Wed, 23 Mar 2016 14:22:34 +0000 (15:22 +0100)
sets the hashkey column of the row to sha1(topic + '|' + callback)

plugins/OStatus/classes/HubSub.php

index a2d6e2e51e834bbf6271e9ebfdaa08c96d702b4b..7b911d1d665491e31d4fc5dfb08aaba26873ff74 100644 (file)
@@ -17,9 +17,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-if (!defined('STATUSNET')) {
-    exit(1);
-}
+if (!defined('GNUSOCIAL')) { exit(1); }
 
 /**
  * PuSH feed subscription record
@@ -202,16 +200,25 @@ class HubSub extends Managed_DataObject
         }
     }
 
-    /**
-     * Insert wrapper; transparently set the hash key from topic and callback columns.
-     * @return mixed success
-     */
-    function insert()
+    // set the hashkey automagically on insert
+    protected function onInsert()
     {
-        $this->hashkey = self::hashkey($this->getTopic(), $this->callback);
+        $this->setHashkey();
         $this->created = common_sql_now();
         $this->modified = common_sql_now();
-        return parent::insert();
+    }
+
+    // update the hashkey automagically if needed
+    protected function onUpdateKeys(Managed_DataObject $orig)
+    {
+        if ($this->topic !== $orig->topic || $this->callback !== $orig->callback) {
+            $this->setHashkey();
+        }
+    }
+
+    protected function setHashkey()
+    {
+        $this->hashkey = self::hashkey($this->topic, $this->callback);
     }
 
     /**
@@ -322,7 +329,7 @@ class HubSub extends Managed_DataObject
             if ($response->isOk()) {
                 $orig = clone($this);
                 $this->callback = $httpscallback;
-                $this->hashkey = self::hashkey($this->getTopic(), $this->callback);
+                // NOTE: hashkey will be set in $this->onUpdateKeys($orig) through updateWithKeys
                 $this->updateWithKeys($orig);
                 return true;
             }