Completed
Pull Request — 1.0 (#53)
by Harald
06:56
created

UserGroupMapper::populateUserGroupUpdateStruct()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 10
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 2

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 10
ccs 8
cts 8
cp 1
rs 9.4285
cc 2
eloc 6
nc 2
nop 1
crap 2
1
<?php
2
3
/*
4
 * This file is part of Transfer.
5
 *
6
 * For the full copyright and license information, please view the LICENSE file located
7
 * in the root directory.
8
 */
9
10
namespace Transfer\EzPlatform\Repository\Values\Mapper;
11
12
use eZ\Publish\API\Repository\Values\Content\ContentMetadataUpdateStruct;
13
use eZ\Publish\API\Repository\Values\User\UserGroup;
14
use eZ\Publish\API\Repository\Values\User\UserGroupCreateStruct;
15
use eZ\Publish\API\Repository\Values\User\UserGroupUpdateStruct;
16
use Transfer\EzPlatform\Repository\Values\UserGroupObject;
17
18
/**
19
 * Usergroup mapper.
20
 *
21
 * @author Harald Tollefsen <[email protected]>
22
 */
23
class UserGroupMapper
24
{
25
    /**
26
     * @var UserGroupObject
27
     */
28
    public $userGroupObject;
29
30
    /**
31
     * @param UserGroupObject $userGroupObject
32
     */
33 16
    public function __construct(UserGroupObject $userGroupObject)
34
    {
35 16
        $this->userGroupObject = $userGroupObject;
36 16
    }
37
38 16
    public function userGroupToObject(UserGroup $userGroup)
39
    {
40 16
        $this->userGroupObject->data['parent_id'] = $userGroup->parentId;
41
42 16
        $this->userGroupObject->data['fields'] = [];
43 16
        foreach ($userGroup->getFields() as $field) {
44 16
            $this->userGroupObject->data['fields'][$field->fieldDefIdentifier] = $field->value->text;
45 16
        }
46
47 16
        $this->userGroupObject->setProperty('id', $userGroup->contentInfo->id);
48 16
        $this->userGroupObject->setProperty('content_info', $userGroup->contentInfo);
49 16
        $this->userGroupObject->setProperty('version_info', $userGroup->versionInfo);
50 16
    }
51
52
    /**
53
     * @param UserGroupCreateStruct $userGroupCreateStruct
54
     */
55 16
    public function populateUserGroupCreateStruct(UserGroupCreateStruct $userGroupCreateStruct)
56
    {
57 16
        if (isset($this->userGroupObject->data['remote_id'])) {
58 2
            $userGroupCreateStruct->remoteId = $this->userGroupObject->data['remote_id'];
59 2
        }
60
61 16
        $fields = array_flip($this->userGroupObject->data['fields']);
62 16
        array_walk($fields, array($userGroupCreateStruct, 'setField'));
63 16
    }
64
65
    /**
66
     * @param UserGroupUpdateStruct $userGroupUpdateStruct
67
     */
68 3
    public function populateUserGroupUpdateStruct(UserGroupUpdateStruct $userGroupUpdateStruct)
69
    {
70 3
        if (isset($this->userGroupObject->data['remote_id'])) {
71 2
            $userGroupUpdateStruct->contentMetadataUpdateStruct = new ContentMetadataUpdateStruct();
72 2
            $userGroupUpdateStruct->contentMetadataUpdateStruct->remoteId = $this->userGroupObject->data['remote_id'];
73 2
        }
74
75 3
        $fields = array_flip($this->userGroupObject->data['fields']);
76 3
        array_walk($fields, array($userGroupUpdateStruct->contentUpdateStruct, 'setField'));
77 3
    }
78
}
79