Completed
Branch scrutinizer (3175f9)
by Arjay
02:35
created

DataTransformer::buildColumnByCollection()   A

Complexity

Conditions 4
Paths 4

Size

Total Lines 13
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 13
rs 9.2
cc 4
eloc 7
nc 4
nop 3
1
<?php
2
3
namespace Yajra\Datatables\Transformers;
4
5
use Illuminate\Support\Collection;
6
7
/**
8
 * Class DataTransformer
9
 *
10
 * @package Yajra\Datatables\Transformers
11
 */
12
class DataTransformer
13
{
14
    /**
15
     * @param array $row
16
     * @param mixed $columns
17
     * @param string $type
18
     * @return array
19
     */
20
    public function transform(array $row, $columns, $type = 'printable')
21
    {
22
        if ($columns instanceof Collection) {
23
            return $this->buildColumnByCollection($row, $columns, $type);
24
        }
25
26
        return array_only($row, $columns);
27
    }
28
29
    /**
30
     * Transform row column by collection.
31
     *
32
     * @param array $row
33
     * @param \Illuminate\Support\Collection $columns
34
     * @param string $type
35
     * @return array
36
     */
37
    protected function buildColumnByCollection(array  $row, Collection $columns, $type = 'printable')
38
    {
39
        $results = [];
40
        foreach ($columns->all() as $column) {
41
            if ($column[$type]) {
42
                $data = array_get($row, $column['data']);
43
44
                $results[$column['title']] = $type == 'exportable' ? strip_tags($data) : $data;
45
            }
46
        }
47
48
        return $results;
49
    }
50
}
51