diff --git a/src/DI.php b/src/DI.php index 24f06d279..78eb5bee4 100644 --- a/src/DI.php +++ b/src/DI.php @@ -382,14 +382,6 @@ abstract class DI return self::$dice->create(Factory\Api\Mastodon\Error::class); } - /** - * @return Factory\Api\Mastodon\FollowRequest - */ - public static function mstdnFollowRequest() - { - return self::$dice->create(Factory\Api\Mastodon\FollowRequest::class); - } - /** * @return Factory\Api\Mastodon\Poll */ diff --git a/src/Factory/Api/Mastodon/FollowRequest.php b/src/Factory/Api/Mastodon/FollowRequest.php deleted file mode 100644 index 2b12b1dbd..000000000 --- a/src/Factory/Api/Mastodon/FollowRequest.php +++ /dev/null @@ -1,61 +0,0 @@ -. - * - */ - -namespace Friendica\Factory\Api\Mastodon; - -use Friendica\App\BaseURL; -use Friendica\BaseFactory; -use Friendica\Contact\Introduction\Entity\Introduction; -use Friendica\Database\DBA; -use Friendica\Model\APContact; -use Friendica\Model\Contact; -use Friendica\Network\HTTPException; -use ImagickException; -use Psr\Log\LoggerInterface; - -class FollowRequest extends BaseFactory -{ - /** @var BaseURL */ - private $baseUrl; - - public function __construct(LoggerInterface $logger, BaseURL $baseURL) - { - parent::__construct($logger); - - $this->baseUrl = $baseURL; - } - - /** - * @param Introduction $introduction - * @return \Friendica\Object\Api\Mastodon\FollowRequest - * @throws ImagickException|HTTPException\InternalServerErrorException - */ - public function createFromIntroduction(Introduction $introduction): \Friendica\Object\Api\Mastodon\FollowRequest - { - $account = DBA::selectFirst('account-user-view', [], ['id' => $introduction->cid, 'uid' => [0, $introduction->uid]]); - if (empty($account)) { - $this->logger->warning('Wrong introduction data', ['Introduction' => $introduction]); - throw new HTTPException\InternalServerErrorException('Wrong introduction data'); - } - - return new \Friendica\Object\Api\Mastodon\FollowRequest($this->baseUrl, $introduction->id, $account); - } -} diff --git a/src/Module/Api/Mastodon/FollowRequests.php b/src/Module/Api/Mastodon/FollowRequests.php index 723a98bcd..dfe3aadf3 100644 --- a/src/Module/Api/Mastodon/FollowRequests.php +++ b/src/Module/Api/Mastodon/FollowRequests.php @@ -105,8 +105,10 @@ class FollowRequests extends BaseApi foreach ($introductions as $key => $introduction) { try { self::setBoundaries($introduction->id); - $return[] = DI::mstdnFollowRequest()->createFromIntroduction($introduction); - } catch (HTTPException\InternalServerErrorException $exception) { + $return[] = DI::mstdnAccount()->createFromContactId($introduction->cid, $introduction->uid); + } catch (HTTPException\InternalServerErrorException + | HTTPException\NotFoundException + | \ImagickException $exception) { DI::intro()->delete($introduction); unset($introductions[$key]); } diff --git a/src/Object/Api/Mastodon/FollowRequest.php b/src/Object/Api/Mastodon/FollowRequest.php deleted file mode 100644 index f401cad48..000000000 --- a/src/Object/Api/Mastodon/FollowRequest.php +++ /dev/null @@ -1,49 +0,0 @@ -. - * - */ - -namespace Friendica\Object\Api\Mastodon; - -use Friendica\App\BaseURL; -use Friendica\Collection\Api\Mastodon\Fields; - -/** - * Virtual entity to separate Accounts from Follow Requests. - * In the Mastodon API they are one and the same. - */ -class FollowRequest extends Account -{ - /** - * Creates a follow request entity from an introduction record. - * - * The account ID is set to the Introduction ID to allow for later interaction with follow requests. - * - * @param BaseURL $baseUrl - * @param int $introduction_id Introduction record id - * @param array $account entry of "account-user-view" - * @throws \Friendica\Network\HTTPException\InternalServerErrorException - */ - public function __construct(BaseURL $baseUrl, int $introduction_id, array $account) - { - parent::__construct($baseUrl, $account, new Fields()); - - $this->id = $introduction_id; - } -}