diff options
Diffstat (limited to 'vendor/aws/aws-sdk-php/src/S3/Exception/DeleteMultipleObjectsException.php')
-rw-r--r-- | vendor/aws/aws-sdk-php/src/S3/Exception/DeleteMultipleObjectsException.php | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/vendor/aws/aws-sdk-php/src/S3/Exception/DeleteMultipleObjectsException.php b/vendor/aws/aws-sdk-php/src/S3/Exception/DeleteMultipleObjectsException.php new file mode 100644 index 0000000..5b4c289 --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/S3/Exception/DeleteMultipleObjectsException.php @@ -0,0 +1,68 @@ +<?php +namespace Aws\S3\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; + +/** + * Exception thrown when errors occur while deleting objects using a + * {@see S3\BatchDelete} object. + */ +class DeleteMultipleObjectsException extends \Exception implements + MonitoringEventsInterface +{ + use HasMonitoringEventsTrait; + + private $deleted = []; + private $errors = []; + + /** + * @param array $deleted Array of successfully deleted keys + * @param array $errors Array of errors that were encountered + */ + public function __construct(array $deleted, array $errors) + { + $this->deleted = array_values($deleted); + $this->errors = array_values($errors); + parent::__construct('Unable to delete certain keys when executing a' + . ' DeleteMultipleObjects request: ' + . self::createMessageFromErrors($errors)); + } + + /** + * Create a single error message from multiple errors. + * + * @param array $errors Errors encountered + * + * @return string + */ + public static function createMessageFromErrors(array $errors) + { + return "\n- " . implode("\n- ", array_map(function ($key) { + return json_encode($key); + }, $errors)); + } + + /** + * Get the errored objects + * + * @return array Returns an array of associative arrays, each containing + * a 'Code', 'Message', and 'Key' key. + */ + public function getErrors() + { + return $this->errors; + } + + /** + * Get the successfully deleted objects + * + * @return array Returns an array of associative arrays, each containing + * a 'Key' and optionally 'DeleteMarker' and + * 'DeleterMarkerVersionId' + */ + public function getDeleted() + { + return $this->deleted; + } +} |