Code Duplication    Length = 22-24 lines in 2 locations

eZ/Publish/Core/REST/Server/Input/Parser/Limitation/LimitationParser.php 1 location

@@ 53-74 (lines=22) @@
50
     *
51
     * @return \eZ\Publish\API\Repository\Values\ValueObject
52
     */
53
    public function parse(array $data, ParsingDispatcher $parsingDispatcher)
54
    {
55
        if (!array_key_exists('_identifier', $data)) {
56
            throw new Exceptions\Parser("Missing '_identifier' attribute for Limitation.");
57
        }
58
59
        $limitationObject = $this->buildLimitation();
60
61
        if (!isset($data['values']['ref']) || !is_array($data['values']['ref'])) {
62
            throw new Exceptions\Parser('Invalid format for data values in Limitation.');
63
        }
64
65
        foreach ($data['values']['ref'] as $limitationValue) {
66
            if (!array_key_exists('_href', $limitationValue)) {
67
                throw new Exceptions\Parser('Invalid format for data values in Limitation.');
68
            }
69
70
            $limitationObject->limitationValues[] = $this->parseIdFromHref($limitationValue);
71
        }
72
73
        return $limitationObject;
74
    }
75
76
    /**
77
     * @return \eZ\Publish\API\Repository\Values\User\Limitation

eZ/Publish/Core/REST/Server/Input/Parser/PolicyUpdate.php 1 location

@@ 58-81 (lines=24) @@
55
     *
56
     * @return \eZ\Publish\API\Repository\Values\User\PolicyUpdateStruct
57
     */
58
    public function parse(array $data, ParsingDispatcher $parsingDispatcher)
59
    {
60
        $policyUpdate = $this->roleService->newPolicyUpdateStruct();
61
62
        // @todo XSD says that limitations field is mandatory, but
63
        // it needs to be possible to remove limitations from policy
64
        if (array_key_exists('limitations', $data)) {
65
            if (!is_array($data['limitations'])) {
66
                throw new Exceptions\Parser("Invalid format for 'limitations' in PolicyUpdate.");
67
            }
68
69
            if (!isset($data['limitations']['limitation']) || !is_array($data['limitations']['limitation'])) {
70
                throw new Exceptions\Parser("Invalid format for 'limitations' in PolicyUpdate.");
71
            }
72
73
            foreach ($data['limitations']['limitation'] as $limitationData) {
74
                $policyUpdate->addLimitation(
75
                    $this->parserTools->parseLimitation($limitationData)
76
                );
77
            }
78
        }
79
80
        return $policyUpdate;
81
    }
82
}
83