twitterUser = $twitterUser; } protected function post(array $request = []) { $this->checkAllowedScope(BaseApi::SCOPE_WRITE); $uid = BaseApi::getCurrentUserID(); $owner = User::getOwnerDataById($uid); if (!$owner) { $this->logger->notice(BaseApi::LOG_PREFIX . 'No owner {uid} found', ['module' => 'api', 'action' => 'friendships_destroy', 'uid' => $uid]); throw new HTTPException\NotFoundException('Error Processing Request'); } $contact_id = BaseApi::getContactIDForSearchterm($this->getRequestValue($request, 'screen_name', ''), $this->getRequestValue($request, 'profileurl', ''), $this->getRequestValue($request, 'user_id', 0), 0); if (empty($contact_id)) { $this->logger->notice(BaseApi::LOG_PREFIX . 'No user_id specified', ['module' => 'api', 'action' => 'friendships_destroy']); throw new HTTPException\BadRequestException('no user_id specified'); } // Get Contact by given id $ucid = Contact::getUserContactId($contact_id, $uid); if (!$ucid) { $this->logger->notice(BaseApi::LOG_PREFIX . 'Not following contact', ['module' => 'api', 'action' => 'friendships_destroy']); throw new HTTPException\NotFoundException('Not following Contact'); } $contact = Contact::getById($ucid); $user = $this->twitterUser->createFromContactId($contact_id, $uid, true)->toArray(); try { Contact::unfollow($contact); } catch (Exception $e) { $this->logger->error(BaseApi::LOG_PREFIX . $e->getMessage(), ['contact' => $contact]); throw new HTTPException\InternalServerErrorException('Unable to unfollow this contact, please contact your administrator'); } $this->response->addFormattedContent('friendships', ['user' => $user], $this->parameters['extension'] ?? null); } }