/** * {@inheritdoc} */ protected function applySorts(\SelectQueryInterface $query, array $sorts) { if (empty($sorts)) { $query->orderBy('s.name', 'ASC'); } else { foreach ($sorts as $sort => $order) { if ($order === CursorInterface::SORT_DESC) { $direction = 'DESC'; } else { $direction = 'ASC'; } switch ($sort) { case Field::SUBER_NAME: $query->orderBy('s.name', $direction); break; default: throw new \InvalidArgumentException("Unsupported sort field"); } } } }
protected function applySorts(\SelectQueryInterface $query, array $sorts) { if (empty($sorts)) { $query->orderBy('s.id', 'ASC'); } else { foreach ($sorts as $sort => $order) { if ($order === CursorInterface::SORT_DESC) { $direction = 'DESC'; } else { $direction = 'ASC'; } switch ($sort) { case Field::SUB_ID: $query->orderBy('s.id', $direction); break; case Field::SUB_STATUS: $query->orderBy('s.status', $direction); break; case Field::SUB_CREATED_TS: if ($value instanceof \DateTime) { $value = $value->format(Misc::SQL_DATETIME); } $query->orderBy('s.created', $direction); break; case Field::CHAN_ID: $query->orderBy('c.name', $direction); break; case Field::SUBER_NAME: $query->orderBy('s.name', $direction); break; default: throw new \InvalidArgumentException("Unsupported sort field"); } } } }
/** * {@inheritdoc} */ protected function applySorts(\SelectQueryInterface $query, array $sorts) { if (empty($sorts)) { // Messages need a default ordering for fetching. If time for // more than one message is the same, ordering by message // identifier as second choice will lower unpredictable // behavior chances to happen (still possible thought since // serial fields don't guarantee order, even thought in real // life they do until very high values) $query->orderBy('q.created', 'ASC')->orderBy('q.msg_id', 'ASC'); } else { foreach ($sorts as $sort => $order) { if ($order === CursorInterface::SORT_DESC) { $direction = 'DESC'; } else { $direction = 'ASC'; } switch ($sort) { case Field::MSG_ID: case Field::MSG_SENT: $query->orderBy('q.created', $direction)->orderBy('q.msg_id', $direction); break; case Field::MSG_ORIGIN: $query->orderBy('m.origin', $direction); break; case Field::MSG_TYPE: $query->orderBy('m.type', $direction); break; case Field::MSG_READ_TS: $query->orderBy('m.read_at', $direction); break; case Field::MSG_UNREAD: $query->orderBy('q.msg_id', $direction); break; case Field::MSG_LEVEL: $query->orderBy('m.level', $direction); break; case Field::SUB_ID: $query->orderBy('q.sub_id', $direction); break; default: throw new \InvalidArgumentException("Unsupported sort field"); } } } }
public function orderBy($field, $direction = 'ASC') { $this->query->orderBy($field, $direction); return $this; }