Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
21 / 21
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
1 / 1
RevisionHandler
100.00% covered (success)
100.00%
21 / 21
100.00% covered (success)
100.00%
3 / 3
3
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
10 / 10
100.00% covered (success)
100.00%
1 / 1
1
 factory
100.00% covered (success)
100.00%
10 / 10
100.00% covered (success)
100.00%
1 / 1
1
 getRevision
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace MediaWiki\IPInfo\Rest\Handler;
4
5use JobQueueGroup;
6use MediaWiki\IPInfo\InfoManager;
7use MediaWiki\IPInfo\Rest\Presenter\DefaultPresenter;
8use MediaWiki\Languages\LanguageFallback;
9use MediaWiki\Permissions\PermissionManager;
10use MediaWiki\Revision\RevisionLookup;
11use MediaWiki\Revision\RevisionRecord;
12use MediaWiki\User\Options\UserOptionsLookup;
13use MediaWiki\User\UserFactory;
14
15class RevisionHandler extends AbstractRevisionHandler {
16
17    private RevisionLookup $revisionLookup;
18
19    public function __construct(
20        InfoManager $infoManager,
21        RevisionLookup $revisionLookup,
22        PermissionManager $permissionManager,
23        UserOptionsLookup $userOptionsLookup,
24        UserFactory $userFactory,
25        DefaultPresenter $presenter,
26        JobQueueGroup $jobQueueGroup,
27        LanguageFallback $languageFallback
28    ) {
29        parent::__construct(
30            $infoManager,
31            $permissionManager,
32            $userOptionsLookup,
33            $userFactory,
34            $presenter,
35            $jobQueueGroup,
36            $languageFallback
37        );
38        $this->revisionLookup = $revisionLookup;
39    }
40
41    /**
42     * @param InfoManager $infoManager
43     * @param RevisionLookup $revisionLookup
44     * @param PermissionManager $permissionManager
45     * @param UserOptionsLookup $userOptionsLookup
46     * @param UserFactory $userFactory
47     * @param JobQueueGroup $jobQueueGroup
48     * @param LanguageFallback $languageFallback
49     * @return self
50     */
51    public static function factory(
52        InfoManager $infoManager,
53        RevisionLookup $revisionLookup,
54        PermissionManager $permissionManager,
55        UserOptionsLookup $userOptionsLookup,
56        UserFactory $userFactory,
57        JobQueueGroup $jobQueueGroup,
58        LanguageFallback $languageFallback
59    ) {
60        return new self(
61            $infoManager,
62            $revisionLookup,
63            $permissionManager,
64            $userOptionsLookup,
65            $userFactory,
66            new DefaultPresenter( $permissionManager ),
67            $jobQueueGroup,
68            $languageFallback
69        );
70    }
71
72    /** @inheritDoc */
73    protected function getRevision( int $id ): ?RevisionRecord {
74        return $this->revisionLookup->getRevisionById( $id );
75    }
76}