You are here

private function AutobanAnalyzeForm::getAnalyzeResult in Automatic IP ban (Autoban) 8

Get analyze result.

Parameters

array $header: Query header.

int $threshold: Threshold for watchdog entries which added to result.

string $dblog_type_exclude: Exclude dblog types events for log analyze.

Return value

array Watchdog table data as query result.

1 call to AutobanAnalyzeForm::getAnalyzeResult()
AutobanAnalyzeForm::buildForm in src/Form/AutobanAnalyzeForm.php
Form constructor.

File

src/Form/AutobanAnalyzeForm.php, line 255

Class

AutobanAnalyzeForm
Analyze watchdog entries for IP addresses for ban.

Namespace

Drupal\autoban\Form

Code

private function getAnalyzeResult(array $header, $threshold, $dblog_type_exclude) {
  $query = $this->connection
    ->select('watchdog', 'log');
  $query
    ->fields('log', [
    'message',
    'variables',
    'type',
  ]);
  $query
    ->addExpression('COUNT(*)', 'cnt');
  $query
    ->condition('log.type', explode("\n", $dblog_type_exclude), 'NOT IN');
  $query
    ->groupBy('log.message, log.variables, log.type');
  $query
    ->having('COUNT(*) >= :threshold', [
    ':threshold' => $threshold,
  ]);
  $table_sort = $query
    ->extend('Drupal\\Core\\Database\\Query\\TableSortExtender')
    ->orderByHeader($header);
  $result = $table_sort
    ->execute()
    ->fetchAll();
  return $result;
}