Completed
Push — master ( 909b9e...ebc878 )
by Gilmar
21:39
created

Item   A

Complexity

Total Complexity 10

Size/Duplication

Total Lines 80
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 73.91%

Importance

Changes 6
Bugs 1 Features 0
Metric Value
wmc 10
c 6
b 1
f 0
lcom 1
cbo 1
dl 0
loc 80
ccs 17
cts 23
cp 0.7391
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A getSchema() 0 21 1
A setUp() 0 4 1
B beforeConstruct() 0 26 6
A toArray() 0 10 2
1
<?php
2
3
/*
4
 * This file is part of gpupo/netshoes-sdk
5
 * Created by Gilmar Pupo <[email protected]>
6
 * For the full copyright and license information, please view the LICENSE
7
 * file that was distributed with this source code.
8
 * For more information, see <http://www.g1mr.com/>.
9
 */
10
11
namespace Gpupo\NetshoesSdk\Entity\Product\Sku;
12
13
use Gpupo\CommonSdk\Entity\EntityAbstract;
14
use Gpupo\CommonSdk\Entity\EntityInterface;
15
16
class Item extends EntityAbstract implements EntityInterface
17
{
18
    protected $primaryKey = 'sku';
19
20
    protected $exclude = ['price','priceSchedule','stock'];
21
22 7
    public function getSchema()
23
    {
24
        return  [
25 7
            'sku'           => 'string',
26
            'name'          => 'string',
27
            'description'   => 'string',
28
            'color'         => 'string',
29
            'size'          => 'string',
30
            'gender'        => 'string',
31
            'eanIsbn'       => 'string',
32
            'images'        => 'object',
33
            'video'         => 'string',
34
            'height'        => 'string',
35
            'width'         => 'string',
36
            'depth'         => 'string',
37
            'weight'        => 'string',
38
            'price'         => 'object',
39
            'priceSchedule' => 'object',
40
            'stock'         => 'object',
41
        ];
42
    }
43
44
    /**
45
     * {@inheritdoc}
46
     */
47 7
    protected function setUp()
48
    {
49 7
        $this->setOptionalSchema($this->exclude);
50 7
    }
51
52
    /**
53
     * {@inheritdoc}
54
     */
55 7
    protected function beforeConstruct($data = null)
56
    {
57 7
        if (empty($data)) {
58
            return;
59
        }
60
61 7
        if (is_array($data)) {
62
63 7
            if (array_key_exists('stock', $data)) {
64
                $data['stock'] = ['available' => $data['stock']];
65
            }
66
67 7
            if (array_key_exists('listPrice', $data)) {
68
                $data['price'] = ['price' => $data['listPrice']];
69
                unset($data['listPrice']);
70
            }
71
72 7
            if (array_key_exists('sellPrice', $data)) {
73
                $data['priceSchedule'] = ['priceTo' => $data['sellPrice']];
74
                unset($data['sellPrice']);
75
            }
76
77
        }
78
79 7
        return $data;
80
    }
81
82
    /**
83
     * {@inheritdoc}
84
     */
85 2
    public function toArray()
86
    {
87 2
        $a = parent::toArray();
88
89 2
        foreach($this->exclude as $k) {
90 2
            unset($a[$k]);
91
        }
92
93 2
        return $a;
94
    }
95
}
96