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

UserMapper   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 53
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 5
c 2
b 0
f 1
lcom 1
cbo 5
dl 0
loc 53
ccs 24
cts 24
cp 1
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A userToObject() 0 7 1
A getNewUserCreateStruct() 0 7 1
A getNewUserUpdateStruct() 0 12 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\User\User;
13
use eZ\Publish\API\Repository\Values\User\UserCreateStruct;
14
use eZ\Publish\API\Repository\Values\User\UserUpdateStruct;
15
use eZ\Publish\Core\Repository\Values\Content\ContentUpdateStruct;
16
use Transfer\EzPlatform\Repository\Values\UserObject;
17
18
/**
19
 * User mapper.
20
 *
21
 * @author Harald Tollefsen <[email protected]>
22
 */
23
class UserMapper
24
{
25
    /**
26
     * @var UserObject
27
     */
28
    public $userObject;
29
30
    /**
31
     * @param UserObject $userObject
32
     */
33 7
    public function __construct(UserObject $userObject)
34
    {
35 7
        $this->userObject = $userObject;
36 7
    }
37
38
    /**
39
     * @param User $user
40
     */
41 1
    public function userToObject(User $user)
42
    {
43 1
        $this->userObject->data['username'] = $user->login;
44 1
        $this->userObject->data['email'] = $user->email;
45 1
        $this->userObject->data['enabled'] = $user->enabled;
46 1
        $this->userObject->data['max_login'] = $user->maxLogin;
47 1
    }
48
49
    /**
50
     * @param UserCreateStruct $userCreateStruct
51
     */
52 2
    public function getNewUserCreateStruct(UserCreateStruct $userCreateStruct)
53
    {
54 2
        $userCreateStruct->enabled = $this->userObject->data['enabled'];
55
56 2
        $fields = array_flip($this->userObject->data['fields']);
57 2
        array_walk($fields, array($userCreateStruct, 'setField'));
58 2
    }
59
60
    /**
61
     * @param UserUpdateStruct $userUpdateStruct
62
     */
63 6
    public function getNewUserUpdateStruct(UserUpdateStruct $userUpdateStruct)
64
    {
65 6
        $userUpdateStruct->email = $this->userObject->data['email'];
66 6
        $userUpdateStruct->maxLogin = $this->userObject->data['max_login'];
67 6
        $userUpdateStruct->enabled = $this->userObject->data['enabled'];
68
69 6
        if (isset($this->userObject->data['fields'])) {
70 6
            $userUpdateStruct->contentUpdateStruct = new ContentUpdateStruct();
71 6
            $fields = array_flip($this->userObject->data['fields']);
72 6
            array_walk($fields, array($userUpdateStruct->contentUpdateStruct, 'setField'));
73 6
        }
74 6
    }
75
}
76