Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
92.31% covered (success)
92.31%
12 / 13
50.00% covered (danger)
50.00%
1 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
WikibaseRepoEntitySearchHelperCallbacksHandler
92.31% covered (success)
92.31%
12 / 13
50.00% covered (danger)
50.00%
1 / 2
4.01
0.00% covered (danger)
0.00%
0 / 1
 __construct
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
1 / 1
2
 onWikibaseRepoEntitySearchHelperCallbacks
80.00% covered (warning)
80.00%
4 / 5
0.00% covered (danger)
0.00%
0 / 1
2.03
1<?php
2
3declare( strict_types = 1 );
4
5namespace EntitySchema\Wikibase\Hooks;
6
7use EntitySchema\Wikibase\Search\EntitySchemaSearchHelper;
8use EntitySchema\Wikibase\Search\EntitySchemaSearchHelperFactory;
9use MediaWiki\Context\RequestContext;
10use MediaWiki\Request\WebRequest;
11use Wikimedia\Assert\Assert;
12
13/**
14 * @license GPL-2.0-or-later
15 */
16class WikibaseRepoEntitySearchHelperCallbacksHandler {
17
18    private bool $entitySchemaIsRepo;
19    private ?EntitySchemaSearchHelperFactory $factory;
20
21    public function __construct(
22        bool $entitySchemaIsRepo,
23        ?EntitySchemaSearchHelperFactory $factory
24    ) {
25        $this->entitySchemaIsRepo = $entitySchemaIsRepo;
26        $this->factory = $factory;
27        if ( $entitySchemaIsRepo ) {
28            Assert::parameterType(
29                EntitySchemaSearchHelperFactory::class,
30                $factory,
31                '$factory'
32            );
33        }
34    }
35
36    /**
37     * @inheritDoc
38     */
39    public function onWikibaseRepoEntitySearchHelperCallbacks( array &$callbacks ): void {
40        if ( !$this->entitySchemaIsRepo ) {
41            return;
42        }
43        $callbacks[EntitySchemaSearchHelper::ENTITY_TYPE] = function ( WebRequest $request ) {
44            // TODO would be nice if Wikibase injected the context for us
45            // ($request is unfortunately not very useful)
46            return $this->factory->newForContext( RequestContext::getMain() );
47        };
48    }
49
50}