diff --git a/src/Factory/Api/Twitter/User.php b/src/Factory/Api/Twitter/User.php index 8fb3193606..8391dcc85f 100644 --- a/src/Factory/Api/Twitter/User.php +++ b/src/Factory/Api/Twitter/User.php @@ -24,10 +24,9 @@ namespace Friendica\Factory\Api\Twitter; use Friendica\BaseFactory; use Friendica\Model\APContact; use Friendica\Model\Contact; -use Friendica\Network\HTTPException; -use Friendica\Factory\Api\Twitter\Status; use Friendica\Model\Item; use Friendica\Model\Post; +use Friendica\Network\HTTPException; use Psr\Log\LoggerInterface; class User extends BaseFactory @@ -85,9 +84,17 @@ class User extends BaseFactory * @param bool $include_user_entities * * @return \Friendica\Object\Api\Twitter\User + * @throws HTTPException\InternalServerErrorException + * @throws HTTPException\NotFoundException If the $uid doesn't exist + * @throws \ImagickException */ public function createFromUserId(int $uid, bool $skip_status = true, bool $include_user_entities = true): \Friendica\Object\Api\Twitter\User { - return $this->createFromContactId(Contact::getPublicIdByUserId($uid), $uid, $skip_status, $include_user_entities); + $cid = Contact::getPublicIdByUserId($uid); + if (!$cid) { + throw new HTTPException\NotFoundException(); + } + + return $this->createFromContactId($cid, $uid, $skip_status, $include_user_entities); } } diff --git a/tests/src/Factory/Api/Twitter/UserTest.php b/tests/src/Factory/Api/Twitter/UserTest.php index 975aea3efe..5ef30d8112 100644 --- a/tests/src/Factory/Api/Twitter/UserTest.php +++ b/tests/src/Factory/Api/Twitter/UserTest.php @@ -23,6 +23,7 @@ namespace Friendica\Test\src\Factory\Api\Twitter; use Friendica\DI; use Friendica\Factory\Api\Twitter\User; +use Friendica\Network\HTTPException\NotFoundException; use Friendica\Test\FixtureTest; use Friendica\Test\src\Module\Api\ApiTest; @@ -133,15 +134,11 @@ class UserTest extends FixtureTest */ public function testApiGetUserWithWrongGetId() { + $this->expectException(NotFoundException::class); + $user = (new User(DI::logger(), DI::twitterStatus())) ->createFromUserId(-1) ->toArray(); - - self::assertEquals(0, $user['id']); - self::assertEquals(0, $user['uid']); - self::assertEquals(0, $user['cid']); - self::assertEquals(0, $user['pid']); - self::assertEmpty($user['name']); } /**