This commit is contained in:
emmymayo
2025-02-05 23:15:46 +01:00
commit 7269c99357
16995 changed files with 3389680 additions and 0 deletions
@@ -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;
}
}
@@ -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 {
}
@@ -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