Completed
Push — master ( 553bc5...721b68 )
by
unknown
49:35 queued 26:20
created

visitVersionTranslationInfoAttributes()   B

Complexity

Conditions 5
Paths 6

Size

Total Lines 34
Code Lines 20

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 5
eloc 20
c 1
b 0
f 1
nc 6
nop 3
dl 0
loc 34
rs 8.439
1
<?php
2
3
/**
4
 * This file is part of the eZ Publish Kernel package.
5
 *
6
 * @copyright Copyright (C) eZ Systems AS. All rights reserved.
7
 * @license For full copyright and license information view LICENSE file distributed with this source code.
8
 */
9
namespace eZ\Publish\Core\REST\Server\Output\ValueObjectVisitor;
10
11
use eZ\Publish\Core\REST\Common\Output\ValueObjectVisitor;
12
use eZ\Publish\Core\REST\Common\Output\Generator;
13
use eZ\Publish\Core\REST\Common\Output\Visitor;
14
use eZ\Publish\Core\REST\Server\Values\VersionTranslationInfo as VersionTranslationInfoValue;
15
16
/**
17
 * Version value object visitor.
18
 */
19
class VersionTranslationInfo extends ValueObjectVisitor
20
{
21
    /**
22
     * Visit struct returned by controllers.
23
     *
24
     * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor
25
     * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator
26
     * @param \eZ\Publish\Core\REST\Server\Values\VersionTranslationInfo $data
27
     */
28
    public function visit(Visitor $visitor, Generator $generator, $data)
29
    {
30
        $versionInfo = $data->getVersionInfo();
31
        if (empty($versionInfo->languageCodes)) {
32
            return;
33
        }
34
35
        $generator->startObjectElement('VersionTranslationInfo');
36
        $this->visitVersionTranslationInfoAttributes($visitor, $generator, $data);
37
        $generator->endObjectElement('VersionTranslationInfo');
38
    }
39
40
    protected function visitVersionTranslationInfoAttributes(Visitor $visitor, Generator $generator, VersionTranslationInfoValue $versionTranslationInfo)
0 ignored issues
show
Unused Code introduced by
The parameter $visitor is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
41
    {
42
        $versionInfo = $versionTranslationInfo->getVersionInfo();
43
44
        // single language-independent conditions for deleting Translation
45
        $canDelete = count($versionInfo->languageCodes) >= 2 && $versionInfo->isDraft();
46
47
        $generator->startList('Language');
48
        foreach ($versionInfo->languageCodes as $languageCode) {
49
            $generator->startHashElement('Language');
50
51
            $generator->startValueElement('languageCode', $languageCode);
52
            $generator->endValueElement('languageCode');
53
54
            // check conditions for deleting Translation
55
            if ($canDelete && $languageCode !== $versionInfo->contentInfo->mainLanguageCode) {
56
                $generator->startHashElement('DeleteTranslation');
57
                $path = $this->router->generate(
58
                    'ezpublish_rest_deleteTranslationFromDraft',
59
                    [
60
                        'contentId' => $versionInfo->contentInfo->id,
61
                        'versionNumber' => $versionInfo->versionNo,
62
                        'languageCode' => $languageCode,
63
                    ]
64
                );
65
                $generator->startAttribute('href', $path);
66
                $generator->endAttribute('href');
67
                $generator->endHashElement('DeleteTranslation');
68
            }
69
70
            $generator->endHashElement('Language');
71
        }
72
        $generator->endList('Language');
73
    }
74
}
75