]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/ItemDeliveryData.php
Remove next link when there aren't any introductions in Module\Api\Mastodon\FollowReq...
[friendica.git] / src / Model / ItemDeliveryData.php
index 1d5c37de2d0164dc19e699a4a74602a02cdaec54..3e2a75598a57dd2f6b0df41646eb8613542cf915 100644 (file)
@@ -21,6 +21,7 @@ class ItemDeliveryData
                // New delivery fields with virtual field name in item fields
                'queue_count' => 'delivery_queue_count',
                'queue_done'  => 'delivery_queue_done',
+               'queue_failed'  => 'delivery_queue_failed',
        ];
 
        const ACTIVITYPUB = 1;
@@ -28,6 +29,7 @@ class ItemDeliveryData
        const LEGACY_DFRN = 3;
        const DIASPORA = 4;
        const OSTATUS = 5;
+       const MAIL = 6;
 
        /**
         * Extract delivery data from the provided item fields
@@ -88,6 +90,33 @@ class ItemDeliveryData
                return DBA::e('UPDATE `item-delivery-data` SET `queue_done` = `queue_done` + 1' . $sql . ' WHERE `iid` = ?', $item_id);
        }
 
+       /**
+        * Increments the queue_failed for the given item ID.
+        *
+        * Avoids racing condition between multiple delivery threads.
+        *
+        * @param integer $item_id
+        * @return bool
+        * @throws \Exception
+        */
+       public static function incrementQueueFailed($item_id)
+       {
+               return DBA::e('UPDATE `item-delivery-data` SET `queue_failed` = `queue_failed` + 1 WHERE `iid` = ?', $item_id);
+       }
+
+       /**
+        * Increments the queue_count for the given item ID.
+        *
+        * @param integer $item_id
+        * @param integer $increment
+        * @return bool
+        * @throws \Exception
+        */
+       public static function incrementQueueCount(int $item_id, int $increment = 1)
+       {
+               return DBA::e('UPDATE `item-delivery-data` SET `queue_count` = `queue_count` + ? WHERE `iid` = ?', $increment, $item_id);
+       }
+
        /**
         * Insert a new item delivery data entry
         *