Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 13
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
FlushUtterancesFromStoreByPageIdJob
0.00% covered (danger)
0.00%
0 / 13
0.00% covered (danger)
0.00%
0 / 2
6
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
2
 run
0.00% covered (danger)
0.00%
0 / 9
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace MediaWiki\Wikispeech\Utterance;
4
5/**
6 * @file
7 * @ingroup Extensions
8 * @license GPL-2.0-or-later
9 */
10
11use Job;
12use MediaWiki\Logger\LoggerFactory;
13use Mediawiki\Title\Title;
14use Psr\Log\LoggerInterface;
15
16/**
17 * @see UtteranceStore::flushUtterancesByPage()
18 * @see FlushUtterancesFromStoreByPageIdJobQueue
19 *
20 * @since 0.1.7
21 */
22class FlushUtterancesFromStoreByPageIdJob extends Job {
23
24    /** @var UtteranceStore */
25    private $utteranceStore;
26
27    /** @var LoggerInterface */
28    private $logger;
29
30    /** @var int */
31    private $pageId;
32
33    /** @var string|null */
34    private $consumerUrl;
35
36    /**
37     * @since 0.1.13 add service $utteranceStore to constructor
38     * @since 0.1.7
39     * @param Title $title
40     * @param array $params [ 'pageId' => int ]
41     * @param UtteranceStore $utteranceStore
42     */
43    public function __construct( $title, $params, $utteranceStore ) {
44        parent::__construct( 'flushUtterancesFromStoreByPageId', $title, $params );
45        $this->logger = LoggerFactory::getInstance( 'Wikispeech' );
46        $this->pageId = $params['pageId'];
47        $this->utteranceStore = $utteranceStore;
48    }
49
50    /**
51     * Executed by the job queue.
52     *
53     * @since 0.1.7
54     * @return bool success
55     */
56    public function run() {
57        $flushedUtterances = $this->utteranceStore->flushUtterancesByPage(
58            $this->consumerUrl,
59            $this->pageId
60        );
61        $this->logger->info(
62            "Flushed {flushedUtterances} expired utterances from store.",
63            [ 'flushedUtterances' => $flushedUtterances ]
64        );
65        return true;
66    }
67}