Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
13 / 13
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
UserEditCountInitJob
100.00% covered (success)
100.00%
13 / 13
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
 run
100.00% covered (success)
100.00%
11 / 11
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2/**
3 * @license GPL-2.0-or-later
4 * @file
5 */
6
7namespace MediaWiki\User;
8
9use MediaWiki\JobQueue\GenericParameterJob;
10use MediaWiki\JobQueue\Job;
11use MediaWiki\MediaWikiServices;
12
13/**
14 * Job that initializes an user's edit count.
15 *
16 * This is used by UserEditTracker when a user's editcount isn't yet set.
17 *
18 * The following job parameters are required:
19 *   - userId: the user ID
20 *   - editCount: new edit count to set
21 *
22 * @internal For use by \MediaWiki\User\UserEditTracker
23 * @since 1.36
24 * @ingroup User
25 */
26class UserEditCountInitJob extends Job implements GenericParameterJob {
27
28    public function __construct( array $params ) {
29        parent::__construct( 'userEditCountInit', $params );
30        $this->removeDuplicates = true;
31    }
32
33    /** @inheritDoc */
34    public function run() {
35        $dbw = MediaWikiServices::getInstance()->getConnectionProvider()->getPrimaryDatabase();
36
37        $dbw->newUpdateQueryBuilder()
38            ->update( 'user' )
39            ->set( [ 'user_editcount' => $this->params['editCount'] ] )
40            ->where( [
41                'user_id' => $this->params['userId'],
42                $dbw->expr( 'user_editcount', '=', null )->or( 'user_editcount', '<', $this->params['editCount'] )
43            ] )
44            ->caller( __METHOD__ )
45            ->execute();
46
47        return true;
48    }
49}