diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 57dc0c3..bc3d0ac 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.33.0" + ".": "0.33.1" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 31a7125..8f69d98 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.33.1 (2026-08-18) + +Full Changelog: [v0.33.0...v0.33.1](https://github.com/moderation-api/sdk-php/compare/v0.33.0...v0.33.1) + +### Chores + +* **internal:** codegen related update ([d83f1db](https://github.com/moderation-api/sdk-php/commit/d83f1dbabc1fa405978638cfeb8715134d724ac0)) + ## 0.33.0 (2026-08-14) Full Changelog: [v0.32.0...v0.33.0](https://github.com/moderation-api/sdk-php/compare/v0.32.0...v0.33.0) diff --git a/README.md b/README.md index 4e9bbdd..3949d45 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ The REST API documentation can be found on [docs.moderationapi.com](https://docs ``` -composer require "moderation-api/sdk-php 0.33.0" +composer require "moderation-api/sdk-php 0.33.1" ``` diff --git a/src/Core/BaseClient.php b/src/Core/BaseClient.php index f138ada..04c1593 100644 --- a/src/Core/BaseClient.php +++ b/src/Core/BaseClient.php @@ -130,10 +130,7 @@ protected function buildRequest( $parsedPath = Util::parsePath($path); /** @var array $mergedQuery */ - $mergedQuery = array_merge_recursive( - $query, - $options->extraQueryParams ?? [] - ); + $mergedQuery = [...$query, ...($options->extraQueryParams ?? [])]; $uri = Util::joinUri($this->baseUrl, path: $parsedPath, query: $mergedQuery)->__toString(); $idempotencyHeaders = $this->idempotencyHeader && !array_key_exists($this->idempotencyHeader, array: $headers) ? [$this->idempotencyHeader => $this->generateIdempotencyKey()] diff --git a/src/Core/Concerns/SdkModel.php b/src/Core/Concerns/SdkModel.php index f4ad4f4..1e78b89 100644 --- a/src/Core/Concerns/SdkModel.php +++ b/src/Core/Concerns/SdkModel.php @@ -97,6 +97,26 @@ public function __get(string $key): mixed return null; } + /** + * @internal + * + * Like {@link __unserialize()}, but for raw API payloads, whose keys are + * API property names rather than PHP property names + * + * @param array $data + */ + public function unserializeFromApiPayload(array $data): void + { + foreach (self::$converter->properties as $name => $info) { + if ($name !== $info->apiName && array_key_exists($info->apiName, array: $data)) { + $data[$name] = $data[$info->apiName]; + unset($data[$info->apiName]); + } + } + + $this->__unserialize($data); + } + /** * @internal * diff --git a/src/Core/Util.php b/src/Core/Util.php index dfacc12..6c47a9c 100644 --- a/src/Core/Util.php +++ b/src/Core/Util.php @@ -207,7 +207,7 @@ public static function joinUri( parse_str($base->getQuery(), $q1); parse_str($parsed['query'] ?? '', $q2); - $mergedQuery = array_merge_recursive($q1, $q2, $query); + $mergedQuery = [...$q1, ...$q2, ...$query]; /** @var array */ $normalizedQuery = self::mapRecursive( diff --git a/src/Version.php b/src/Version.php index ef88dd0..03bf6a8 100644 --- a/src/Version.php +++ b/src/Version.php @@ -5,5 +5,5 @@ namespace ModerationAPI; // x-release-please-start-version -const VERSION = '0.33.0'; +const VERSION = '0.33.1'; // x-release-please-end