]> git.mxchange.org Git - friendica.git/blob - src/Protocol/ActivityPub/FetchQueueItem.php
Merge remote-tracking branch 'upstream/develop' into json-ld
[friendica.git] / src / Protocol / ActivityPub / FetchQueueItem.php
1 <?php
2 /**
3  * @copyright Copyright (C) 2010-2022, the Friendica project
4  *
5  * @license GNU AGPL version 3 or any later version
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU Affero General Public License as
9  * published by the Free Software Foundation, either version 3 of the
10  * License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU Affero General Public License for more details.
16  *
17  * You should have received a copy of the GNU Affero General Public License
18  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
19  *
20  */
21
22 namespace Friendica\Protocol\ActivityPub;
23
24 class FetchQueueItem
25 {
26         /** @var string */
27         private $url;
28         /** @var array */
29         private $child;
30         /** @var string */
31         private $relay_actor;
32         /** @var int */
33         private $completion;
34
35         /**
36          * This constructor matches the signature of Processor::fetchMissingActivity except for the default $completion value
37          *
38          * @param string $url
39          * @param array  $child
40          * @param string $relay_actor
41          * @param int    $completion
42          */
43         public function __construct(string $url, array $child = [], string $relay_actor = '', int $completion = Receiver::COMPLETION_AUTO)
44         {
45                 $this->url         = $url;
46                 $this->child       = $child;
47                 $this->relay_actor = $relay_actor;
48                 $this->completion  = $completion;
49         }
50
51         /**
52          * Array meant to be used in call_user_function_array([Processor::class, 'fetchMissingActivity']). Caller needs to
53          * provide an instance of a FetchQueue that isn't included in these parameters.
54          *
55          * @see FetchQueue::process()
56          * @return array
57          */
58         public function toParameters(): array
59         {
60                 return [$this->url, $this->child, $this->relay_actor, $this->completion];
61         }
62 }