. * */ namespace Friendica\Module\Api\Mastodon\Accounts; use Friendica\Core\System; use Friendica\DI; use Friendica\Model\Contact; use Friendica\Model\User; use Friendica\Module\BaseApi; /** * @see https://docs.joinmastodon.org/methods/accounts/ */ class Block extends BaseApi { protected function post(array $request = []) { $this->checkAllowedScope(self::SCOPE_FOLLOW); $uid = self::getCurrentUserID(); if (empty($this->parameters['id'])) { $this->logErrorAndJsonExit(422, $this->errorFactory->UnprocessableEntity()); } Contact\User::setBlocked($this->parameters['id'], $uid, true); $cdata = Contact::getPublicAndUserContactID($this->parameters['id'], $uid); if (!empty($cdata['user'])) { $contact = Contact::getById($cdata['user']); if (!empty($contact)) { // Mastodon-expected behavior: relationship is severed on block Contact::terminateFriendship($contact); } } $this->jsonExit(DI::mstdnRelationship()->createFromContactId($this->parameters['id'], $uid)->toArray()); } }