. */ namespace SP\Repositories\EventLog; use SP\DataModel\ItemSearchData; use SP\Repositories\Repository; use SP\Storage\DbWrapper; use SP\Storage\QueryData; /** * Class EventlogRepository * * @package SP\Repositories\EventLog */ class EventlogRepository extends Repository { /** * Clears the event log * * @return bool con el resultado * @throws \SP\Core\Exceptions\QueryException * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\SPException */ public function clear() { $queryData = new QueryData(); $queryData->setQuery('TRUNCATE TABLE EventLog'); $queryData->setOnErrorMessage(__u('Error al vaciar el registro de eventos')); return DbWrapper::getQuery($queryData, $this->db); } /** * Searches for items by a given filter * * @param ItemSearchData $itemSearchData * @return mixed */ public function search(ItemSearchData $itemSearchData) { $queryData = new QueryData(); $queryData->setSelect('id,FROM_UNIXTIME(date) AS date,action,level,login,ipAddress,description'); $queryData->setFrom('EventLog'); $queryData->setOrder('id DESC'); if ($itemSearchData->getSeachString() !== '') { $queryData->setWhere('action LIKE ? OR ipAddress LIKE ? OR description LIKE ?'); $search = '%' . $itemSearchData->getSeachString() . '%'; $queryData->addParam($search); $queryData->addParam($search); $queryData->addParam($search); } $queryData->setLimit('?,?'); $queryData->addParam($itemSearchData->getLimitStart()); $queryData->addParam($itemSearchData->getLimitCount()); DbWrapper::setFullRowCount(); /** @var array $queryRes */ $queryRes = DbWrapper::getResultsArray($queryData, $this->db); $queryRes['count'] = $queryData->getQueryNumRows(); return $queryRes; } }