Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
pull/61/head
Maxence Lange 2018-11-27 22:36:01 -01:00
rodzic 3efe4a60cd
commit b06f3ffff1
2 zmienionych plików z 17 dodań i 16 usunięć

Wyświetl plik

@ -240,7 +240,7 @@ class CoreRequestBuilder {
$date = new DateTime('now');
$date->sub(new DateInterval('PT' . $delay . 'M'));
$this->limitToDBFieldDateTime($qb, 'creation', $date);
$this->limitToDBFieldDateTime($qb, 'creation', $date, true);
}
@ -256,7 +256,7 @@ class CoreRequestBuilder {
$date = new DateTime('now');
$date->sub(new DateInterval('PT' . $delay . 'M'));
$this->limitToDBFieldDateTime($qb, 'caching', $date);
$this->limitToDBFieldDateTime($qb, 'caching', $date, true);
}
@ -345,18 +345,11 @@ class CoreRequestBuilder {
*/
protected function limitPaginate(IQueryBuilder &$qb, int $since = 0, int $limit = 5) {
if ($since > 0) {
$expr = $qb->expr();
$dt = new \DateTime();
$dt->setTimestamp($since);
// TODO: Pagination should use published date, once we can properly query the db for that
$qb->andWhere(
$expr->lt(
$this->defaultSelectAlias . '.creation',
$qb->createNamedParameter($dt, IQueryBuilder::PARAM_DATE),
IQueryBuilder::PARAM_DATE
)
);
$dTime = new \DateTime();
$dTime->setTimestamp($since);
$this->limitToDBFieldDateTime($qb, 'published_time', $dTime);
}
$qb->setMaxResults($limit);
$qb->orderBy('creation', 'desc');
}
@ -430,15 +423,20 @@ class CoreRequestBuilder {
* @param IQueryBuilder $qb
* @param string $field
* @param DateTime $date
* @param bool $orNull
*/
protected function limitToDBFieldDateTime(IQueryBuilder &$qb, string $field, DateTime $date) {
protected function limitToDBFieldDateTime(
IQueryBuilder &$qb, string $field, DateTime $date, bool $orNull = false
) {
$expr = $qb->expr();
$pf = ($qb->getType() === QueryBuilder::SELECT) ? $this->defaultSelectAlias . '.' : '';
$field = $pf . $field;
$orX = $expr->orX();
$orX->add($expr->lte($field, $qb->createNamedParameter($date, IQueryBuilder::PARAM_DATE)));
$orX->add($expr->isNull($field));
if ($orNull === true) {
$orX->add($expr->isNull($field));
}
$qb->andWhere($orX);
}

Wyświetl plik

@ -310,9 +310,12 @@ class NoteService implements ICoreService {
/**
* @param Person $actor
*
* @param int $since
* @param int $limit
*
* @return Note[]
*/
public function getHomeNotesForActor(Person $actor, $since, $limit): array {
public function getHomeNotesForActor(Person $actor, int $since = 0, int $limit = 5): array {
return $this->notesRequest->getHomeNotesForActorId($actor->getId(), $since, $limit);
}