Code Duplication    Length = 21-25 lines in 2 locations

eZ/Publish/Core/REST/Client/Input/Parser/UserRefList.php 1 location

@@ 31-51 (lines=21) @@
28
     *
29
     * @return \eZ\Publish\API\Repository\Values\User\Role[]
30
     */
31
    public function parse(array $data, ParsingDispatcher $parsingDispatcher)
32
    {
33
        if (!array_key_exists('User', $data) || !is_array($data['User'])) {
34
            throw new Exceptions\Parser("Missing 'User' element in UserRefList.");
35
        }
36
37
        // workaround for list with 1 items parsed as non arrays
38
        if (!isset($data['User'][0])) {
39
            $data['User'] = array($data['User']);
40
        }
41
42
        $userRefList = array();
43
        foreach ($data['User'] as $userRefData) {
44
            $hrefData = $this->requestParser->parse($userRefData['_href']);
45
            if (!isset($hrefData['userId'])) {
46
                throw new Exceptions\Parser("Invalid application/vnd.ez.api.User href");
47
            }
48
            $userRefList[] = $hrefData['userId'];
49
        }
50
        return $userRefList;
51
    }
52
}
53

eZ/Publish/Core/REST/Common/Input/ParserTools.php 1 location

@@ 188-212 (lines=25) @@
185
     *
186
     * @return \eZ\Publish\API\Repository\Values\User\Limitation
187
     */
188
    public function parseLimitation(array $limitation)
189
    {
190
        if (!array_key_exists('_identifier', $limitation)) {
191
            throw new Exceptions\Parser("Missing '_identifier' attribute for Limitation.");
192
        }
193
194
        $limitationObject = $this->getLimitationByIdentifier($limitation['_identifier']);
195
196
        if (!isset($limitation['values']['ref']) || !is_array($limitation['values']['ref'])) {
197
            throw new Exceptions\Parser('Invalid format for limitation values in Limitation.');
198
        }
199
200
        $limitationValues = [];
201
        foreach ($limitation['values']['ref'] as $limitationValue) {
202
            if (!array_key_exists('_href', $limitationValue)) {
203
                throw new Exceptions\Parser('Invalid format for limitation values in Limitation.');
204
            }
205
206
            $limitationValues[] = $limitationValue['_href'];
207
        }
208
209
        $limitationObject->limitationValues = $limitationValues;
210
211
        return $limitationObject;
212
    }
213
214
    /**
215
     * Instantiates Limitation object based on identifier.