kopia lustrzana https://github.com/nextcloud/social
displays post with current user as author
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>pull/61/head
rodzic
15358d0e47
commit
b36e56cee9
|
@ -307,13 +307,19 @@ class CoreRequestBuilder {
|
|||
/**
|
||||
* @param IQueryBuilder $qb
|
||||
* @param string $recipient
|
||||
* @param bool $asAuthor
|
||||
*/
|
||||
protected function limitToRecipient(IQueryBuilder &$qb, string $recipient) {
|
||||
protected function limitToRecipient(
|
||||
IQueryBuilder &$qb, string $recipient, bool $asAuthor = false
|
||||
) {
|
||||
$expr = $qb->expr();
|
||||
$orX = $expr->orX();
|
||||
$dbConn = $this->dbConnection;
|
||||
|
||||
$orX->add($expr->eq('attributed_to', $qb->createNamedParameter($recipient)));
|
||||
if ($asAuthor === true) {
|
||||
$orX->add($expr->eq('attributed_to', $qb->createNamedParameter($recipient)));
|
||||
}
|
||||
|
||||
$orX->add($expr->eq('to', $qb->createNamedParameter($recipient)));
|
||||
$orX->add(
|
||||
$expr->like(
|
||||
|
@ -373,6 +379,23 @@ class CoreRequestBuilder {
|
|||
protected function limitToDBField(
|
||||
IQueryBuilder &$qb, string $field, string $value, bool $cs = true, string $alias = ''
|
||||
) {
|
||||
$expr = $this->exprLimitToDBField($qb, $field, $value, $cs, $alias);
|
||||
$qb->andWhere($expr);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param IQueryBuilder $qb
|
||||
* @param string $field
|
||||
* @param string $value
|
||||
* @param bool $cs
|
||||
* @param string $alias
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function exprLimitToDBField(
|
||||
IQueryBuilder &$qb, string $field, string $value, bool $cs = true, string $alias = ''
|
||||
): string {
|
||||
$expr = $qb->expr();
|
||||
|
||||
$pf = '';
|
||||
|
@ -382,12 +405,11 @@ class CoreRequestBuilder {
|
|||
$field = $pf . $field;
|
||||
|
||||
if ($cs) {
|
||||
$qb->andWhere($expr->eq($field, $qb->createNamedParameter($value)));
|
||||
return $expr->eq($field, $qb->createNamedParameter($value));
|
||||
} else {
|
||||
$func = $qb->func();
|
||||
$qb->andWhere(
|
||||
$expr->eq($func->lower($field), $func->lower($qb->createNamedParameter($value)))
|
||||
);
|
||||
|
||||
return $expr->eq($func->lower($field), $func->lower($qb->createNamedParameter($value)));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -139,14 +139,18 @@ class NotesRequest extends NotesRequestBuilder {
|
|||
|
||||
/**
|
||||
* @param string $actorId
|
||||
* @param int $since
|
||||
* @param int $limit
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getHomeNotesForActorId(string $actorId, $since, $limit): array {
|
||||
public function getHomeNotesForActorId(string $actorId, int $since = 0, int $limit = 5): array {
|
||||
$qb = $this->getNotesSelectSql();
|
||||
|
||||
$this->rightJoinFollowing($qb);
|
||||
$this->limitToActorId($qb, $actorId, 'f');
|
||||
$qb->orWhere($this->exprLimitToDBField($qb, 'attributed_to', $actorId));
|
||||
|
||||
$this->limitPaginate($qb, $since, $limit);
|
||||
$this->leftJoinCacheActors($qb, 'attributed_to');
|
||||
|
||||
|
@ -190,12 +194,15 @@ class NotesRequest extends NotesRequestBuilder {
|
|||
|
||||
/**
|
||||
* @param string $actorId
|
||||
* @param int $since
|
||||
* @param int $limit
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getDirectNotesForActorId(string $actorId, $since, $limit): array {
|
||||
public function getDirectNotesForActorId(string $actorId, int $since = 0, int $limit = 5
|
||||
): array {
|
||||
$qb = $this->getNotesSelectSql();
|
||||
$this->limitToRecipient($qb, $actorId);
|
||||
$this->limitToRecipient($qb, $actorId, true);
|
||||
$this->limitPaginate($qb, $since, $limit);
|
||||
$this->leftJoinCacheActors($qb, 'attributed_to');
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue