Query::queryRelay()   A
last analyzed

Complexity

Conditions 4
Paths 2

Size

Total Lines 20

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 20

Importance

Changes 0
Metric Value
dl 0
loc 20
ccs 0
cts 18
cp 0
rs 9.6
c 0
b 0
f 0
cc 4
nc 2
nop 5
crap 20
1
<?php
2
3
/**
4
 * @copyright  Copyright (c) Flipbox Digital Limited
5
 * @license    https://github.com/flipbox/salesforce/blob/master/LICENSE.md
6
 * @link       https://github.com/flipbox/salesforce
7
 */
8
9
namespace Flipbox\Salesforce\Resources;
10
11
use Flipbox\Relay\Salesforce\Builder\Resources\Query as QueryBuilder;
12
use Flipbox\Salesforce\Connections\ConnectionInterface;
13
use Flipbox\Salesforce\Salesforce;
14
use Psr\Http\Message\ResponseInterface;
15
use Psr\Log\LoggerInterface;
16
use Psr\SimpleCache\CacheInterface;
17
18
/**
19
 * @author Flipbox Factory <[email protected]>
20
 * @since 3.0.0
21
 */
22
class Query
23
{
24
    /**
25
     * The resource name
26
     */
27
    const SALESFORCE_RESOURCE = 'query';
28
29
30
    /*******************************************
31
     * QUERY
32
     *******************************************/
33
34
    /**
35
     * @param string $query
36
     * @param ConnectionInterface|null $connection
37
     * @param CacheInterface|null $cache
38
     * @param LoggerInterface|null $logger
39
     * @param array $config
40
     * @return ResponseInterface
41
     */
42
    public static function query(
43
        string $query,
44
        ConnectionInterface $connection = null,
45
        CacheInterface $cache = null,
46
        LoggerInterface $logger = null,
47
        array $config = []
48
    ): ResponseInterface {
49
        return static::queryRelay(
50
            $query,
51
            $connection,
52
            $cache,
53
            $logger,
54
            $config
55
        )();
56
    }
57
58
    /**
59
     * @param string $query
60
     * @param ConnectionInterface $connection
61
     * @param CacheInterface $cache
62
     * @param LoggerInterface|null $logger
63
     * @param array $config
64
     * @return callable
65
     */
66
    public static function queryRelay(
67
        string $query,
68
        ConnectionInterface $connection = null,
69
        CacheInterface $cache = null,
70
        LoggerInterface $logger = null,
71
        array $config = []
72
    ): callable {
73
        $connection = $connection ?: Salesforce::getConnection();
74
75
        $builder = new QueryBuilder(
76
            $connection,
77
            $connection,
78
            $cache ?: Salesforce::getCache(),
79
            $query,
80
            $logger ?: Salesforce::getLogger(),
81
            $config
82
        );
83
84
        return $builder->build();
85
    }
86
}
87