Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
7 / 7
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
LoggerFactory
100.00% covered (success)
100.00%
7 / 7
100.00% covered (success)
100.00%
2 / 2
2
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getLogger
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace MediaWiki\IPInfo\Logging;
4
5use MediaWiki\User\ActorStore;
6use Wikimedia\Rdbms\IConnectionProvider;
7
8class LoggerFactory {
9
10    /**
11     * The default amount of time after which a duplicate log entry can be inserted. 24 hours (in
12     * seconds).
13     *
14     * @var int
15     */
16    private const DEFAULT_DEBOUNCE_DELAY = 24 * 60 * 60;
17
18    private ActorStore $actorStore;
19
20    private IConnectionProvider $dbProvider;
21
22    public function __construct(
23        ActorStore $actorStore,
24        IConnectionProvider $dbProvider
25    ) {
26        $this->actorStore = $actorStore;
27        $this->dbProvider = $dbProvider;
28    }
29
30    /**
31     * @param int $delay
32     * @return Logger
33     */
34    public function getLogger(
35        int $delay = self::DEFAULT_DEBOUNCE_DELAY
36    ) {
37        return new Logger(
38            $this->actorStore,
39            $this->dbProvider->getPrimaryDatabase(),
40            $delay
41        );
42    }
43}