1 | <?php namespace Arcanedev\NoCaptcha\Utilities; |
||
12 | class Request implements RequestContract |
||
13 | { |
||
14 | /* ----------------------------------------------------------------- |
||
15 | | Properties |
||
16 | | ----------------------------------------------------------------- |
||
17 | */ |
||
18 | |||
19 | /** |
||
20 | * URL to request. |
||
21 | * |
||
22 | * @var string |
||
23 | */ |
||
24 | protected $url; |
||
25 | |||
26 | /* ----------------------------------------------------------------- |
||
27 | | Getters & Setters |
||
28 | | ----------------------------------------------------------------- |
||
29 | */ |
||
30 | |||
31 | /** |
||
32 | * Set URL. |
||
33 | * |
||
34 | * @param string $url |
||
35 | * |
||
36 | * @return self |
||
37 | */ |
||
38 | 20 | protected function setUrl($url) |
|
46 | |||
47 | /* ----------------------------------------------------------------- |
||
48 | | Main Methods |
||
49 | | ----------------------------------------------------------------- |
||
50 | */ |
||
51 | |||
52 | /** |
||
53 | * Create an api request using curl. |
||
54 | * |
||
55 | * @return string |
||
56 | */ |
||
57 | 8 | protected function curl() |
|
70 | |||
71 | /** |
||
72 | * Run the request and get response. |
||
73 | * |
||
74 | * @param string $url |
||
75 | * @param bool $curled |
||
76 | * |
||
77 | * @return string |
||
78 | */ |
||
79 | 20 | public function send($url, $curled = true) |
|
80 | { |
||
81 | 20 | $this->setUrl($url); |
|
82 | |||
83 | 8 | $result = ($this->isCurlExists() && $curled === true) |
|
84 | 8 | ? $this->curl() |
|
85 | 8 | : file_get_contents($this->url); |
|
86 | |||
87 | 8 | return $this->checkResult($result) ? $result : '{}'; |
|
88 | } |
||
89 | |||
90 | /* ----------------------------------------------------------------- |
||
91 | | Check Methods |
||
92 | | ----------------------------------------------------------------- |
||
93 | */ |
||
94 | |||
95 | /** |
||
96 | * Check URL. |
||
97 | * |
||
98 | * @param string $url |
||
99 | * |
||
100 | * @throws \Arcanedev\NoCaptcha\Exceptions\InvalidUrlException |
||
101 | */ |
||
102 | 20 | private function checkUrl(&$url) |
|
117 | |||
118 | /** |
||
119 | * Check if curl exists. |
||
120 | * |
||
121 | * @return bool |
||
122 | */ |
||
123 | 8 | private function isCurlExists() |
|
127 | |||
128 | /** |
||
129 | * Check Result. |
||
130 | * |
||
131 | * @param string $result |
||
132 | * |
||
133 | * @return bool |
||
134 | */ |
||
135 | 8 | private function checkResult($result) |
|
139 | } |
||
140 |