Completed
Push — master ( 3a258b...3917d8 )
by Andreas
13:50
created

imageTransformer   A

Complexity

Total Complexity 20

Size/Duplication

Total Lines 55
Duplicated Lines 0 %

Test Coverage

Coverage 87.88%

Importance

Changes 0
Metric Value
eloc 33
dl 0
loc 55
ccs 29
cts 33
cp 0.8788
rs 10
c 0
b 0
f 0
wmc 20

2 Methods

Rating   Name   Duplication   Size   Complexity  
B transform() 0 27 10
B reverseTransform() 0 24 10
1
<?php
2
/**
3
 * @copyright CONTENT CONTROL GmbH, http://www.contentcontrol-berlin.de
4
 */
5
6
namespace midcom\datamanager\extension\transformer;
7
8
/**
9
 * Image transformer
10
 *
11
 * This handles multiple attachments because of filter chains and such
12
 */
13
class imageTransformer extends attachmentTransformer
14
{
15 25
    public function transform($input)
16
    {
17 25
        if ($input === null) {
18 24
            return [];
19
        }
20
21 22
        $result = ['objects' => []];
22
23 22
        foreach ($input as $key => $value) {
24 1
            if ($key === 'delete' || $key === 'description' || $key == 'title') {
25 1
                $result[$key] = $value;
26
            } else {
27 1
                $result['objects'][$key] = parent::transform($value);
28 1
                if ($key === 'file') {
29
                    $result['identifier'] = $result['objects'][$key]['identifier'];
30
                }
31 1
                if ($key === 'main') {
32 1
                    if (!empty($this->config['widget_config']['show_title'])) {
33 1
                        $result['title'] = $result['objects'][$key]['title'];
34
                    }
35 1
                    if (!empty($this->config['widget_config']['show_description'])) {
36 1
                        $result['description'] = $result['objects'][$key]['description'];
37
                    }
38
                }
39
            }
40
        }
41 22
        return $result;
42
    }
43
44 4
    public function reverseTransform($array)
45
    {
46 4
        if (empty($array)) {
47 1
            return null;
48
        }
49 3
        $result = [];
50 3
        if (   !empty($array['file'])
51 3
            || !empty($array['identifier']) && substr($array['identifier'], 0, 8) === 'tmpfile-') {
52
            $result['file'] = parent::reverseTransform($array);
53 3
        } elseif (!empty($array['objects'])) {
54 1
            foreach ($array['objects'] as $key => $value) {
55 1
                $result[$key] = parent::reverseTransform($value);
56
            }
57
        }
58 3
        if (!empty($array['delete'])) {
59
            $result['delete'] = $array['delete'];
60
        }
61 3
        if (!empty($this->config['widget_config']['show_description'])) {
62
            $result['description'] = $array['description'];
63
        }
64 3
        if (!empty($this->config['widget_config']['show_title'])) {
65 1
            $result['title'] = $array['title'];
66
        }
67 3
        return $result;
68
    }
69
}
70