2022-01-29 22:15:01 +00:00
|
|
|
<?php
|
|
|
|
|
|
2022-01-29 22:49:52 +00:00
|
|
|
namespace Appwrite\Extend;
|
2022-01-29 22:15:01 +00:00
|
|
|
|
2022-07-25 22:54:08 +00:00
|
|
|
use Utopia\Config\Config;
|
|
|
|
|
|
2022-01-29 22:15:01 +00:00
|
|
|
class Exception extends \Exception
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* Error Codes
|
2022-05-23 14:54:50 +00:00
|
|
|
*
|
|
|
|
|
* Naming the error types based on the following convention
|
2022-02-01 08:39:07 +00:00
|
|
|
* <ENTITY>_<ERROR_TYPE>
|
2022-05-23 14:54:50 +00:00
|
|
|
*
|
2022-09-21 17:23:36 +00:00
|
|
|
* Appwrite has the following entities:
|
2022-02-07 21:10:36 +00:00
|
|
|
* - General
|
2022-02-01 08:39:07 +00:00
|
|
|
* - Users
|
|
|
|
|
* - Teams
|
|
|
|
|
* - Memberships
|
2022-02-06 21:42:03 +00:00
|
|
|
* - Avatars
|
|
|
|
|
* - Storage
|
2022-02-01 08:39:07 +00:00
|
|
|
* - Functions
|
|
|
|
|
* - Deployments
|
|
|
|
|
* - Executions
|
2022-02-06 21:42:03 +00:00
|
|
|
* - Collections
|
|
|
|
|
* - Documents
|
|
|
|
|
* - Attributes
|
|
|
|
|
* - Indexes
|
|
|
|
|
* - Projects
|
|
|
|
|
* - Webhooks
|
|
|
|
|
* - Keys
|
|
|
|
|
* - Platform
|
|
|
|
|
* - Domain
|
2022-04-26 07:49:36 +00:00
|
|
|
* - GraphQL
|
2023-08-04 16:21:41 +00:00
|
|
|
* - Migrations
|
2022-02-01 08:39:07 +00:00
|
|
|
*/
|
|
|
|
|
|
2022-02-07 21:10:36 +00:00
|
|
|
/** General */
|
2022-06-02 13:03:37 +00:00
|
|
|
public const GENERAL_UNKNOWN = 'general_unknown';
|
|
|
|
|
public const GENERAL_MOCK = 'general_mock';
|
|
|
|
|
public const GENERAL_ACCESS_FORBIDDEN = 'general_access_forbidden';
|
|
|
|
|
public const GENERAL_UNKNOWN_ORIGIN = 'general_unknown_origin';
|
|
|
|
|
public const GENERAL_SERVICE_DISABLED = 'general_service_disabled';
|
|
|
|
|
public const GENERAL_UNAUTHORIZED_SCOPE = 'general_unauthorized_scope';
|
|
|
|
|
public const GENERAL_RATE_LIMIT_EXCEEDED = 'general_rate_limit_exceeded';
|
|
|
|
|
public const GENERAL_SMTP_DISABLED = 'general_smtp_disabled';
|
2022-06-24 10:49:00 +00:00
|
|
|
public const GENERAL_PHONE_DISABLED = 'general_phone_disabled';
|
2022-06-02 13:03:37 +00:00
|
|
|
public const GENERAL_ARGUMENT_INVALID = 'general_argument_invalid';
|
|
|
|
|
public const GENERAL_QUERY_LIMIT_EXCEEDED = 'general_query_limit_exceeded';
|
|
|
|
|
public const GENERAL_QUERY_INVALID = 'general_query_invalid';
|
|
|
|
|
public const GENERAL_ROUTE_NOT_FOUND = 'general_route_not_found';
|
|
|
|
|
public const GENERAL_CURSOR_NOT_FOUND = 'general_cursor_not_found';
|
|
|
|
|
public const GENERAL_SERVER_ERROR = 'general_server_error';
|
2022-08-13 14:24:28 +00:00
|
|
|
public const GENERAL_PROTOCOL_UNSUPPORTED = 'general_protocol_unsupported';
|
2023-01-19 11:56:41 +00:00
|
|
|
public const GENERAL_CODES_DISABLED = 'general_codes_disabled';
|
2023-03-18 16:33:15 +00:00
|
|
|
public const GENERAL_USAGE_DISABLED = 'general_usage_disabled';
|
2023-08-25 15:13:25 +00:00
|
|
|
public const GENERAL_NOT_IMPLEMENTED = 'general_not_implemented';
|
2022-02-07 21:10:36 +00:00
|
|
|
|
2022-02-01 08:39:07 +00:00
|
|
|
/** Users */
|
2022-06-02 13:03:37 +00:00
|
|
|
public const USER_COUNT_EXCEEDED = 'user_count_exceeded';
|
|
|
|
|
public const USER_JWT_INVALID = 'user_jwt_invalid';
|
|
|
|
|
public const USER_ALREADY_EXISTS = 'user_already_exists';
|
|
|
|
|
public const USER_BLOCKED = 'user_blocked';
|
|
|
|
|
public const USER_INVALID_TOKEN = 'user_invalid_token';
|
|
|
|
|
public const USER_PASSWORD_RESET_REQUIRED = 'user_password_reset_required';
|
|
|
|
|
public const USER_EMAIL_NOT_WHITELISTED = 'user_email_not_whitelisted';
|
|
|
|
|
public const USER_IP_NOT_WHITELISTED = 'user_ip_not_whitelisted';
|
2023-01-19 11:56:41 +00:00
|
|
|
public const USER_INVALID_CODE = 'user_invalid_code';
|
2022-06-02 13:03:37 +00:00
|
|
|
public const USER_INVALID_CREDENTIALS = 'user_invalid_credentials';
|
|
|
|
|
public const USER_ANONYMOUS_CONSOLE_PROHIBITED = 'user_anonymous_console_prohibited';
|
|
|
|
|
public const USER_SESSION_ALREADY_EXISTS = 'user_session_already_exists';
|
|
|
|
|
public const USER_NOT_FOUND = 'user_not_found';
|
2022-12-16 10:22:39 +00:00
|
|
|
public const USER_PASSWORD_RECENTLY_USED = 'password_recently_used';
|
2023-04-13 20:20:03 +00:00
|
|
|
public const USER_PASSWORD_PERSONAL_DATA = 'password_personal_data';
|
2022-06-02 13:03:37 +00:00
|
|
|
public const USER_EMAIL_ALREADY_EXISTS = 'user_email_already_exists';
|
|
|
|
|
public const USER_PASSWORD_MISMATCH = 'user_password_mismatch';
|
|
|
|
|
public const USER_SESSION_NOT_FOUND = 'user_session_not_found';
|
2023-05-18 01:11:45 +00:00
|
|
|
public const USER_IDENTITY_NOT_FOUND = 'user_identity_not_found';
|
2022-06-02 13:03:37 +00:00
|
|
|
public const USER_UNAUTHORIZED = 'user_unauthorized';
|
|
|
|
|
public const USER_AUTH_METHOD_UNSUPPORTED = 'user_auth_method_unsupported';
|
2022-06-24 10:49:00 +00:00
|
|
|
public const USER_PHONE_ALREADY_EXISTS = 'user_phone_already_exists';
|
|
|
|
|
public const USER_PHONE_NOT_FOUND = 'user_phone_not_found';
|
2022-08-13 14:44:04 +00:00
|
|
|
public const USER_MISSING_ID = 'user_missing_id';
|
2023-07-15 00:23:17 +00:00
|
|
|
public const USER_OAUTH2_BAD_REQUEST = 'user_oauth2_bad_request';
|
|
|
|
|
public const USER_OAUTH2_UNAUTHORIZED = 'user_oauth2_unauthorized';
|
|
|
|
|
public const USER_OAUTH2_PROVIDER_ERROR = 'user_oauth2_provider_error';
|
2023-09-22 17:23:41 +00:00
|
|
|
public const USER_EMAIL_ALREADY_VERIFIED = 'user_email_alread_verified';
|
|
|
|
|
public const USER_PHONE_ALREADY_VERIFIED = 'user_phone_already_verified';
|
2024-02-11 09:09:32 +00:00
|
|
|
public const USER_DELETION_PROHIBITED = 'user_deletion_prohibited';
|
2022-02-06 12:49:01 +00:00
|
|
|
|
2022-02-06 14:52:21 +00:00
|
|
|
/** Teams */
|
2022-06-02 13:03:37 +00:00
|
|
|
public const TEAM_NOT_FOUND = 'team_not_found';
|
|
|
|
|
public const TEAM_INVITE_ALREADY_EXISTS = 'team_invite_already_exists';
|
|
|
|
|
public const TEAM_INVITE_NOT_FOUND = 'team_invite_not_found';
|
|
|
|
|
public const TEAM_INVALID_SECRET = 'team_invalid_secret';
|
|
|
|
|
public const TEAM_MEMBERSHIP_MISMATCH = 'team_membership_mismatch';
|
|
|
|
|
public const TEAM_INVITE_MISMATCH = 'team_invite_mismatch';
|
2023-07-12 19:03:38 +00:00
|
|
|
public const TEAM_ALREADY_EXISTS = 'team_already_exists';
|
2022-02-06 14:52:21 +00:00
|
|
|
|
|
|
|
|
/** Membership */
|
2022-06-02 13:03:37 +00:00
|
|
|
public const MEMBERSHIP_NOT_FOUND = 'membership_not_found';
|
2022-08-13 14:44:04 +00:00
|
|
|
public const MEMBERSHIP_ALREADY_CONFIRMED = 'membership_already_confirmed';
|
2022-02-06 14:52:21 +00:00
|
|
|
|
2022-02-06 14:10:12 +00:00
|
|
|
/** Avatars */
|
2022-06-02 13:03:37 +00:00
|
|
|
public const AVATAR_SET_NOT_FOUND = 'avatar_set_not_found';
|
|
|
|
|
public const AVATAR_NOT_FOUND = 'avatar_not_found';
|
|
|
|
|
public const AVATAR_IMAGE_NOT_FOUND = 'avatar_image_not_found';
|
|
|
|
|
public const AVATAR_REMOTE_URL_FAILED = 'avatar_remote_url_failed';
|
|
|
|
|
public const AVATAR_ICON_NOT_FOUND = 'avatar_icon_not_found';
|
2022-02-06 14:10:12 +00:00
|
|
|
|
2022-02-06 14:32:28 +00:00
|
|
|
/** Storage */
|
2023-08-22 17:38:43 +00:00
|
|
|
public const STORAGE_FILE_ALREADY_EXISTS = 'storage_file_already_exists';
|
2022-06-02 13:03:37 +00:00
|
|
|
public const STORAGE_FILE_NOT_FOUND = 'storage_file_not_found';
|
|
|
|
|
public const STORAGE_DEVICE_NOT_FOUND = 'storage_device_not_found';
|
|
|
|
|
public const STORAGE_FILE_EMPTY = 'storage_file_empty';
|
|
|
|
|
public const STORAGE_FILE_TYPE_UNSUPPORTED = 'storage_file_type_unsupported';
|
|
|
|
|
public const STORAGE_INVALID_FILE_SIZE = 'storage_invalid_file_size';
|
|
|
|
|
public const STORAGE_INVALID_FILE = 'storage_invalid_file';
|
|
|
|
|
public const STORAGE_BUCKET_ALREADY_EXISTS = 'storage_bucket_already_exists';
|
|
|
|
|
public const STORAGE_BUCKET_NOT_FOUND = 'storage_bucket_not_found';
|
|
|
|
|
public const STORAGE_INVALID_CONTENT_RANGE = 'storage_invalid_content_range';
|
|
|
|
|
public const STORAGE_INVALID_RANGE = 'storage_invalid_range';
|
2023-05-17 18:56:07 +00:00
|
|
|
public const STORAGE_INVALID_APPWRITE_ID = 'storage_invalid_appwrite_id';
|
2022-02-06 14:10:12 +00:00
|
|
|
|
2023-05-22 10:58:13 +00:00
|
|
|
/** VCS */
|
2023-06-28 08:48:10 +00:00
|
|
|
public const INSTALLATION_NOT_FOUND = 'installation_not_found';
|
2023-07-31 06:47:47 +00:00
|
|
|
public const PROVIDER_REPOSITORY_NOT_FOUND = 'provider_repository_not_found';
|
2023-06-28 08:48:10 +00:00
|
|
|
public const REPOSITORY_NOT_FOUND = 'repository_not_found';
|
2023-07-31 06:47:47 +00:00
|
|
|
public const PROVIDER_CONTRIBUTION_CONFLICT = 'provider_contribution_conflict';
|
2023-08-17 13:54:57 +00:00
|
|
|
public const GENERAL_PROVIDER_FAILURE = 'general_provider_failure';
|
2023-05-22 10:58:13 +00:00
|
|
|
|
2022-02-06 16:12:15 +00:00
|
|
|
/** Functions */
|
2022-06-02 13:03:37 +00:00
|
|
|
public const FUNCTION_NOT_FOUND = 'function_not_found';
|
|
|
|
|
public const FUNCTION_RUNTIME_UNSUPPORTED = 'function_runtime_unsupported';
|
2023-03-16 10:07:15 +00:00
|
|
|
public const FUNCTION_ENTRYPOINT_MISSING = 'function_entrypoint_missing';
|
2022-02-06 16:12:15 +00:00
|
|
|
|
|
|
|
|
/** Deployments */
|
2022-06-02 13:03:37 +00:00
|
|
|
public const DEPLOYMENT_NOT_FOUND = 'deployment_not_found';
|
2022-02-06 16:12:15 +00:00
|
|
|
|
2022-02-27 11:57:41 +00:00
|
|
|
/** Builds */
|
2022-06-02 13:03:37 +00:00
|
|
|
public const BUILD_NOT_FOUND = 'build_not_found';
|
|
|
|
|
public const BUILD_NOT_READY = 'build_not_ready';
|
|
|
|
|
public const BUILD_IN_PROGRESS = 'build_in_progress';
|
2022-02-27 11:57:41 +00:00
|
|
|
|
2022-02-06 16:12:15 +00:00
|
|
|
/** Execution */
|
2022-06-02 13:03:37 +00:00
|
|
|
public const EXECUTION_NOT_FOUND = 'execution_not_found';
|
2022-02-06 16:12:15 +00:00
|
|
|
|
2022-06-22 10:51:49 +00:00
|
|
|
/** Databases */
|
2022-08-13 14:44:04 +00:00
|
|
|
public const DATABASE_NOT_FOUND = 'database_not_found';
|
|
|
|
|
public const DATABASE_ALREADY_EXISTS = 'database_already_exists';
|
2023-10-19 02:32:45 +00:00
|
|
|
public const DATABASE_TIMEOUT = 'database_timeout';
|
2022-06-22 10:51:49 +00:00
|
|
|
|
2022-02-06 16:50:48 +00:00
|
|
|
/** Collections */
|
2022-06-02 13:03:37 +00:00
|
|
|
public const COLLECTION_NOT_FOUND = 'collection_not_found';
|
|
|
|
|
public const COLLECTION_ALREADY_EXISTS = 'collection_already_exists';
|
|
|
|
|
public const COLLECTION_LIMIT_EXCEEDED = 'collection_limit_exceeded';
|
2022-05-23 14:54:50 +00:00
|
|
|
|
2022-02-06 21:42:03 +00:00
|
|
|
/** Documents */
|
2022-06-02 13:03:37 +00:00
|
|
|
public const DOCUMENT_NOT_FOUND = 'document_not_found';
|
|
|
|
|
public const DOCUMENT_INVALID_STRUCTURE = 'document_invalid_structure';
|
2023-06-07 01:51:24 +00:00
|
|
|
public const DOCUMENT_MISSING_DATA = 'document_missing_data';
|
2022-06-02 13:03:37 +00:00
|
|
|
public const DOCUMENT_MISSING_PAYLOAD = 'document_missing_payload';
|
|
|
|
|
public const DOCUMENT_ALREADY_EXISTS = 'document_already_exists';
|
2023-01-20 00:36:17 +00:00
|
|
|
public const DOCUMENT_UPDATE_CONFLICT = 'document_update_conflict';
|
2023-04-05 12:54:44 +00:00
|
|
|
public const DOCUMENT_DELETE_RESTRICTED = 'document_delete_restricted';
|
2022-02-06 16:50:48 +00:00
|
|
|
|
|
|
|
|
/** Attribute */
|
2022-06-02 13:03:37 +00:00
|
|
|
public const ATTRIBUTE_NOT_FOUND = 'attribute_not_found';
|
|
|
|
|
public const ATTRIBUTE_UNKNOWN = 'attribute_unknown';
|
|
|
|
|
public const ATTRIBUTE_NOT_AVAILABLE = 'attribute_not_available';
|
|
|
|
|
public const ATTRIBUTE_FORMAT_UNSUPPORTED = 'attribute_format_unsupported';
|
|
|
|
|
public const ATTRIBUTE_DEFAULT_UNSUPPORTED = 'attribute_default_unsupported';
|
|
|
|
|
public const ATTRIBUTE_ALREADY_EXISTS = 'attribute_already_exists';
|
|
|
|
|
public const ATTRIBUTE_LIMIT_EXCEEDED = 'attribute_limit_exceeded';
|
|
|
|
|
public const ATTRIBUTE_VALUE_INVALID = 'attribute_value_invalid';
|
2023-02-26 12:33:18 +00:00
|
|
|
public const ATTRIBUTE_TYPE_INVALID = 'attribute_type_invalid';
|
2022-02-06 16:50:48 +00:00
|
|
|
|
|
|
|
|
/** Indexes */
|
2022-06-02 13:03:37 +00:00
|
|
|
public const INDEX_NOT_FOUND = 'index_not_found';
|
|
|
|
|
public const INDEX_LIMIT_EXCEEDED = 'index_limit_exceeded';
|
|
|
|
|
public const INDEX_ALREADY_EXISTS = 'index_already_exists';
|
2023-06-15 05:28:35 +00:00
|
|
|
public const INDEX_INVALID = 'index_invalid';
|
2022-02-06 16:50:48 +00:00
|
|
|
|
2022-02-06 12:49:01 +00:00
|
|
|
/** Projects */
|
2022-06-02 13:03:37 +00:00
|
|
|
public const PROJECT_NOT_FOUND = 'project_not_found';
|
|
|
|
|
public const PROJECT_UNKNOWN = 'project_unknown';
|
|
|
|
|
public const PROJECT_PROVIDER_DISABLED = 'project_provider_disabled';
|
|
|
|
|
public const PROJECT_PROVIDER_UNSUPPORTED = 'project_provider_unsupported';
|
2023-04-29 07:11:17 +00:00
|
|
|
public const PROJECT_ALREADY_EXISTS = 'project_already_exists';
|
2022-06-02 13:03:37 +00:00
|
|
|
public const PROJECT_INVALID_SUCCESS_URL = 'project_invalid_success_url';
|
|
|
|
|
public const PROJECT_INVALID_FAILURE_URL = 'project_invalid_failure_url';
|
|
|
|
|
public const PROJECT_RESERVED_PROJECT = 'project_reserved_project';
|
2022-06-03 09:09:14 +00:00
|
|
|
public const PROJECT_KEY_EXPIRED = 'project_key_expired';
|
2022-02-06 12:49:01 +00:00
|
|
|
|
2023-05-23 05:09:17 +00:00
|
|
|
public const PROJECT_SMTP_CONFIG_INVALID = 'project_smtp_config_invalid';
|
|
|
|
|
|
2023-05-11 06:52:27 +00:00
|
|
|
public const PROJECT_TEMPLATE_DEFAULT_DELETION = 'project_template_default_deletion';
|
2023-04-19 08:44:22 +00:00
|
|
|
|
2022-02-06 17:11:02 +00:00
|
|
|
/** Webhooks */
|
2022-06-02 13:03:37 +00:00
|
|
|
public const WEBHOOK_NOT_FOUND = 'webhook_not_found';
|
2022-02-06 17:11:02 +00:00
|
|
|
|
2023-02-09 14:27:11 +00:00
|
|
|
/** Router */
|
2023-07-29 16:03:13 +00:00
|
|
|
public const ROUTER_HOST_NOT_FOUND = 'router_host_not_found';
|
2023-08-20 12:14:05 +00:00
|
|
|
public const ROUTER_DOMAIN_NOT_CONFIGURED = 'router_domain_not_configured';
|
2023-02-09 14:27:11 +00:00
|
|
|
|
2023-03-08 18:30:01 +00:00
|
|
|
/** Proxy */
|
2023-07-28 08:27:16 +00:00
|
|
|
public const RULE_RESOURCE_NOT_FOUND = 'rule_resource_not_found';
|
2023-03-08 18:30:01 +00:00
|
|
|
public const RULE_NOT_FOUND = 'rule_not_found';
|
|
|
|
|
public const RULE_ALREADY_EXISTS = 'rule_already_exists';
|
|
|
|
|
public const RULE_VERIFICATION_FAILED = 'rule_verification_failed';
|
|
|
|
|
|
2022-02-06 17:11:02 +00:00
|
|
|
/** Keys */
|
2022-06-02 13:03:37 +00:00
|
|
|
public const KEY_NOT_FOUND = 'key_not_found';
|
2022-02-06 17:11:02 +00:00
|
|
|
|
2022-07-20 07:18:49 +00:00
|
|
|
/** Variables */
|
|
|
|
|
public const VARIABLE_NOT_FOUND = 'variable_not_found';
|
|
|
|
|
public const VARIABLE_ALREADY_EXISTS = 'variable_already_exists';
|
|
|
|
|
|
2022-02-06 17:11:02 +00:00
|
|
|
/** Platform */
|
2022-06-02 13:03:37 +00:00
|
|
|
public const PLATFORM_NOT_FOUND = 'platform_not_found';
|
2022-02-06 17:11:02 +00:00
|
|
|
|
2022-04-26 07:49:36 +00:00
|
|
|
/** GraphqQL */
|
2022-07-11 21:52:00 +00:00
|
|
|
public const GRAPHQL_NO_QUERY = 'graphql_no_query';
|
2022-07-14 03:57:51 +00:00
|
|
|
public const GRAPHQL_TOO_MANY_QUERIES = 'graphql_too_many_queries';
|
2022-02-01 08:39:07 +00:00
|
|
|
|
2023-08-04 16:21:41 +00:00
|
|
|
/** Migrations */
|
|
|
|
|
public const MIGRATION_NOT_FOUND = 'migration_not_found';
|
|
|
|
|
public const MIGRATION_ALREADY_EXISTS = 'migration_already_exists';
|
|
|
|
|
public const MIGRATION_IN_PROGRESS = 'migration_in_progress';
|
2023-10-06 16:02:01 +00:00
|
|
|
public const MIGRATION_PROVIDER_ERROR = 'migration_provider_error';
|
2023-08-04 16:21:41 +00:00
|
|
|
|
2023-10-24 12:32:22 +00:00
|
|
|
/** Realtime */
|
2023-11-16 18:21:09 +00:00
|
|
|
public const REALTIME_MESSAGE_FORMAT_INVALID = 'realtime_message_format_invalid';
|
|
|
|
|
public const REALTIME_TOO_MANY_MESSAGES = 'realtime_too_many_messages';
|
|
|
|
|
public const REALTIME_POLICY_VIOLATION = 'realtime_policy_violation';
|
|
|
|
|
|
|
|
|
|
/** Health */
|
2023-11-17 13:59:57 +00:00
|
|
|
public const QUEUE_SIZE_EXCEEDED = 'queue_size_exceeded';
|
2023-10-24 12:32:22 +00:00
|
|
|
|
|
|
|
|
protected string $type = '';
|
|
|
|
|
protected array $errors = [];
|
2023-11-17 18:34:57 +00:00
|
|
|
protected bool $publish = true;
|
2022-02-01 08:39:07 +00:00
|
|
|
|
2022-08-13 14:44:04 +00:00
|
|
|
public function __construct(string $type = Exception::GENERAL_UNKNOWN, string $message = null, int $code = null, \Throwable $previous = null)
|
2022-01-29 22:15:01 +00:00
|
|
|
{
|
2022-08-14 07:19:19 +00:00
|
|
|
$this->errors = Config::getParam('errors');
|
2022-02-06 21:46:47 +00:00
|
|
|
$this->type = $type;
|
2022-01-29 22:15:01 +00:00
|
|
|
|
2022-08-14 07:19:19 +00:00
|
|
|
if (isset($this->errors[$type])) {
|
|
|
|
|
$this->code = $this->errors[$type]['code'];
|
|
|
|
|
$this->message = $this->errors[$type]['description'];
|
2023-11-17 18:34:57 +00:00
|
|
|
$this->publish = $this->errors[$type]['publish'] ?? true;
|
2022-07-25 22:54:08 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->message = $message ?? $this->message;
|
2022-07-27 13:47:35 +00:00
|
|
|
$this->code = $code ?? $this->code;
|
2022-07-25 22:54:08 +00:00
|
|
|
|
|
|
|
|
parent::__construct($this->message, $this->code, $previous);
|
2022-01-29 22:15:01 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2022-02-08 23:08:23 +00:00
|
|
|
* Get the type of the exception.
|
2022-05-23 14:54:50 +00:00
|
|
|
*
|
2022-01-29 22:15:01 +00:00
|
|
|
* @return string
|
2022-05-23 14:54:50 +00:00
|
|
|
*/
|
2022-02-06 21:46:47 +00:00
|
|
|
public function getType(): string
|
2022-01-29 22:15:01 +00:00
|
|
|
{
|
2022-02-06 21:46:47 +00:00
|
|
|
return $this->type;
|
2022-01-29 22:15:01 +00:00
|
|
|
}
|
2022-02-08 23:08:23 +00:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Set the type of the exception.
|
2022-05-23 14:54:50 +00:00
|
|
|
*
|
2022-02-08 23:08:23 +00:00
|
|
|
* @param string $type
|
2022-05-23 14:54:50 +00:00
|
|
|
*
|
2022-02-08 23:08:23 +00:00
|
|
|
* @return void
|
|
|
|
|
*/
|
|
|
|
|
public function setType(string $type): void
|
|
|
|
|
{
|
|
|
|
|
$this->type = $type;
|
|
|
|
|
}
|
2023-11-16 18:21:09 +00:00
|
|
|
|
|
|
|
|
/**
|
2023-11-17 18:34:57 +00:00
|
|
|
* Check whether the log is publishable for the exception.
|
2023-11-16 18:21:09 +00:00
|
|
|
*
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
2023-11-17 18:34:57 +00:00
|
|
|
public function isPublishable(): bool
|
2023-11-16 18:21:09 +00:00
|
|
|
{
|
2023-11-17 18:34:57 +00:00
|
|
|
return $this->publish;
|
2023-11-16 18:21:09 +00:00
|
|
|
}
|
2022-05-23 14:54:50 +00:00
|
|
|
}
|