protected static function getNonMonitorJobLogsUnprocessedWithErrors() { $searchAttributeData = array(); $searchAttributeData['clauses'] = array(1 => array('attributeName' => 'type', 'operatorType' => 'doesNotEqual', 'value' => 'Monitor'), 2 => array('attributeName' => 'isProcessed', 'operatorType' => 'doesNotEqual', 'value' => (bool) 1), 3 => array('attributeName' => 'status', 'operatorType' => 'equals', 'value' => JobLog::STATUS_COMPLETE_WITH_ERROR)); $searchAttributeData['structure'] = '1 and 2 and 3'; $joinTablesAdapter = new RedBeanModelJoinTablesQueryAdapter('JobLog'); $where = RedBeanModelDataProvider::makeWhere('JobLog', $searchAttributeData, $joinTablesAdapter); return JobLog::getSubset($joinTablesAdapter, null, self::$pageSize, $where, null); }
protected static function getLastCompletedJobLogByType($type) { assert('is_string($type) && $type != ""'); $searchAttributeData = array(); $searchAttributeData['clauses'] = array(1 => array('attributeName' => 'type', 'operatorType' => 'equals', 'value' => $type)); $searchAttributeData['structure'] = '1'; $joinTablesAdapter = new RedBeanModelJoinTablesQueryAdapter('JobLog'); $sort = RedBeanModelDataProvider::resolveSortAttributeColumnName('JobLog', $joinTablesAdapter, 'createdDateTime'); $where = RedBeanModelDataProvider::makeWhere('JobLog', $searchAttributeData, $joinTablesAdapter); $models = JobLog::getSubset($joinTablesAdapter, null, 1, $where, $sort . ' desc'); if (count($models) > 1) { throw new NotSupportedException(); } if (count($models) == 0) { return null; } return $models[0]; }