Merge pull request #12442 from MrPetovan/bug/warnings
Use account-user-view entry to instantiate Api\Mastodon\FollowRequestobjects
This commit is contained in:
commit
49078069f9
3 changed files with 8 additions and 15 deletions
|
@ -25,7 +25,7 @@ use Friendica\BaseEntity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @property-read int $uid
|
* @property-read int $uid
|
||||||
* @property-read int $cid
|
* @property-read int $cid Either a public contact id (DFRN suggestion) or user-specific id (Contact::addRelationship)
|
||||||
* @property-read int|null $sid
|
* @property-read int|null $sid
|
||||||
* @property-read bool $knowyou
|
* @property-read bool $knowyou
|
||||||
* @property-read string $note
|
* @property-read string $note
|
||||||
|
|
|
@ -24,6 +24,7 @@ namespace Friendica\Factory\Api\Mastodon;
|
||||||
use Friendica\App\BaseURL;
|
use Friendica\App\BaseURL;
|
||||||
use Friendica\BaseFactory;
|
use Friendica\BaseFactory;
|
||||||
use Friendica\Contact\Introduction\Entity\Introduction;
|
use Friendica\Contact\Introduction\Entity\Introduction;
|
||||||
|
use Friendica\Database\DBA;
|
||||||
use Friendica\Model\APContact;
|
use Friendica\Model\APContact;
|
||||||
use Friendica\Model\Contact;
|
use Friendica\Model\Contact;
|
||||||
use Friendica\Network\HTTPException;
|
use Friendica\Network\HTTPException;
|
||||||
|
@ -49,18 +50,12 @@ class FollowRequest extends BaseFactory
|
||||||
*/
|
*/
|
||||||
public function createFromIntroduction(Introduction $introduction): \Friendica\Object\Api\Mastodon\FollowRequest
|
public function createFromIntroduction(Introduction $introduction): \Friendica\Object\Api\Mastodon\FollowRequest
|
||||||
{
|
{
|
||||||
$cdata = Contact::getPublicAndUserContactID($introduction->cid, $introduction->uid);
|
$account = DBA::selectFirst('account-user-view', [], ['id' => $introduction->cid, 'uid' => [0, $introduction->uid]]);
|
||||||
|
if (empty($account)) {
|
||||||
if (empty($cdata)) {
|
|
||||||
$this->logger->warning('Wrong introduction data', ['Introduction' => $introduction]);
|
$this->logger->warning('Wrong introduction data', ['Introduction' => $introduction]);
|
||||||
throw new HTTPException\InternalServerErrorException('Wrong introduction data');
|
throw new HTTPException\InternalServerErrorException('Wrong introduction data');
|
||||||
}
|
}
|
||||||
|
|
||||||
$publicContact = Contact::getById($cdata['public']);
|
return new \Friendica\Object\Api\Mastodon\FollowRequest($this->baseUrl, $introduction->id, $account);
|
||||||
$userContact = Contact::getById($cdata['user']);
|
|
||||||
|
|
||||||
$apContact = APContact::getByURL($publicContact['url'], false);
|
|
||||||
|
|
||||||
return new \Friendica\Object\Api\Mastodon\FollowRequest($this->baseUrl, $introduction->id, $publicContact, $apContact, $userContact);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,14 +37,12 @@ class FollowRequest extends Account
|
||||||
*
|
*
|
||||||
* @param BaseURL $baseUrl
|
* @param BaseURL $baseUrl
|
||||||
* @param int $introduction_id Introduction record id
|
* @param int $introduction_id Introduction record id
|
||||||
* @param array $publicContact Full contact table record with uid = 0
|
* @param array $account entry of "account-user-view"
|
||||||
* @param array $apcontact Optional full apcontact table record
|
|
||||||
* @param array $userContact Optional full contact table record with uid != 0
|
|
||||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
||||||
*/
|
*/
|
||||||
public function __construct(BaseURL $baseUrl, int $introduction_id, array $publicContact, array $apcontact = [], array $userContact = [])
|
public function __construct(BaseURL $baseUrl, int $introduction_id, array $account)
|
||||||
{
|
{
|
||||||
parent::__construct($baseUrl, $publicContact, new Fields(), $apcontact, $userContact);
|
parent::__construct($baseUrl, $account, new Fields());
|
||||||
|
|
||||||
$this->id = $introduction_id;
|
$this->id = $introduction_id;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue