Completed
Push — master ( 4af1ba...6f7ebd )
by Nate
52s
created

Query::queryRelay()   A

Complexity

Conditions 2
Paths 1

Size

Total Lines 18

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
dl 0
loc 18
ccs 0
cts 17
cp 0
rs 9.6666
c 0
b 0
f 0
cc 2
nc 1
nop 5
crap 6
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 ConnectionInterface $connection
36
     * @param CacheInterface $cache
37
     * @param string $query
38
     * @param LoggerInterface|null $logger
39
     * @param array $config
40
     * @return ResponseInterface
41
     */
42
    public static function query(
43
        ConnectionInterface $connection,
44
        CacheInterface $cache,
45
        string $query,
46
        LoggerInterface $logger = null,
47
        array $config = []
48
    ): ResponseInterface {
49
        return static::queryRelay(
50
            $connection,
51
            $cache,
52
            $query,
53
            $logger,
54
            $config
55
        )();
56
    }
57
58
    /**
59
     * @param ConnectionInterface $connection
60
     * @param CacheInterface $cache
61
     * @param string $query
62
     * @param LoggerInterface|null $logger
63
     * @param array $config
64
     * @return callable
65
     */
66
    public static function queryRelay(
67
        ConnectionInterface $connection,
68
        CacheInterface $cache,
69
        string $query,
70
        LoggerInterface $logger = null,
71
        array $config = []
72
    ): callable {
73
        $builder = new QueryBuilder(
74
            $connection,
75
            $connection,
76
            $cache,
77
            $query,
78
            $logger ?: Salesforce::getLogger(),
79
            $config
80
        );
81
82
        return $builder->build();
83
    }
84
}
85