Completed
Push — master ( c3c281...ab94e9 )
by Gabriel
03:37
created

ProductMapper   A

Complexity

Total Complexity 10

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 10
lcom 1
cbo 3
dl 0
loc 35
ccs 0
cts 27
cp 0
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
D map() 0 32 10
1
<?php
2
3
namespace Waredesk\Mappers;
4
5
use Waredesk\Collections\Products\Variants;
6
use Waredesk\Mappers\Product\VariantsMapper;
7
use Waredesk\Models\Product;
8
use DateTime;
9
10
class ProductMapper
11
{
12
    public function map(Product $product, array $data): Product
13
    {
14
        foreach ($data as $key => $value) {
15
            switch ($key) {
16
                case 'id':
17
                    $product->setId((int)$value);
18
                    break;
19
                case 'images':
20
                    $product->setImages($value);
21
                    break;
22
                case 'variants':
23
                    $product->setVariants((new VariantsMapper())->map(new Variants(), $value));
24
                    break;
25
                case 'name':
26
                    $product->setName($value);
27
                    break;
28
                case 'description':
29
                    $product->setDescription($value);
30
                    break;
31
                case 'notes':
32
                    $product->setNotes($value);
33
                    break;
34
                case 'creation_datetime':
35
                    $product->setCreationDatetime(new DateTime($value));
36
                    break;
37
                case 'modification_datetime':
38
                    $product->setModificationDatetime(new DateTime($value));
39
                    break;
40
            }
41
        }
42
        return $product;
43
    }
44
}
45