]> git.mxchange.org Git - friendica.git/blobdiff - src/Worker/APDelivery.php
Remove unused BBCode::scaleExternalImage parameters
[friendica.git] / src / Worker / APDelivery.php
index 2fabb4a4eb99fda461ee671db8d60021a4967097..7ac1dfacafad78ff483b49a74d6738d68cdaf08d 100644 (file)
@@ -4,15 +4,13 @@
  */
 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
+class APDelivery
 {
        /**
         * @brief Delivers ActivityPub messages
@@ -21,6 +19,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)
        {
@@ -29,9 +29,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) {
@@ -41,14 +48,12 @@ class APDelivery extends BaseObject
                        if (!empty($data)) {
                                $success = HTTPSignature::transmit($data, $inbox, $uid);
                        }
-
-                       if ($success && in_array($cmd, [Delivery::POST, Delivery::COMMENT])) {
-                               ItemDeliveryData::incrementQueueDone($target_id);
-                       }
                }
 
-               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);
                }
        }
 }