<?php
/**
- * @copyright Copyright (C) 2010-2021, the Friendica project
+ * @copyright Copyright (C) 2010-2022, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
use Console_Table;
use Friendica\App;
+use Friendica\DI;
use Friendica\Model\Contact as ContactModel;
use Friendica\Model\User as UserModel;
use Friendica\Network\Probe;
}
/**
- * Sends an unfriend message. Does not remove the contact
+ * Sends an unfriend message.
*
* @return bool True, if the command was successful
+ * @throws \Exception
*/
- private function terminateContact()
+ private function terminateContact(): bool
{
$cid = $this->getArgument(1);
if (empty($cid)) {
$user = UserModel::getById($contact['uid']);
- $result = ContactModel::terminateFriendship($user, $contact);
+ try {
+ $result = ContactModel::terminateFriendship($user, $contact);
+ if ($result === false) {
+ throw new RuntimeException('Unable to unfollow this contact, please retry in a few minutes or check the logs.');
+ }
+
+ $this->out('Contact was successfully unfollowed');
+
+ return true;
+ } catch (\Exception $e) {
+ DI::logger()->error($e->getMessage(), ['owner' => $user, 'contact' => $contact]);
+ throw new RuntimeException('Unable to unfollow this contact, please check the log');
+ }
}
/**
* Marks a contact for removal
- *
- * @return bool True, if the command was successful
*/
private function removeContact()
{
}
}
- $result = ContactModel::remove($cid);
+ ContactModel::remove($cid);
}
/**