event_store = $event_store; $this->settings_repository = $settings_repository; $this->retention_service = $retention_service instanceof EventRetentionService ? $retention_service : new EventRetentionService(); } /** * Get summary counts. * * @return array{allowed:int,blocked:int,suspicious:int,total:int} */ public function get_summary(): array { $settings = $this->settings_repository->get_settings(); $events = $this->retention_service->filter_events( $this->event_store->get_events(), (int) $settings['event_retention_days'], (int) $settings['max_event_records'] ); $summary = array( 'allowed' => 0, 'blocked' => 0, 'suspicious' => 0, 'total' => 0, ); foreach ( $events as $event ) { if ( SpamEvent::ACTION_BLOCKED === $event->get_action() ) { ++$summary['blocked']; ++$summary['total']; } elseif ( SpamEvent::ACTION_SUSPICIOUS === $event->get_action() ) { ++$summary['suspicious']; ++$summary['total']; } elseif ( SpamEvent::ACTION_ALLOWED === $event->get_action() && ! empty( $settings['log_allowed_events'] ) ) { ++$summary['allowed']; ++$summary['total']; } } return $summary; } }