Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 12
0.00% covered (danger)
0.00%
0 / 4
CRAP
0.00% covered (danger)
0.00%
0 / 1
LocalizedHttpException
0.00% covered (danger)
0.00%
0 / 12
0.00% covered (danger)
0.00%
0 / 4
30
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 9
0.00% covered (danger)
0.00%
0 / 1
6
 getMessageValue
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getMessageSpecifier
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getErrorKey
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace MediaWiki\Rest;
4
5use Wikimedia\Message\DataMessageValue;
6use Wikimedia\Message\MessageSpecifier;
7use Wikimedia\Message\MessageValue;
8
9/**
10 * @newable
11 */
12class LocalizedHttpException extends HttpException {
13    private MessageSpecifier $messageSpecifier;
14    private string $errorKey;
15
16    /**
17     * @stable to call
18     *
19     * @param MessageSpecifier $messageValue Prior to MediaWiki 1.47 this had to be a MessageValue
20     * @param int $code
21     * @param array $errorData
22     */
23    public function __construct( MessageSpecifier $messageValue, $code = 500, $errorData = [] ) {
24        if ( $messageValue instanceof DataMessageValue ) {
25            $errorKey = $messageValue->getCode();
26            $errorData += $messageValue->getData() ?? [];
27        } else {
28            $errorKey = $messageValue->getKey();
29        }
30        parent::__construct(
31            'Localized exception with key ' . $messageValue->getKey(), $code, $errorData
32        );
33        $this->messageSpecifier = $messageValue;
34        $this->errorKey = $errorKey;
35    }
36
37    public function getMessageValue(): MessageValue {
38        return MessageValue::newFromSpecifier( $this->messageSpecifier );
39    }
40
41    /**
42     * @since 1.47
43     * @return MessageSpecifier
44     */
45    public function getMessageSpecifier(): MessageSpecifier {
46        return $this->messageSpecifier;
47    }
48
49    public function getErrorKey(): string {
50        return $this->errorKey;
51    }
52}