/** * @param \Nomadez\SDK\Request $request * * @return \Nomadez\SDK\Response * @author Andreas Glaser */ public function sendRequest(Request $request) { $headers = $this->config['headers']; if ($this->apiKey) { $headers[$this->config['api.key.header']] = $this->apiKey; } $headers = array_replace_recursive($headers, $request->getHeaders()); try { $data = ['method' => $request->getMethod(), 'url' => $this->config['api.url'] . $request->getUri() . '.json', 'options' => ['headers' => $headers, 'timeout' => $this->config['client.timeout'], 'connect_timeout' => $this->config['client.connect_timeout'], 'allow_redirects' => true, 'body' => null]]; if (!ValueHelper::isEmpty($request->getPayload())) { $data['options']['body'] = json_encode($request->getPayload()); } $this->log(LogLevel::DEBUG, $data); $response = $this->guzzleHttpClient->request($data['method'], $data['url'], $data['options']); } catch (GuzzleException\ServerException $e) { $response = $e->getResponse(); } catch (GuzzleException\ClientException $e) { $response = $e->getResponse(); } $bodyRaw = $response->getBody()->getContents(); $bodyDecoded = json_decode($bodyRaw); $log = ['statusCode' => $response->getStatusCode(), 'body' => $bodyDecoded, 'bodyRaw' => $bodyRaw]; $this->log(LogLevel::DEBUG, $log); return new Response($response->getStatusCode(), $bodyRaw, $response->getHeaders()); }
/** * @author Andreas Glaser */ public function testIsEmpty() { $this->assertTrue(ValueHelper::isEmpty('')); $this->assertTrue(ValueHelper::isEmpty('0')); $this->assertTrue(ValueHelper::isEmpty(0)); $this->assertTrue(ValueHelper::isEmpty(0.0)); $this->assertTrue(ValueHelper::isEmpty(null)); $this->assertTrue(ValueHelper::isEmpty(false)); $this->assertTrue(ValueHelper::isEmpty([])); $this->assertFalse(ValueHelper::isEmpty(' ')); $this->assertFalse(ValueHelper::isEmpty('1')); $this->assertFalse(ValueHelper::isEmpty(1)); $this->assertFalse(ValueHelper::isEmpty(0.1)); $this->assertFalse(ValueHelper::isEmpty(true)); $this->assertFalse(ValueHelper::isEmpty([0])); }