init
This commit is contained in:
+14
@@ -0,0 +1,14 @@
|
||||
<?php declare(strict_types = 1);
|
||||
|
||||
namespace MailPoet\Automation\Engine\Exceptions;
|
||||
|
||||
if (!defined('ABSPATH')) exit;
|
||||
|
||||
|
||||
/**
|
||||
* USE: When an action is forbidden for given actor (although generally valid).
|
||||
* API: 403 Forbidden
|
||||
*/
|
||||
class AccessDeniedException extends UnexpectedValueException {
|
||||
protected $statusCode = 403;
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php declare(strict_types = 1);
|
||||
|
||||
namespace MailPoet\Automation\Engine\Exceptions;
|
||||
|
||||
if (!defined('ABSPATH')) exit;
|
||||
|
||||
|
||||
/**
|
||||
* USE: When the main action produces conflict (i.e. duplicate key).
|
||||
* API: 409 Conflict
|
||||
*/
|
||||
class ConflictException extends UnexpectedValueException {
|
||||
protected $statusCode = 409;
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
<?php declare(strict_types = 1);
|
||||
|
||||
namespace MailPoet\Automation\Engine\Exceptions;
|
||||
|
||||
if (!defined('ABSPATH')) exit;
|
||||
|
||||
|
||||
use Exception as PhpException;
|
||||
use MailPoet\API\REST\Exception as RestException;
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* Frames all MailPoet Automation exceptions ("$e instanceof MailPoet\Automation\Exception").
|
||||
*/
|
||||
abstract class Exception extends PhpException implements RestException {
|
||||
/** @var int */
|
||||
protected $statusCode = 500;
|
||||
|
||||
/** @var string */
|
||||
protected $errorCode;
|
||||
|
||||
/** @var string[] */
|
||||
protected $errors = [];
|
||||
|
||||
final public function __construct(
|
||||
string $message = null,
|
||||
string $errorCode = null,
|
||||
Throwable $previous = null
|
||||
) {
|
||||
parent::__construct($message ?? __('Unknown error.', 'mailpoet'), 0, $previous);
|
||||
$this->errorCode = $errorCode ?? 'mailpoet_automation_unknown_error';
|
||||
}
|
||||
|
||||
/** @return static */
|
||||
public static function create(Throwable $previous = null) {
|
||||
return new static(null, null, $previous);
|
||||
}
|
||||
|
||||
/** @return static */
|
||||
public function withStatusCode(int $statusCode) {
|
||||
$this->statusCode = $statusCode;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/** @return static */
|
||||
public function withError(string $id, string $error) {
|
||||
$this->errors[$id] = $error;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/** @return static */
|
||||
public function withErrorCode(string $errorCode) {
|
||||
$this->errorCode = $errorCode;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/** @return static */
|
||||
public function withMessage(string $message) {
|
||||
$this->message = $message;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/** @return static */
|
||||
public function withErrors(array $errors) {
|
||||
$this->errors = $errors;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getStatusCode(): int {
|
||||
return $this->statusCode;
|
||||
}
|
||||
|
||||
public function getErrorCode(): string {
|
||||
return $this->errorCode;
|
||||
}
|
||||
|
||||
public function getErrors(): array {
|
||||
return $this->errors;
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
<?php declare(strict_types = 1);
|
||||
|
||||
namespace MailPoet\Automation\Engine\Exceptions;
|
||||
|
||||
if (!defined('ABSPATH')) exit;
|
||||
|
||||
|
||||
/**
|
||||
* USE: An application state that should not occur. Can be subclassed for feature-specific exceptions.
|
||||
* API: 500 Server Error
|
||||
*/
|
||||
class InvalidStateException extends RuntimeException {
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php declare(strict_types = 1);
|
||||
|
||||
namespace MailPoet\Automation\Engine\Exceptions;
|
||||
|
||||
if (!defined('ABSPATH')) exit;
|
||||
|
||||
|
||||
/**
|
||||
* USE: When the main resource we're interested in doesn't exist.
|
||||
* API: 404 Not Found
|
||||
*/
|
||||
class NotFoundException extends UnexpectedValueException {
|
||||
protected $statusCode = 404;
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php declare(strict_types = 1);
|
||||
|
||||
namespace MailPoet\Automation\Engine\Exceptions;
|
||||
|
||||
if (!defined('ABSPATH')) exit;
|
||||
|
||||
|
||||
/**
|
||||
* USE: Generic runtime error. When possible, use a more specific exception instead.
|
||||
* API: 500 Server Error
|
||||
*/
|
||||
class RuntimeException extends Exception {
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
<?php declare(strict_types = 1);
|
||||
|
||||
namespace MailPoet\Automation\Engine\Exceptions;
|
||||
|
||||
if (!defined('ABSPATH')) exit;
|
||||
|
||||
|
||||
/**
|
||||
* USE: When wrong data VALUE is received.
|
||||
* API: 400 Bad Request
|
||||
*/
|
||||
class UnexpectedValueException extends RuntimeException {
|
||||
protected $statusCode = 400;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
<?php
|
||||
Reference in New Issue
Block a user