Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
RemoveFormRequestParser
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
2 / 2
3
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 parse
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3namespace Wikibase\Lexeme\MediaWiki\Api;
4
5use Wikibase\Lexeme\Presentation\ChangeOp\Deserialization\FormIdDeserializer;
6use Wikibase\Lexeme\Presentation\ChangeOp\Deserialization\ValidationContext;
7
8/**
9 * @license GPL-2.0-or-later
10 */
11class RemoveFormRequestParser {
12
13    public const PARAM_FORM_ID = 'id';
14    public const PARAM_BASEREVID = 'baserevid';
15
16    /**
17     * @var FormIdDeserializer
18     */
19    private $formIdDeserializer;
20
21    public function __construct( FormIdDeserializer $formIdDeserializer ) {
22        $this->formIdDeserializer = $formIdDeserializer;
23    }
24
25    /**
26     * @param array $params
27     * @return RemoveFormRequest
28     */
29    public function parse( array $params ) {
30        // missing $params[self::PARAM_FORM_ID] caught by RemoveForm::getAllowedParams()
31
32        $formId = $this->formIdDeserializer->deserialize(
33            $params[self::PARAM_FORM_ID],
34            ValidationContext::create( self::PARAM_FORM_ID )
35        );
36
37        $baseRevId = null;
38        if ( isset( $params[ self::PARAM_BASEREVID ] ) ) {
39            $baseRevId = (int)$params[self::PARAM_BASEREVID];
40        }
41
42        return new RemoveFormRequest( $formId, $baseRevId );
43    }
44
45}