Completed
Push — d64 ( 9e51da...6654da )
by Welling
02:07
created

AbstractClient::createResponseFromData()   A

Complexity

Conditions 4
Paths 2

Size

Total Lines 10
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 4

Importance

Changes 0
Metric Value
cc 4
eloc 6
nc 2
nop 1
dl 0
loc 10
ccs 6
cts 6
cp 1
crap 4
rs 9.2
c 0
b 0
f 0
1
<?php
2
3
namespace Directus\SDK;
4
5
use Directus\SDK\Response\EntryCollection;
6
use Directus\SDK\Response\Entry;
7
use Directus\Util\ArrayUtils;
8
use Directus\Util\StringUtils;
9
10
abstract class AbstractClient implements RequestsInterface
11
{
12
    // @TODO: move to a builder class
13 28
    protected function createResponseFromData($data)
14
    {
15 28
        if (isset($data['rows']) || (isset($data['data']) && ArrayUtils::isNumericKeys($data['data']))) {
16 6
            $response = new EntryCollection($data);
17 6
        } else {
18 22
            $response = new Entry($data);
19
        }
20
21 28
        return $response;
22
    }
23
24
    protected function parseData($tableName, array $data)
25
    {
26
        $method = 'parse' . StringUtils::underscoreToCamelCase($tableName, true);
27
        if (method_exists($this, $method)) {
28
            $data = call_user_func_array([$this, $method], [$data]);
29
        }
30
31
        return $data;
32
    }
33
34
    public function parseDirectusUsers($data)
35
    {
36
        $data = ArrayUtils::omit($data, ['id', 'user', 'access_token', 'last_login', 'last_access', 'last_page']);
37
        if (ArrayUtils::has($data, 'password')) {
38
            // @TODO: use Auth hash password
39
            $data['password'] = password_hash($data['password'], PASSWORD_DEFAULT, ['cost' => 12]);
40
        }
41
42
        return $data;
43
    }
44
}