PHP 8.4 is now required.
Fix double question mark in "forceDownload" URL query string.
The optional custom HTTP User-Agent can now be set via AssetsConfig.
PHP 8.4 is now supported.
Assume Assets is down on HTTP 502 / 503 / 504. Do not assume this on authentication failure.
Add test for AssetsHealth.
Make AssetsHealth::isServiceUnavailableException() public.
Add AssetsHealth class which can be used to integrate with a circuit breaker.
Exception changes: Instead of wrapping them in an AssetsException, throw the original exception (e. g. GuzzleException). (This reverts many changes made in 5.0.3.) Throw an NotAuthorizedAssetsException when API login fails.
Fix PHP warning 'The "Twig\Extension\EscaperExtension::setEscaper()" method is deprecated'.
Fix missing separator in UpdateRequest log message.
Add support for the new "keepUpdate" parameter (available since Assets Server 6.107) in UpdateRequest.
Backward incompatible API changes: AssetsClient::rawServiceRequest() has been removed. AssetsClient::serviceRequest() parameters have been changed ($method is now required), and it returns an HTTP response object instead of an array.
Added an httpResponse property (that contains the raw Guzzle HTTP response object) to all Response objects.
All Request::__invoke() methods now return a Response object. The ones which returned void before return an EmptyResponse.
Added PingRequest.
Updated dependencies: monolog/monolog from 3.2 to 3.6.
Updated dependencies: phpunit/php-timer from 6.0 to 7.0, phpunit/phpunit from 10 to 11, guzzlehttp/guzzle from 7.5 to 7.8.
Check for invalid characters in AssetId::isValid().
Add AssetsUtils::replaceInvalidFilenameCharacters().
Improve error logging in CreateRequest, UpdateRequest.
Fix CreateRequest::$parseMetadataModifications and CreateRequest::$metadataToReturn parameters being ignored. Add support for the CreateRequest::$autoRename parameter.
Fix SearchAssetRequest and UpdateRequest ignoring the $metadataToReturn parameter, always returning all metadata.
Backward incompatible API change: Introducing the AssetId class. Asset IDs must now be passed as an AssetId instance instead of a string, and are returned as AssetId (in AssetResponse).
Added support for some Assets Admin functionality: MetricsRequest, ActiveUsersRequest (private API).
PHP 8.3 is now supported.
Updated dependencies: phpunit/php-timer from 5.0 to 6.0, phpunit/phpunit from 9.5 to 10.
Added RemoveRequest::$async, RemoveByIdRequest::$async parameters and ProcessResponse::$processId return value. Fixed UpdateBulkRequest::$async parameter being ignored.
Exception cleanup: Throw an AssetsException in more cases, get rid of must RuntimeException and GuzzleException instances. Throw more specific BadFunctionCallException instead of RuntimeException when invalid values are passed. Works with both "true" and "false" in the Assets Cluster Property returnStatusOkOnErrorForServicesApi.
Added support for SearchRequest::$returnThumbnailHits, AssetResponse::$thumbnailHits. Added readthedocs.com configuration file.
Rename Composer package from "der-spiegel/ww-elvis-client" to "der-spiegel/ww-assets-client".
PHP 8.2 is now required. Backwards incompatible changes: AssetsClient::getConfig() is now AssetsClient::config, AssetsConfig::getUrl() is AssetsConfig::url. To keep sanitizing parameters, use AssetsConfig::create() instead of new AssetsConfig(). Helper methods like AssetsClient::searchAsset() have been moved into dedicated request classes (Helper namespace). Requests are not executed through AssetsClient anymore, they are now invoked directly. Request classes have been moved into "Api", "Services" and "Helper" namespaces. Requests and responses now use readonly properties instead of getters and setters. CreateRelationRequest::relationType has changed from string to RelationType.
Fixed UsageStatsRecord::details response parsing. Fixed "intToDateTime" response conversion for timestamps divisible by 1,000.
Backwards incompatible change: SearchResponse::getHits() now returns AssetResponseList instead of array. Backwards incompatible change: CheckoutResponse::getCheckedOut() now returns ?DateTimeImmutable instead of int. Added support for PHP 8.2. Added support for the "history" API call with AssetsClient::history(). Added AssetsWebhookType enum.
Refactoring: Use PHP 8 attributes.
Added support for the "promote" API call.
Added first PHPUnit tests. Added first documentation, powered by Sphinx.
Required PHP 8.1. Added support for the "undo checkout" API call. Added Postman configuration for playing with the Assets REST API.
Added logging of request duration. Allowed HEAD requests.
Added helpers AssetsUtils::getQueryTemplate(), AssetsUtils::escapeForElasticsearch().
Allowed disabling SSL certificate verification.
Fixed PHP warning.
Prevented logging of binary responses.
Improved README.
Allowed PHP 8.1.
Changed to log HTTP requests and responses in LogLevel::DEBUG.
Prevented "… must not be accessed before initialization" errors.
Added support for the "browse" call.
Updated dependencies to allow PHP 8.0 and Guzzle 7.3.
Renamed Elvis to Assets (throughout the whole code, including class names) - you need to update your code accordingly!
Allowed PHP 8.0 in composer.json.
Added method SearchResponse::getFacets().
Fixed broken automatic re-login.
Added support for checkout and checkin. Made ElvisClientBase::downloadFileByPath() protected and renamed it.
Added support for "copy asset". Added support for Elvis URL with no slash appended.
Added support for removing relations. Made a few backward incompatible API changes.
Added custom HTTP User-Agent. Fixed ElvisUtils::cleanUpUnchangedMetadataFields(). Fixed ElvisClient::removeFromId().
Removed Monolog dependency.
Improved README.
Initial version, currently in production use at the SPIEGEL Gruppe.