Completed
Push — 2.0 ( 59824a...0c16d7 )
by Peter
05:38
created

RequestConfigurator::getOptions()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
cc 1
eloc 2
nc 1
nop 0
crap 1
1
<?php
2
/**
3
 * AnimeDb package.
4
 *
5
 * @author    Peter Gribanov <[email protected]>
6
 * @copyright Copyright (c) 2011, Peter Gribanov
7
 * @license   http://opensource.org/licenses/GPL-3.0 GPL v3
8
 */
9
namespace AnimeDb\Bundle\AniDbBrowserBundle\Service\Client\Guzzle;
10
11
use GuzzleHttp\RequestOptions;
12
13
class RequestConfigurator
14
{
15
    /**
16
     * @var array
17
     */
18
    protected $options = [];
19
20
    /**
21
     * @param string $app_code
22
     *
23
     * @return RequestConfigurator
24
     */
25 1
    public function setAppCode($app_code)
26
    {
27 1
        $this->options[RequestOptions::HEADERS]['User-Agent'] = $app_code;
28
29 1
        return $this;
30
    }
31
32
    /**
33
     * @param int $timeout
34
     *
35
     * @return RequestConfigurator
36
     */
37 2
    public function setTimeout($timeout)
38
    {
39 2
        $this->options[RequestOptions::TIMEOUT] = $timeout;
40
41 2
        return $this;
42
    }
43
44
    /**
45
     * @param string $proxy
46
     *
47
     * @return RequestConfigurator
48
     */
49 1
    public function setProxy($proxy)
50
    {
51 1
        $this->options[RequestOptions::PROXY] = $proxy;
52
53 1
        return $this;
54
    }
55
56
    /**
57
     * @param string $client
58
     *
59
     * @return RequestConfigurator
60
     */
61 2
    public function setClient($client)
62
    {
63 2
        $this->options[RequestOptions::QUERY]['client'] = $client;
64
65 2
        return $this;
66
    }
67
68
    /**
69
     * @param string $client_version
70
     *
71
     * @return RequestConfigurator
72
     */
73 2
    public function setClientVersion($client_version)
74
    {
75 2
        $this->options[RequestOptions::QUERY]['clientver'] = $client_version;
76
77 2
        return $this;
78
    }
79
80
    /**
81
     * @param string $protocol_version
82
     *
83
     * @return RequestConfigurator
84
     */
85 2
    public function setProtocolVersion($protocol_version)
86
    {
87 2
        $this->options[RequestOptions::QUERY]['protover'] = $protocol_version;
88
89 2
        return $this;
90
    }
91
92
    /**
93
     * @param string $request
94
     * @param array $query
95
     *
96
     * @return RequestConfigurator
97
     */
98 3
    public function withRequest($request, array $query = [])
99
    {
100 3
        $new = clone $this;
101 3
        $new->options['query'] = isset($new->options['query']) ? $new->options['query'] : [];
102 3
        $new->options['query'] = $new->options['query'] + ['request' => $request] + $query;
103
104 3
        return $new;
105
    }
106
107
    /**
108
     * @return array
109
     */
110 9
    public function getOptions()
111
    {
112 9
        return $this->options;
113
    }
114
}
115