Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2
3use MediaWiki\Config\ServiceOptions;
4use MediaWiki\Extension\ReportIncident\Services\IReportIncidentNotifier;
5use MediaWiki\Extension\ReportIncident\Services\IReportIncidentRecorder;
6use MediaWiki\Extension\ReportIncident\Services\MetricsPlatformIncidentRecorder;
7use MediaWiki\Extension\ReportIncident\Services\NullReportIncidentNotifier;
8use MediaWiki\Extension\ReportIncident\Services\ReportIncidentController;
9use MediaWiki\Extension\ReportIncident\Services\ReportIncidentManager;
10use MediaWiki\Extension\ReportIncident\Services\ZendeskClient;
11use MediaWiki\Logger\LoggerFactory;
12use MediaWiki\MediaWikiServices;
13use MediaWiki\Registration\ExtensionRegistry;
14
15// PHP unit does not understand code coverage for this file
16// as the @covers annotation cannot cover a specific file
17// See ReportIncidentServiceWiringTest.php for relevant tests.
18// @codeCoverageIgnoreStart
19
20return [
21    'ReportIncidentManager' => static function (
22        MediaWikiServices $services
23    ): ReportIncidentManager {
24        return new ReportIncidentManager(
25            $services->getService( 'ReportIncidentNotifier' ),
26            $services->getService( 'ReportIncidentRecorder' )
27        );
28    },
29    'ReportIncidentNotifier' => static function ( MediaWikiServices $services ): IReportIncidentNotifier {
30        if ( !$services->getMainConfig()->get( 'ReportIncidentZendeskUrl' ) ) {
31            return new NullReportIncidentNotifier();
32        }
33
34        return new ZendeskClient(
35            $services->getHttpRequestFactory(),
36            $services->getMessageFormatterFactory()->getTextFormatter( 'en' ),
37            $services->getUrlUtils(),
38            $services->getUserFactory(),
39            $services->getTitleFactory(),
40            LoggerFactory::getInstance( 'ReportIncident' ),
41            new ServiceOptions( ZendeskClient::CONSTRUCTOR_OPTIONS, $services->getMainConfig() )
42        );
43    },
44    'ReportIncidentRecorder' => static function ( MediaWikiServices $services ): IReportIncidentRecorder {
45        return new MetricsPlatformIncidentRecorder(
46            $services->getService( 'EventLogging.MetricsClientFactory' ),
47            $services->getTitleFactory(),
48            $services->getUserFactory()
49        );
50    },
51    'ReportIncidentController' => static function (
52        MediaWikiServices $services
53    ): ReportIncidentController {
54        if ( ExtensionRegistry::getInstance()->isLoaded( 'CommunityConfiguration' ) ) {
55            $localLinksConfig = $services->getService( 'CommunityConfiguration.MediaWikiConfigReader' );
56        } else {
57            $localLinksConfig = $services->getMainConfig();
58        }
59        return new ReportIncidentController( $services->getMainConfig(), $localLinksConfig );
60    }
61];
62// @codeCoverageIgnoreEnd