3 namespace Friendica\Factory\Mastodon;
5 use Friendica\App\BaseURL;
6 use Friendica\Model\APContact;
7 use Friendica\Model\Contact;
8 use Friendica\Network\HTTPException;
9 use Friendica\BaseFactory;
10 use Psr\Log\LoggerInterface;
12 class Account extends BaseFactory
17 public function __construct(LoggerInterface $logger, BaseURL $baseURL)
19 parent::__construct($logger);
21 $this->baseUrl = $baseURL;
25 * @param int $contactId
26 * @param int $uid User Id
27 * @return \Friendica\Api\Entity\Mastodon\Account
28 * @throws HTTPException\InternalServerErrorException
29 * @throws \ImagickException
31 public function createFromContactId(int $contactId, $uid = 0)
33 $cdata = Contact::getPublicAndUserContacID($contactId, $uid);
35 $publicContact = Contact::getById($cdata['public']);
36 $userContact = Contact::getById($cdata['user']);
38 $publicContact = Contact::getById($contactId);
42 $apcontact = APContact::getByURL($publicContact['url'], false);
44 return new \Friendica\Api\Entity\Mastodon\Account($this->baseUrl, $publicContact, $apcontact, $userContact);