From bacb9881acffe3ee30b1664bbbaca46206c5c833 Mon Sep 17 00:00:00 2001 From: Clemens Schwaighofer Date: Wed, 6 Nov 2024 14:28:15 +0900 Subject: [PATCH] Fix UrlRequests Interface name, fix header build Header default build was not done well, pass original headers inside and set them. On new default start with empty array. Switch to CoreLibs Json calls, because we use this libarary anyway already --- www/lib/CoreLibs/UrlRequests/Curl.php | 46 +++++++++---------- ...estInterface.php => RequestsInterface.php} | 0 2 files changed, 23 insertions(+), 23 deletions(-) rename www/lib/CoreLibs/UrlRequests/Interface/{RequestInterface.php => RequestsInterface.php} (100%) diff --git a/www/lib/CoreLibs/UrlRequests/Curl.php b/www/lib/CoreLibs/UrlRequests/Curl.php index f9110054..ffc428d7 100644 --- a/www/lib/CoreLibs/UrlRequests/Curl.php +++ b/www/lib/CoreLibs/UrlRequests/Curl.php @@ -18,10 +18,8 @@ declare(strict_types=1); namespace CoreLibs\UrlRequests; -use RuntimeException; use CoreLibs\Convert\Json; -/** @package CoreLibs\UrlRequests */ class Curl implements Interface\RequestsInterface { // all general calls: get/post/put/patch/delete @@ -404,11 +402,11 @@ class Curl implements Interface\RequestsInterface * Authorization * User-Agent * - * @return array + * @param array> $headers already set headers + * @return array> */ - private function buildDefaultHeaders(): array + private function buildDefaultHeaders($headers = []): array { - $headers = []; // add auth header if set if (!empty($this->auth_basic_header)) { $headers['Authorization'] = $this->auth_basic_header; @@ -449,7 +447,7 @@ class Curl implements Interface\RequestsInterface $headers[$key] = $this->config['headers'][$key]; } } - $headers = array_merge($headers, $this->buildDefaultHeaders()); + $headers = $this->buildDefaultHeaders($headers); return $headers; } @@ -481,8 +479,8 @@ class Curl implements Interface\RequestsInterface $this->url = $this->buildQuery($url, $query); $this->headers = $this->convertHeaders($this->buildHeaders($headers)); if (!in_array($type, self::VALID_REQUEST_TYPES)) { - throw new RuntimeException( - json_encode([ + throw new \RuntimeException( + Json::jsonConvertArrayTo([ 'status' => 'ERROR', 'code' => 'R002', 'type' => 'InvalidRequestType', @@ -492,7 +490,7 @@ class Curl implements Interface\RequestsInterface 'url' => $this->url, 'headers' => $this->headers, ], - ]) ?: '', + ]), 0, ); } @@ -544,8 +542,8 @@ class Curl implements Interface\RequestsInterface return $handle; } // throw Error here with all codes - throw new RuntimeException( - json_encode([ + throw new \RuntimeException( + Json::jsonConvertArrayTo([ 'status' => 'FAILURE', 'code' => 'C001', 'type' => 'CurlInitError', @@ -553,7 +551,7 @@ class Curl implements Interface\RequestsInterface 'context' => [ 'url' => $url, ], - ]) ?: '', + ]), 0, ); } @@ -591,11 +589,13 @@ class Curl implements Interface\RequestsInterface $timeout_requires_no_signal = false; // if we have a timeout signal if (!empty($this->config['timeout'])) { - $timeout_requires_no_signal |= $this->config['timeout'] < 1; + $timeout_requires_no_signal = $timeout_requires_no_signal || + $this->config['timeout'] < 1; curl_setopt($handle, CURLOPT_TIMEOUT_MS, $this->config['timeout'] * 1000); } if (!empty($this->config['connection_timeout'])) { - $timeout_requires_no_signal |= $this->config['connection_timeout'] < 1; + $timeout_requires_no_signal = $timeout_requires_no_signal || + $this->config['connection_timeout'] < 1; curl_setopt($handle, CURLOPT_CONNECTTIMEOUT_MS, $this->config['connection_timeout'] * 1000); } if ($timeout_requires_no_signal && strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') { @@ -665,8 +665,8 @@ class Curl implements Interface\RequestsInterface } // throw an error like in the normal reqeust, but set to CURL error - throw new RuntimeException( - json_encode([ + throw new \RuntimeException( + Json::jsonConvertArrayTo([ 'status' => 'FAILURE', 'code' => 'C002', 'type' => 'CurlExecError', @@ -676,7 +676,7 @@ class Curl implements Interface\RequestsInterface 'errno' => $errno, 'message' => $message, ], - ]) ?: '', + ]), $errno ); } @@ -708,8 +708,8 @@ class Curl implements Interface\RequestsInterface // set curl error number $err = curl_errno($handle); // throw Error here with all codes - throw new RuntimeException( - json_encode([ + throw new \RuntimeException( + Json::jsonConvertArrayTo([ 'status' => 'ERROR', 'code' => 'H' . (string)$http_response, 'type' => $http_response < 500 ? 'ClientError' : 'ServerError', @@ -717,13 +717,13 @@ class Curl implements Interface\RequestsInterface 'context' => [ 'http_response' => $http_response, // extract all the error content if returned - 'result' => json_decode((string)$http_result, true), + 'result' => Json::jsonConvertToArray($http_result), // curl internal error number 'curl_errno' => $err, // the full curl info block 'curl_info' => curl_getinfo($handle), ], - ]) ?: '', + ]), $err ); } @@ -766,7 +766,7 @@ class Curl implements Interface\RequestsInterface if (array_key_exists($_key, $return_headers)) { // raise exception if key already exists throw new \UnexpectedValueException( - json_encode([ + Json::jsonConvertArrayTo([ 'status' => 'ERROR', 'code' => 'R001', 'type' => 'DuplicatedArrayKey', @@ -776,7 +776,7 @@ class Curl implements Interface\RequestsInterface 'headers' => $headers, 'return_headers' => $return_headers, ], - ]) ?: '', + ]), 1 ); } diff --git a/www/lib/CoreLibs/UrlRequests/Interface/RequestInterface.php b/www/lib/CoreLibs/UrlRequests/Interface/RequestsInterface.php similarity index 100% rename from www/lib/CoreLibs/UrlRequests/Interface/RequestInterface.php rename to www/lib/CoreLibs/UrlRequests/Interface/RequestsInterface.php