Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
82.61% covered (warning)
82.61%
19 / 23
66.67% covered (warning)
66.67%
2 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
ApiGetBookCreatorBoxContent
82.61% covered (warning)
82.61%
19 / 23
66.67% covered (warning)
66.67%
2 / 3
5.13
0.00% covered (danger)
0.00%
0 / 1
 execute
100.00% covered (success)
100.00%
7 / 7
100.00% covered (success)
100.00%
1 / 1
3
 getAllowedParams
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
1 / 1
1
 getExamplesMessages
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3/*
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20 * DEALINGS IN THE SOFTWARE.
21 */
22
23namespace MediaWiki\Extension\Collection\Api;
24
25use ApiBase;
26use MediaWiki\Extension\Collection\Hooks;
27use MediaWiki\Title\Title;
28use Wikimedia\ParamValidator\ParamValidator;
29
30class ApiGetBookCreatorBoxContent extends ApiBase {
31    use CollectionTrait;
32
33    /** @inheritDoc */
34    public function execute(): void {
35        $params = $this->extractRequestParams();
36
37        $oldid = $params['oldid'] ? (int)$params['oldid'] : 0;
38        $title = $params['pagename'] ? Title::newFromText( $params['pagename'] ) : Title::newMainPage();
39        $title ??= Title::newMainPage();
40        $html = Hooks::getBookCreatorBoxContent( $title, $params['hint'], $oldid );
41        $result = [ 'html' => $html ];
42        $this->getResult()->addValue( null, $this->getModuleName(), $result );
43    }
44
45    /** @inheritDoc */
46    public function getAllowedParams(): array {
47        return [
48            'hint' => [
49                ParamValidator::PARAM_TYPE => 'string',
50                ParamValidator::PARAM_DEFAULT => '',
51            ],
52            'oldid' => [
53                ParamValidator::PARAM_TYPE => 'integer',
54            ],
55            'pagename' => [
56                ParamValidator::PARAM_TYPE => 'string',
57            ],
58        ];
59    }
60
61    /** @inheritDoc */
62    public function getExamplesMessages(): array {
63        return [
64            'action=collection&submodule=getbookcreatorboxcontent&hint=Test&oldid=0&pagename=Page'
65                => 'apihelp-collection+getbookcreatorboxcontent-example',
66        ];
67    }
68}