]> git.mxchange.org Git - friendica.git/blob - src/Api/Mastodon/Relationship.php
We only search for items with the same uid
[friendica.git] / src / Api / Mastodon / Relationship.php
1 <?php
2
3 namespace Friendica\Api\Mastodon;
4
5 use Friendica\Model\Contact;
6 use Friendica\Util\Network;
7
8 /**
9  * Class Relationship
10  *
11  * @see https://docs.joinmastodon.org/api/entities/#relationship
12  */
13 class Relationship
14 {
15         /** @var int */
16         var $id;
17         /** @var bool */
18         var $following = false;
19         /** @var bool */
20         var $followed_by = false;
21         /** @var bool */
22         var $blocking = false;
23         /** @var bool */
24         var $muting = false;
25         /** @var bool */
26         var $muting_notifications = false;
27         /** @var bool */
28         var $requested = false;
29         /** @var bool */
30         var $domain_blocking = false;
31         /** @var bool */
32         var $showing_reblogs = false;
33         /** @var bool */
34         var $endorsed = false;
35
36         /**
37          * @param array $contact Full Contact table record
38          * @return Relationship
39          */
40         public static function createFromContact(array $contact)
41         {
42                 $relationship = new self();
43
44                 $relationship->id                   = $contact['id'];
45                 $relationship->following            = in_array($contact['rel'], [Contact::SHARING, Contact::FRIEND]);
46                 $relationship->followed_by          = in_array($contact['rel'], [Contact::FOLLOWER, Contact::FRIEND]);
47                 $relationship->blocking             = (bool)$contact['blocked'];
48                 $relationship->muting               = (bool)$contact['readonly'];
49                 $relationship->muting_notifications = (bool)$contact['readonly'];
50                 $relationship->requested            = (bool)$contact['pending'];
51                 $relationship->domain_blocking      = Network::isUrlBlocked($contact['url']);
52                 // Unsupported
53                 $relationship->showing_reblogs      = true;
54                 // Unsupported
55                 $relationship->endorsed             = false;
56
57                 return $relationship;
58         }
59 }