Replace all 'fsuggest' usages with the new paradigm
This commit is contained in:
parent
82a6c78033
commit
b407fbedc1
|
@ -0,0 +1,9 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Friendica\Contact\FriendSuggest\Collection;
|
||||||
|
|
||||||
|
use Friendica\BaseCollection;
|
||||||
|
|
||||||
|
class FriendSuggests extends BaseCollection
|
||||||
|
{
|
||||||
|
}
|
|
@ -2,10 +2,13 @@
|
||||||
|
|
||||||
namespace Friendica\Contact\FriendSuggest\Depository;
|
namespace Friendica\Contact\FriendSuggest\Depository;
|
||||||
|
|
||||||
|
use Friendica\BaseCollection;
|
||||||
use Friendica\BaseDepository;
|
use Friendica\BaseDepository;
|
||||||
|
use Friendica\Contact\FriendSuggest\Collection;
|
||||||
|
use Friendica\Contact\FriendSuggest\Entity;
|
||||||
|
use Friendica\Contact\FriendSuggest\Exception\FriendSuggestNotFoundException;
|
||||||
use Friendica\Contact\FriendSuggest\Exception\FriendSuggestPersistenceException;
|
use Friendica\Contact\FriendSuggest\Exception\FriendSuggestPersistenceException;
|
||||||
use Friendica\Contact\FriendSuggest\Factory;
|
use Friendica\Contact\FriendSuggest\Factory;
|
||||||
use Friendica\Contact\FriendSuggest\Entity;
|
|
||||||
use Friendica\Database\Database;
|
use Friendica\Database\Database;
|
||||||
use Friendica\Network\HTTPException\NotFoundException;
|
use Friendica\Network\HTTPException\NotFoundException;
|
||||||
use Psr\Log\LoggerInterface;
|
use Psr\Log\LoggerInterface;
|
||||||
|
@ -48,11 +51,58 @@ class FriendSuggest extends BaseDepository
|
||||||
return parent::_selectOne($condition, $params);
|
return parent::_selectOne($condition, $params);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function selectOneById(int $id): Entity\FriendSuggest
|
/**
|
||||||
|
* @param array $condition
|
||||||
|
* @param array $params
|
||||||
|
*
|
||||||
|
* @return Collection\FriendSuggests
|
||||||
|
*
|
||||||
|
* @throws \Exception
|
||||||
|
*/
|
||||||
|
private function select(array $condition, array $params = []): Collection\FriendSuggests
|
||||||
{
|
{
|
||||||
return $this->selectOne(['id' => $id]);
|
return parent::_select($condition, $params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $id
|
||||||
|
*
|
||||||
|
* @return Entity\FriendSuggest
|
||||||
|
*
|
||||||
|
* @throws FriendSuggestNotFoundException in case there's no suggestion for this id
|
||||||
|
*/
|
||||||
|
public function selectOneById(int $id): Entity\FriendSuggest
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
return $this->selectOne(['id' => $id]);
|
||||||
|
} catch (NotFoundException $e) {
|
||||||
|
throw new FriendSuggestNotFoundException(sprintf('No FriendSuggest found for id %d', $id));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $cid
|
||||||
|
*
|
||||||
|
* @return Collection\FriendSuggests
|
||||||
|
*
|
||||||
|
* @throws FriendSuggestPersistenceException In case the underlying storage cannot select the suggestion
|
||||||
|
*/
|
||||||
|
public function selectForContact(int $cid): Collection\FriendSuggests
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
return $this->select(['cid' => $cid]);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
throw new FriendSuggestPersistenceException(sprintf('Cannot select FriendSuggestion for contact %d', $cid));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Entity\FriendSuggest $fsuggest
|
||||||
|
*
|
||||||
|
* @return Entity\FriendSuggest
|
||||||
|
*
|
||||||
|
* @throws FriendSuggestNotFoundException in case the underlying storage cannot save the suggestion
|
||||||
|
*/
|
||||||
public function save(Entity\FriendSuggest $fsuggest): Entity\FriendSuggest
|
public function save(Entity\FriendSuggest $fsuggest): Entity\FriendSuggest
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
@ -66,7 +116,24 @@ class FriendSuggest extends BaseDepository
|
||||||
return $this->selectOneById($this->db->lastInsertId());
|
return $this->selectOneById($this->db->lastInsertId());
|
||||||
}
|
}
|
||||||
} catch (\Exception $exception) {
|
} catch (\Exception $exception) {
|
||||||
throw new FriendSuggestPersistenceException(sprintf('Cannot insert/update the FriendSuggestion %d for user %d', $fsuggest->id, $fsuggest->uid), $exception);
|
throw new FriendSuggestNotFoundException(sprintf('Cannot insert/update the FriendSuggestion %d for user %d', $fsuggest->id, $fsuggest->uid), $exception);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Collection\FriendSuggest $fsuggests
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*
|
||||||
|
* @throws FriendSuggestNotFoundException in case the underlying storage cannot delete the suggestion
|
||||||
|
*/
|
||||||
|
public function delete(Collection\FriendSuggests $fsuggests): bool
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$ids = $fsuggests->column('id');
|
||||||
|
return $this->db->delete(self::$table_name, ['id' => $ids]);
|
||||||
|
} catch (\Exception $exception) {
|
||||||
|
throw new FriendSuggestNotFoundException('Cannot delete the FriendSuggestions', $exception);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Friendica\Contact\FriendSuggest\Exception;
|
||||||
|
|
||||||
|
class FriendSuggestNotFoundException extends \OutOfBoundsException
|
||||||
|
{
|
||||||
|
public function __construct($message = "", \Throwable $previous = null)
|
||||||
|
{
|
||||||
|
parent::__construct($message, 404, $previous);
|
||||||
|
}
|
||||||
|
}
|
|
@ -34,8 +34,7 @@ class FriendSuggest extends BaseFactory implements ICanCreateFromTableRow
|
||||||
string $request = '',
|
string $request = '',
|
||||||
string $photo = '',
|
string $photo = '',
|
||||||
string $note = ''
|
string $note = ''
|
||||||
): Entity\FriendSuggest
|
): Entity\FriendSuggest {
|
||||||
{
|
|
||||||
return $this->createFromTableRow([
|
return $this->createFromTableRow([
|
||||||
'uid' => $uid,
|
'uid' => $uid,
|
||||||
'cid' => $cid,
|
'cid' => $cid,
|
||||||
|
@ -46,4 +45,9 @@ class FriendSuggest extends BaseFactory implements ICanCreateFromTableRow
|
||||||
'note' => $note,
|
'note' => $note,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function createEmpty(int $id): Entity\FriendSuggest
|
||||||
|
{
|
||||||
|
return $this->createFromTableRow(['id' => $id]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,7 +80,7 @@ class RemoveContent
|
||||||
DBA::delete('contact-relation', ['relation-cid' => $id]);
|
DBA::delete('contact-relation', ['relation-cid' => $id]);
|
||||||
DBA::delete('contact-relation', ['cid' => $id]);
|
DBA::delete('contact-relation', ['cid' => $id]);
|
||||||
DBA::delete('event', ['cid' => $id]);
|
DBA::delete('event', ['cid' => $id]);
|
||||||
DBA::delete('fsuggest', ['cid' => $id]);
|
DI::fsuggest()->delete(DI::fsuggest()->selectForContact($id));
|
||||||
DBA::delete('post-tag', ['cid' => $id]);
|
DBA::delete('post-tag', ['cid' => $id]);
|
||||||
DBA::delete('user-contact', ['cid' => $id]);
|
DBA::delete('user-contact', ['cid' => $id]);
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
|
|
||||||
namespace Friendica\Worker;
|
namespace Friendica\Worker;
|
||||||
|
|
||||||
|
use Friendica\Contact\FriendSuggest\Collection\FriendSuggests;
|
||||||
|
use Friendica\Contact\FriendSuggest\Exception\FriendSuggestNotFoundException;
|
||||||
use Friendica\Core\Logger;
|
use Friendica\Core\Logger;
|
||||||
use Friendica\Core\Protocol;
|
use Friendica\Core\Protocol;
|
||||||
use Friendica\Database\DBA;
|
use Friendica\Database\DBA;
|
||||||
|
@ -64,11 +66,13 @@ class Delivery
|
||||||
}
|
}
|
||||||
$uid = $target_item['uid'];
|
$uid = $target_item['uid'];
|
||||||
} elseif ($cmd == self::SUGGESTION) {
|
} elseif ($cmd == self::SUGGESTION) {
|
||||||
$target_item = DBA::selectFirst('fsuggest', [], ['id' => $post_uriid]);
|
try {
|
||||||
if (!DBA::isResult($target_item)) {
|
$target_item = DI::fsuggest()->selectOneById($post_uriid);
|
||||||
|
} catch (FriendSuggestNotFoundException $e) {
|
||||||
|
DI::logger()->info('Cannot find FriendSuggestion', ['id' => $post_uriid]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$uid = $target_item['uid'];
|
$uid = $target_item->uid;
|
||||||
} elseif ($cmd == self::RELOCATION) {
|
} elseif ($cmd == self::RELOCATION) {
|
||||||
$uid = $post_uriid;
|
$uid = $post_uriid;
|
||||||
$target_item = [];
|
$target_item = [];
|
||||||
|
@ -284,7 +288,7 @@ class Delivery
|
||||||
} elseif ($cmd == self::SUGGESTION) {
|
} elseif ($cmd == self::SUGGESTION) {
|
||||||
$item = $target_item;
|
$item = $target_item;
|
||||||
$atom = DFRN::fsuggest($item, $owner);
|
$atom = DFRN::fsuggest($item, $owner);
|
||||||
DBA::delete('fsuggest', ['id' => $item['id']]);
|
DI::fsuggest()->delete(new FriendSuggests([DI::fsuggest()->selectOneById($item['id'])]));
|
||||||
} elseif ($cmd == self::RELOCATION) {
|
} elseif ($cmd == self::RELOCATION) {
|
||||||
$atom = DFRN::relocate($owner, $owner['uid']);
|
$atom = DFRN::relocate($owner, $owner['uid']);
|
||||||
} elseif ($followup) {
|
} elseif ($followup) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user