]> git.mxchange.org Git - friendica.git/blobdiff - src/Worker/APDelivery.php
Merge pull request #7907 from nupplaphil/task/reduce_app_deps
[friendica.git] / src / Worker / APDelivery.php
index 268e45a4de9a4a5b98569adf559989b830026f34..812db57013c7154d5a519d63be342b206f5e503a 100644 (file)
@@ -7,8 +7,8 @@ namespace Friendica\Worker;
 use Friendica\BaseObject;
 use Friendica\Core\Logger;
 use Friendica\Core\Worker;
+use Friendica\Model\ItemDeliveryData;
 use Friendica\Protocol\ActivityPub;
-use Friendica\Model\Item;
 use Friendica\Util\HTTPSignature;
 
 class APDelivery extends BaseObject
@@ -20,6 +20,8 @@ class APDelivery extends BaseObject
         * @param integer $target_id
         * @param string  $inbox
         * @param integer $uid
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+        * @throws \ImagickException
         */
        public static function execute($cmd, $target_id, $inbox, $uid)
        {
@@ -28,9 +30,16 @@ class APDelivery extends BaseObject
                $success = true;
 
                if ($cmd == Delivery::MAIL) {
+                       $data = ActivityPub\Transmitter::createActivityFromMail($target_id);
+                       if (!empty($data)) {
+                               $success = HTTPSignature::transmit($data, $inbox, $uid);
+                       }
                } elseif ($cmd == Delivery::SUGGESTION) {
                        $success = ActivityPub\Transmitter::sendContactSuggestion($uid, $inbox, $target_id);
                } elseif ($cmd == Delivery::RELOCATION) {
+                       // @todo Implementation pending
+               } elseif ($cmd == Delivery::POKE) {
+                       // Implementation not planned
                } elseif ($cmd == Delivery::REMOVAL) {
                        $success = ActivityPub\Transmitter::sendProfileDeletion($uid, $inbox);
                } elseif ($cmd == Delivery::PROFILEUPDATE) {
@@ -42,8 +51,10 @@ class APDelivery extends BaseObject
                        }
                }
 
-               if (!$success) {
-                       Worker::defer();
+               if (!$success && !Worker::defer() && in_array($cmd, [Delivery::POST])) {
+                       ItemDeliveryData::incrementQueueFailed($target_id);
+               } elseif ($success && in_array($cmd, [Delivery::POST])) {
+                       ItemDeliveryData::incrementQueueDone($target_id, ItemDeliveryData::ACTIVITYPUB);
                }
        }
 }