Version 1
[yaffs-website] / web / modules / contrib / dropzonejs / src / UploadException.php
diff --git a/web/modules/contrib/dropzonejs/src/UploadException.php b/web/modules/contrib/dropzonejs/src/UploadException.php
new file mode 100644 (file)
index 0000000..b1d3b95
--- /dev/null
@@ -0,0 +1,86 @@
+<?php
+
+namespace Drupal\dropzonejs;
+
+use Symfony\Component\HttpFoundation\JsonResponse;
+
+/**
+ * Class UploadException.
+ */
+class UploadException extends \Exception {
+
+  /**
+   * Error with input stream.
+   */
+  const INPUT_ERROR = 101;
+
+  /**
+   * Error with output stream.
+   */
+  const OUTPUT_ERROR = 102;
+
+  /**
+   * Error moving uploaded file.
+   */
+  const MOVE_ERROR = 103;
+
+  /**
+   * Error with destination folder.
+   */
+  const DESTINATION_FOLDER_ERROR = 104;
+
+  /**
+   * Error with temporary file name.
+   */
+  const FILENAME_ERROR = 105;
+
+  /**
+   * File upload resulted in error.
+   */
+  const FILE_UPLOAD_ERROR = 106;
+
+  /**
+   * Code to error message mapping.
+   *
+   * @var array
+   */
+  public $errorMessages = array(
+    self::INPUT_ERROR => 'Failed to open input stream.',
+    self::OUTPUT_ERROR => 'Failed to open output stream.',
+    self::MOVE_ERROR => 'Failed to move uploaded file.',
+    self::DESTINATION_FOLDER_ERROR => 'Failed to open temporary directory for write.',
+    self::FILENAME_ERROR => 'Invalid temporary file name.',
+    self::FILE_UPLOAD_ERROR => 'The file upload resulted in an error on php level. See http://php.net/manual/en/features.file-upload.errors.php',
+  );
+
+  /**
+   * Constructs UploadException.
+   *
+   * @param int $code
+   *   Error code.
+   * @param string|null $message
+   *   The error message. Defaults to null.
+   */
+  public function __construct($code, $message = NULL) {
+    $this->code = $code;
+    $this->message = isset($message) ? $message : $this->errorMessages[$this->code];
+  }
+
+  /**
+   * Generates and returns JSON response object for the error.
+   *
+   * @return \Symfony\Component\HttpFoundation\JsonResponse
+   *   JSON response object.
+   */
+  public function getErrorResponse() {
+    return new JsonResponse(
+      array(
+        'jsonrpc' => '2.0',
+        'error' => $this->errorMessages[$this->code],
+        'id' => 'id',
+      ),
+      500
+    );
+  }
+
+}