Completed
Push — master ( 0dfca5...d69489 )
by smiley
01:32
created

HTTPClientTrait::checkParams()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 8
rs 9.4285
c 0
b 0
f 0
cc 2
eloc 4
nc 2
nop 2
1
<?php
2
/**
3
 * Trait HTTPClientTrait
4
 *
5
 * @filesource   HTTPClientTrait.php
6
 * @created      28.01.2018
7
 * @package      chillerlan\HTTP
8
 * @author       smiley <[email protected]>
9
 * @copyright    2018 smiley
10
 * @license      MIT
11
 */
12
13
namespace chillerlan\HTTP;
14
15
trait HTTPClientTrait{
16
17
	/**
18
	 * @var \chillerlan\HTTP\HTTPClientInterface
19
	 */
20
	private $http;
21
22
	/**
23
	 * @param \chillerlan\HTTP\HTTPClientInterface $http
24
	 *
25
	 * @return $this
26
	 */
27
	protected function setHTTPClient(HTTPClientInterface $http){
28
		$this->http = $http;
29
30
		return $this;
31
	}
32
33
	/**
34
	 * @param string      $url
35
	 * @param array|null  $params
36
	 * @param string|null $method
37
	 * @param null        $body
38
	 * @param array|null  $headers
39
	 *
40
	 * @return \chillerlan\HTTP\HTTPResponseInterface
41
	 */
42
	protected function httpRequest(string $url, array $params = null, string $method = null, $body = null, array $headers = null):HTTPResponseInterface{
43
		return $this->http->request($url, $params, $method, $body, $headers);
44
	}
45
46
	/**
47
	 * @param string     $url
48
	 * @param array|null $params
49
	 * @param array|null $headers
50
	 *
51
	 * @return \chillerlan\HTTP\HTTPResponseInterface
52
	 */
53
	protected function httpDELETE(string $url, array $params = null, array $headers = null):HTTPResponseInterface{
54
		return $this->http->request($url, $params, 'DELETE', null, $headers);
55
	}
56
57
	/**
58
	 * @param string     $url
59
	 * @param array|null $params
60
	 * @param array|null $headers
61
	 *
62
	 * @return \chillerlan\HTTP\HTTPResponseInterface
63
	 */
64
	protected function httpGET(string $url, array $params = null, array $headers = null):HTTPResponseInterface{
65
		return $this->http->request($url, $params, 'GET', null, $headers);
66
	}
67
68
	/**
69
	 * @param string     $url
70
	 * @param array|null $params
71
	 * @param null       $body
72
	 * @param array|null $headers
73
	 *
74
	 * @return \chillerlan\HTTP\HTTPResponseInterface
75
	 */
76
	protected function httpPATCH(string $url, array $params = null, $body = null, array $headers = null):HTTPResponseInterface{
77
		return $this->http->request($url, $params, 'PATCH', $body, $headers);
78
	}
79
80
	/**
81
	 * @param string     $url
82
	 * @param array|null $params
83
	 * @param null       $body
84
	 * @param array|null $headers
85
	 *
86
	 * @return \chillerlan\HTTP\HTTPResponseInterface
87
	 */
88
	protected function httpPOST(string $url, array $params = null, $body = null, array $headers = null):HTTPResponseInterface{
89
		return $this->http->request($url, $params, 'POST', $body, $headers);
90
	}
91
92
	/**
93
	 * @param string     $url
94
	 * @param array|null $params
95
	 * @param null       $body
96
	 * @param array|null $headers
97
	 *
98
	 * @return \chillerlan\HTTP\HTTPResponseInterface
99
	 */
100
	protected function httpPUT(string $url, array $params = null, $body = null, array $headers = null):HTTPResponseInterface{
101
		return $this->http->request($url, $params, 'PUT', $body, $headers);
102
	}
103
104
	/**
105
	 * @param array $headers
106
	 *
107
	 * @return array
108
	 */
109
	protected function normalizeRequestHeaders(array $headers):array{
110
		return $this->http->normalizeRequestHeaders($headers);
111
	}
112
113
	/**
114
	 * @param mixed     $params
115
	 * @param bool|null $booleans_as_string
116
	 *
117
	 * @return array
118
	 */
119
	protected function checkQueryParams($params, bool $booleans_as_string = null):array{
120
121
		if(is_array($params)){
122
			return $this->http->checkQueryParams($params, $booleans_as_string);
123
		}
124
125
		return $params;
126
	}
127
128
	/**
129
	 * @param array       $params
130
	 * @param bool|null   $urlencode
131
	 * @param string|null $delimiter
132
	 * @param string|null $enclosure
133
	 *
134
	 * @return string
135
	 */
136
	protected function httpBuildQuery(array $params, bool $urlencode = null, string $delimiter = null, string $enclosure = null):string {
137
		return $this->http->buildQuery($params, $urlencode, $delimiter, $enclosure);
138
	}
139
140
}
141