PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.34.2
MailPoet – Newsletters, Email Marketing, and Automation v5.34.2
5.34.2 5.34.1 5.34.0 5.33.1 5.33.0 5.32.0 5.31.0 5.30.0 5.29.0 5.28.1 5.28.0 5.27.0 5.26.0 5.26.1 5.25.0 5.24.0 4.43.0 4.43.1 4.44.0 4.44.1 4.45.0 4.46.0 4.47.0 4.48.0 4.48.1 4.48.2 4.49.0 4.49.1 4.5.0 4.5.1 4.5.2 4.50.0 4.50.1 4.51.0 4.51.1 4.51.2 4.52.0 4.53.0 4.54.0 4.55.0 4.56.0 4.57.0 4.58.0 4.58.1 4.58.2 4.6.0 4.6.1 4.6.2 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 5.0.0 5.0.1 5.0.2 5.1.0 5.1.1 5.10.0 5.10.1 5.11.0 5.12.0 5.12.1 5.12.10 5.12.11 5.12.12 5.12.13 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13.0 5.13.1 5.13.2 5.14.0 5.14.1 5.14.2 5.14.3 5.15.0 5.15.1 5.16.0 5.16.1 5.16.2 5.16.3 5.16.4 5.17.0 5.17.1 5.17.2 5.17.3 5.17.4 5.17.5 5.17.6 5.18.0 5.19.0 5.2.0 5.2.1 5.2.2 5.2.3 5.20.0 5.21.0 5.21.1 5.21.2 5.21.3 5.22.0 5.22.1 5.22.2 5.22.3 5.22.4 5.23.0 5.23.1 5.23.2 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.6.3 5.6.4 5.7.0 5.7.1 5.8.0 5.8.1 5.9.0 3.0.0-beta.15 3.7.1 3.0.0-beta.16 3.7.2 3.0.0-beta.17 3.7.3 3.0.0-beta.18 3.7.4 3.0.0-beta.19 3.7.5 3.0.0-beta.2 3.7.6 3.0.0-beta.20 3.7.8 3.0.0-beta.21 3.70.0 3.0.0-beta.22 3.71.0 3.0.0-beta.23 3.71.1 3.0.0-beta.23.1 3.71.2 3.0.0-beta.23.2 3.71.3 3.0.0-beta.24 3.72.0 3.0.0-beta.25 3.73.0 3.0.0-beta.26 3.73.1 3.0.0-beta.27 3.73.2 3.0.0-beta.28 3.74.0 3.0.0-beta.29 3.74.1 3.0.0-beta.3 3.74.2 3.0.0-beta.30 3.74.3 3.0.0-beta.31 3.75.0 3.0.0-beta.32 3.75.1 3.0.0-beta.33 3.76.0 3.0.0-beta.33.1 3.77.0 3.0.0-beta.34.0.0 3.77.1 3.0.0-beta.36.0.0 3.78.0 3.0.0-beta.36.0.1 3.79.0 3.0.0-beta.36.2.0 3.8 3.0.0-beta.36.3.0 3.8.1 3.0.0-beta.36.3.1 3.8.2 3.0.0-beta.37.0.0 3.8.3 3.0.0-beta.4 3.8.4 3.0.0-beta.5 3.8.5 3.0.0-beta.6 3.8.6 3.0.0-beta.7 3.80.0 3.0.0-beta.7.1 3.81.0 3.0.0-beta.8 3.82.0 3.0.0-beta.9 3.83.0 3.0.0-rc.1.0.0 3.84.0 3.0.0-rc.1.0.1 3.84.1 3.0.0-rc.1.0.2 3.85.0 3.0.0-rc.1.0.3 3.85.1 3.0.0-rc.1.0.4 3.86.0 3.0.0-rc.2.0.0 3.87.0 3.0.0-rc.2.0.1 3.87.1 3.0.0-rc.2.0.2 3.87.2 3.0.0-rc.2.0.3 3.88.0 3.0.1 3.88.1 3.0.2 3.88.2 3.0.3 3.89.0 3.0.4 3.89.1 3.0.5 3.89.2 3.0.6 3.89.3 3.0.7 3.89.4 3.0.8 3.9.0 3.0.9 3.9.1 3.1.0 3.90.0 3.10 3.90.1 3.10.1 3.90.2 3.100.0 3.91.0 3.100.1 3.91.1 3.100.2 3.92.0 3.101.0 3.92.1 3.101.1 3.93.0 3.102.0 3.93.1 3.102.1 3.94.0 3.103.0 3.95.0 3.103.1 3.95.1 3.11.0 3.96.0 3.11.1 3.96.1 3.11.2 3.97.0 3.11.3 3.98.0 3.11.4 3.98.1 3.11.5 3.99.0 3.12.0 3.99.1 3.12.1 4.0.0 3.13.0 4.0.1 3.14.0 4.1.0 3.14.1 4.1.1 3.15.0 4.10.0 3.16.0 4.11.0 3.16.1 4.11.1 3.16.2 4.12.0 3.16.3 4.12.1 3.17.0 4.12.2 3.17.1 4.13.0 3.17.2 4.14.0 3.18.0 4.15.0 3.18.1 4.16.0 3.18.2 4.17.0 3.19.0 4.17.1 3.19.1 4.18.0 3.19.2 4.18.1 3.19.3 4.19.0 3.2.0 4.2.0 3.2.1 4.20.0 3.2.2 4.20.1 3.2.3 4.20.2 3.2.4 4.21.0 3.2.5 4.22.0 3.20.0 4.22.1 3.21.0 4.22.2 3.21.1 4.23.0 3.22.0 4.24.0 3.23.0 4.25.0 3.23.1 4.26.0 3.23.2 4.26.1 3.24.0 4.27.0 3.25.0 4.28.0 3.25.1 4.29.0 3.26.0 4.3.0 3.26.1 4.3.1 3.27.0 4.30.0 3.28.0 4.31.0 3.29.0 4.31.1 3.3.0 4.32.0 3.3.1 4.33.0 3.3.2 4.34.0 3.3.3 4.35.0 3.3.4 4.35.1 3.3.5 4.36.0 3.3.6 4.37.0 3.30.0 4.38.0 3.31.0 4.39.0 3.31.1 4.4.0 3.32.0 4.40.0 3.32.1 4.41.0 3.32.2 4.41.1 3.33.0 4.41.2 3.34.0 4.41.3 3.34.1 4.42.0 3.34.2 4.42.1 3.34.3 3.34.4 3.35.0 3.35.1 3.35.3 3.35.4 3.36.0 3.37.0 3.37.1 3.37.2 3.37.3 3.38.0 3.38.1 3.39.0 3.39.1 3.39.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.40.0 3.40.1 3.41.0 3.41.1 3.41.2 3.42.0 3.42.1 3.42.2 3.42.3 3.43.0 3.43.1 3.44.0 3.45.0 3.45.1 3.46.0 3.46.1 3.46.10 3.46.11 3.46.12 3.46.13 3.46.14 3.46.2 3.46.3 3.46.4 3.46.5 3.46.6 3.46.7 3.46.8 3.46.9 3.47.0 3.47.1 3.47.10 3.47.11 3.47.2 3.47.3 3.47.5 3.47.6 3.47.7 3.47.9 3.48.0 3.48.1 3.49.0 3.49.1 3.5.0 3.5.1 3.50.0 3.51.0 3.51.1 3.51.2 3.52.0 3.53.0 3.54.0 3.54.1 3.54.2 3.54.3 3.55.0 3.55.1 3.56.0 3.56.1 3.56.2 3.57.0 3.57.1 3.58.0 3.59.0 3.59.1 3.59.2 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.60.0 3.60.1 3.60.10 3.60.11 3.60.12 3.60.2 3.60.3 3.60.4 3.60.6 3.60.7 3.60.8 3.60.9 3.61.0 3.62.0 3.62.1 3.63.0 3.64.0 3.64.1 3.64.2 3.64.3 3.65.0 trunk 3.65.1 3.0.0 3.66.0 3.0.0-beta.1 3.67.0 3.0.0-beta.10 3.67.1 3.0.0-beta.11 3.68.0 3.0.0-beta.12 3.69.0 3.0.0-beta.13 3.69.1 3.0.0-beta.14 3.7.0
mailpoet / lib / Automation / Engine / Exceptions.php
mailpoet / lib / Automation / Engine Last commit date
API 3 years ago Builder 2 months ago Control 3 weeks ago Data 2 months ago Endpoints 1 month ago Exceptions 1 year ago Integration 11 months ago Mappers 9 months ago Storage 1 month ago Templates 2 years ago Utils 8 months ago Validation 2 months ago Engine.php 1 month ago Exceptions.php 1 month ago Hooks.php 2 months ago Integration.php 4 years ago Registry.php 2 months ago WordPress.php 2 months ago index.php 3 years ago
Exceptions.php
316 lines
1 <?php declare(strict_types = 1);
2
3 namespace MailPoet\Automation\Engine;
4
5 if (!defined('ABSPATH')) exit;
6
7
8 use MailPoet\Automation\Engine\Data\Step;
9 use MailPoet\Automation\Engine\Exceptions\InvalidStateException;
10 use MailPoet\Automation\Engine\Exceptions\NotFoundException;
11 use MailPoet\Automation\Engine\Exceptions\UnexpectedValueException;
12 use MailPoet\Automation\Engine\Utils\Json;
13
14 class Exceptions {
15 private const DATABASE_ERROR = 'mailpoet_automation_database_error';
16 private const JSON_NOT_OBJECT = 'mailpoet_automation_json_not_object';
17 private const AUTOMATION_NOT_FOUND = 'mailpoet_automation_not_found';
18 private const AUTOMATION_VERSION_NOT_FOUND = 'mailpoet_automation_version_not_found';
19 private const AUTOMATION_NOT_ACTIVE = 'mailpoet_automation_not_active';
20 private const AUTOMATION_RUN_NOT_FOUND = 'mailpoet_automation_run_not_found';
21 private const AUTOMATION_STEP_NOT_FOUND = 'mailpoet_automation_step_not_found';
22 private const AUTOMATION_TRIGGER_NOT_FOUND = 'mailpoet_automation_trigger_not_found';
23 private const AUTOMATION_RUN_NOT_RUNNING = 'mailpoet_automation_run_not_running';
24 private const SUBJECT_NOT_FOUND = 'mailpoet_automation_subject_not_found';
25 private const SUBJECT_LOAD_FAILED = 'mailpoet_automation_subject_load_failed';
26 private const SUBJECT_DATA_NOT_FOUND = 'mailpoet_automation_subject_data_not_found';
27 private const MULTIPLE_SUBJECTS_FOUND = 'mailpoet_automation_multiple_subjects_found';
28 private const PAYLOAD_NOT_FOUND = 'mailpoet_automation_payload_not_found';
29 private const MULTIPLE_PAYLOADS_FOUND = 'mailpoet_automation_multiple_payloads_found';
30 private const FIELD_NOT_FOUND = 'mailpoet_automation_field_not_found';
31 private const FIELD_LOAD_FAILED = 'mailpoet_automation_field_load_failed';
32 private const FILTER_NOT_FOUND = 'mailpoet_automation_filter_not_found';
33 private const NEXT_STEP_NOT_FOUND = 'mailpoet_next_step_not_found';
34 private const NEXT_STEP_NOT_SCHEDULED = 'mailpoet_next_step_not_scheduled';
35 private const AUTOMATION_STRUCTURE_MODIFICATION_NOT_SUPPORTED = 'mailpoet_automation_structure_modification_not_supported';
36 private const AUTOMATION_TRIGGER_MODIFICATION_NOT_SUPPORTED = 'mailpoet_automation_trigger_modification_not_supported';
37 private const AUTOMATION_STRUCTURE_NOT_VALID = 'mailpoet_automation_structure_not_valid';
38 private const AUTOMATION_STEP_MODIFIED_WHEN_UNKNOWN = 'mailpoet_automation_step_modified_when_unknown';
39 private const AUTOMATION_NOT_VALID = 'mailpoet_automation_not_valid';
40 private const MISSING_REQUIRED_SUBJECTS = 'mailpoet_automation_missing_required_subjects';
41 private const AUTOMATION_NOT_TRASHED = 'mailpoet_automation_not_trashed';
42 private const AUTOMATION_TEMPLATE_NOT_FOUND = 'mailpoet_automation_template_not_found';
43 private const AUTOMATION_TEMPLATE_EMAIL_PATTERN_NOT_FOUND = 'mailpoet_automation_template_email_pattern_not_found';
44 private const AUTOMATION_STEP_NOT_STARTED = 'mailpoet_automation_step_not_started';
45 private const AUTOMATION_STEP_NOT_RUNNING = 'mailpoet_automation_step_not_running';
46 private const AUTOMATION_STEP_ACTION_PROCESSED = 'mailpoet_automation_step_action_processed';
47
48 public function __construct() {
49 throw new InvalidStateException(
50 "This is a static factory class. Use it via 'Exception::someError()' factories."
51 );
52 }
53
54 public static function databaseError(string $error): InvalidStateException {
55 return InvalidStateException::create()
56 ->withErrorCode(self::DATABASE_ERROR)
57 // translators: %s is the error message.
58 ->withMessage(sprintf(__('Database error: %s', 'mailpoet'), $error));
59 }
60
61 public static function jsonNotObject(string $json): UnexpectedValueException {
62 return UnexpectedValueException::create()
63 ->withErrorCode(self::JSON_NOT_OBJECT)
64 // translators: %s is the mentioned JSON string.
65 ->withMessage(sprintf(__("JSON string '%s' doesn't encode an object.", 'mailpoet'), $json));
66 }
67
68 public static function automationNotFound(int $id): NotFoundException {
69 return NotFoundException::create()
70 ->withErrorCode(self::AUTOMATION_NOT_FOUND)
71 // translators: %d is the ID of the automation.
72 ->withMessage(sprintf(__("Automation with ID '%d' not found.", 'mailpoet'), $id));
73 }
74
75 public static function automationNotFoundInTimeSpan(int $id): NotFoundException {
76 return NotFoundException::create()
77 ->withErrorCode(self::AUTOMATION_NOT_FOUND)
78 // translators: %d is the ID of the automation.
79 ->withMessage(sprintf(__("Automation with ID '%d' not found in selected time span.", 'mailpoet'), $id));
80 }
81
82 public static function automationVersionNotFound(int $automation, int $version): NotFoundException {
83 return NotFoundException::create()
84 ->withErrorCode(self::AUTOMATION_VERSION_NOT_FOUND)
85 // translators: %1$s is the ID of the automation, %2$s the version.
86 ->withMessage(sprintf(__('Automation with ID "%1$s" in version "%2$s" not found.', 'mailpoet'), $automation, $version));
87 }
88
89 public static function automationNotActive(int $automation): InvalidStateException {
90 return InvalidStateException::create()
91 ->withErrorCode(self::AUTOMATION_NOT_ACTIVE)
92 // translators: %1$s is the ID of the automation.
93 ->withMessage(sprintf(__('Automation with ID "%1$s" is no longer active.', 'mailpoet'), $automation));
94 }
95
96 public static function automationRunNotFound(int $id): NotFoundException {
97 return NotFoundException::create()
98 ->withErrorCode(self::AUTOMATION_RUN_NOT_FOUND)
99 // translators: %d is the ID of the automation run.
100 ->withMessage(sprintf(__("Automation run with ID '%d' not found.", 'mailpoet'), $id));
101 }
102
103 public static function automationStepNotFound(string $key): NotFoundException {
104 return NotFoundException::create()
105 ->withErrorCode(self::AUTOMATION_STEP_NOT_FOUND)
106 // translators: %s is the key of the automation step.
107 ->withMessage(sprintf(__("Automation step with key '%s' not found.", 'mailpoet'), $key));
108 }
109
110 public static function automationTriggerNotFound(int $automationId, string $key): NotFoundException {
111 return NotFoundException::create()
112 ->withErrorCode(self::AUTOMATION_TRIGGER_NOT_FOUND)
113 // translators: %1$s is the key, %2$d is the automation ID.
114 ->withMessage(sprintf(__('Automation trigger with key "%1$s" not found in automation ID "%2$d".', 'mailpoet'), $key, $automationId));
115 }
116
117 public static function automationRunNotRunning(int $id, string $status): InvalidStateException {
118 return InvalidStateException::create()
119 ->withErrorCode(self::AUTOMATION_RUN_NOT_RUNNING)
120 // translators: %1$d is the ID of the automation run, %2$s its current status.
121 ->withMessage(sprintf(__('Automation run with ID "%1$d" is not running. Status: %2$s', 'mailpoet'), $id, $status));
122 }
123
124 public static function subjectNotFound(string $key): NotFoundException {
125 return NotFoundException::create()
126 ->withErrorCode(self::SUBJECT_NOT_FOUND)
127 // translators: %s is the key of the subject not found.
128 ->withMessage(sprintf(__("Subject with key '%s' not found.", 'mailpoet'), $key));
129 }
130
131 public static function subjectClassNotFound(string $class): NotFoundException {
132 return NotFoundException::create()
133 ->withErrorCode(self::SUBJECT_NOT_FOUND)
134 // translators: %s is the class name of the subject not found.
135 ->withMessage(sprintf(__("Subject of class '%s' not found.", 'mailpoet'), $class));
136 }
137
138 public static function subjectLoadFailed(string $key, array $args): InvalidStateException {
139 return InvalidStateException::create()
140 ->withErrorCode(self::SUBJECT_LOAD_FAILED)
141 // translators: %1$s is the name of the key, %2$s the arguments.
142 ->withMessage(sprintf(__('Subject with key "%1$s" and args "%2$s" failed to load.', 'mailpoet'), $key, Json::encode($args)));
143 }
144
145 public static function subjectDataNotFound(string $key, int $automationRunId): NotFoundException {
146 return NotFoundException::create()
147 ->withErrorCode(self::SUBJECT_DATA_NOT_FOUND)
148 // translators: %1$s is the key of the subject, %2$d is automation run ID.
149 ->withMessage(
150 sprintf(__("Subject data for subject with key '%1\$s' not found for automation run with ID '%2\$d'.", 'mailpoet'), $key, $automationRunId)
151 );
152 }
153
154 public static function multipleSubjectsFound(string $key, int $automationRunId): InvalidStateException {
155 return InvalidStateException::create()
156 ->withErrorCode(self::MULTIPLE_SUBJECTS_FOUND)
157 // translators: %1$s is the key of the subject, %2$d is automation run ID.
158 ->withMessage(
159 sprintf(__("Multiple subjects with key '%1\$s' found for automation run with ID '%2\$d', only one expected.", 'mailpoet'), $key, $automationRunId)
160 );
161 }
162
163 public static function payloadNotFound(string $class, int $automationRunId): NotFoundException {
164 return NotFoundException::create()
165 ->withErrorCode(self::PAYLOAD_NOT_FOUND)
166 // translators: %1$s is the class of the payload, %2$d is automation run ID.
167 ->withMessage(
168 sprintf(__("Payload of class '%1\$s' not found for automation run with ID '%2\$d'.", 'mailpoet'), $class, $automationRunId)
169 );
170 }
171
172 public static function multiplePayloadsFound(string $class, int $automationRunId): NotFoundException {
173 return NotFoundException::create()
174 ->withErrorCode(self::MULTIPLE_PAYLOADS_FOUND)
175 // translators: %1$s is the class of the payloads, %2$d is automation run ID.
176 ->withMessage(
177 sprintf(__("Multiple payloads of class '%1\$s' found for automation run with ID '%2\$d'.", 'mailpoet'), $class, $automationRunId)
178 );
179 }
180
181 public static function fieldNotFound(string $key): NotFoundException {
182 return NotFoundException::create()
183 ->withErrorCode(self::FIELD_NOT_FOUND)
184 // translators: %s is the key of the field not found.
185 ->withMessage(sprintf(__("Field with key '%s' not found.", 'mailpoet'), $key));
186 }
187
188 public static function fieldLoadFailed(string $key, array $args): InvalidStateException {
189 return InvalidStateException::create()
190 ->withErrorCode(self::FIELD_LOAD_FAILED)
191 // translators: %1$s is the key of the field, %2$s its arguments.
192 ->withMessage(sprintf(__('Field with key "%1$s" and args "%2$s" failed to load.', 'mailpoet'), $key, Json::encode($args)));
193 }
194
195 public static function filterNotFound(string $fieldType): NotFoundException {
196 return NotFoundException::create()
197 ->withErrorCode(self::FILTER_NOT_FOUND)
198 // translators: %s is the type of the field for which a filter was not found.
199 ->withMessage(sprintf(__("Filter for field of type '%s' not found.", 'mailpoet'), $fieldType));
200 }
201
202 public static function nextStepNotFound(string $stepId, int $nextStepId): InvalidStateException {
203 return InvalidStateException::create()
204 ->withErrorCode(self::NEXT_STEP_NOT_FOUND)
205 // translators: %1$d is the ID of the automation step, %2$s is the ID of the next step.
206 ->withMessage(sprintf(__("Automation step with ID '%1\$s' doesn't have a next step with index '%2\$d'.", 'mailpoet'), $stepId, $nextStepId));
207 }
208
209 public static function nextStepNotScheduled(string $stepId): InvalidStateException {
210 return InvalidStateException::create()
211 ->withErrorCode(self::NEXT_STEP_NOT_SCHEDULED)
212 // translators: %1$d is the ID of the automation step, %2$s is the ID of the next step.
213 ->withMessage(sprintf(__("Automation step with ID '%s' did not schedule a specific next step, even though multiple next steps are possible.", 'mailpoet'), $stepId));
214 }
215
216 public static function automationStructureModificationNotSupported(): UnexpectedValueException {
217 return UnexpectedValueException::create()
218 ->withErrorCode(self::AUTOMATION_STRUCTURE_MODIFICATION_NOT_SUPPORTED)
219 ->withMessage(__('Automation structure modification not supported.', 'mailpoet'));
220 }
221
222 public static function automationTriggerModificationNotSupported(): UnexpectedValueException {
223 return UnexpectedValueException::create()
224 ->withErrorCode(self::AUTOMATION_TRIGGER_MODIFICATION_NOT_SUPPORTED)
225 ->withMessage(__('Changing the trigger of an existing automation is not supported. You can edit its settings or filters instead.', 'mailpoet'));
226 }
227
228 public static function automationStructureNotValid(string $detail, string $ruleId): UnexpectedValueException {
229 return UnexpectedValueException::create()
230 ->withErrorCode(self::AUTOMATION_STRUCTURE_NOT_VALID)
231 // translators: %s is a detailed information
232 ->withMessage(sprintf(__("Invalid automation structure: %s", 'mailpoet'), $detail))
233 ->withErrors(['rule_id' => $ruleId]);
234 }
235
236 public static function automationStepModifiedWhenUnknown(Step $step): UnexpectedValueException {
237 return UnexpectedValueException::create()
238 ->withErrorCode(self::AUTOMATION_STEP_MODIFIED_WHEN_UNKNOWN)
239 // translators: %1$s is the key of the step, %2$s is the type of the step, %3\$s is its ID.
240 ->withMessage(
241 sprintf(
242 __("Modification of step '%1\$s' of type '%2\$s' with ID '%3\$s' is not supported when the related plugin is not active.", 'mailpoet'),
243 $step->getKey(),
244 $step->getType(),
245 $step->getId()
246 )
247 );
248 }
249
250 public static function automationNotValid(string $detail, array $errors): UnexpectedValueException {
251 return UnexpectedValueException::create()
252 ->withErrorCode(self::AUTOMATION_NOT_VALID)
253 // translators: %s is a detailed information
254 ->withMessage(sprintf(__("Automation validation failed: %s", 'mailpoet'), $detail))
255 ->withErrors($errors);
256 }
257
258 public static function missingRequiredSubjects(Step $step, array $missingSubjectKeys): UnexpectedValueException {
259 return UnexpectedValueException::create()
260 ->withErrorCode(self::MISSING_REQUIRED_SUBJECTS)
261 // translators: %1$s is the key of the step, %2$s are the missing subject keys.
262 ->withMessage(
263 sprintf(
264 __("Step with ID '%1\$s' is missing required subjects with keys: %2\$s", 'mailpoet'),
265 $step->getId(),
266 implode(', ', $missingSubjectKeys)
267 )
268 )
269 ->withErrors(
270 ['general' => __('This step can not be used with the selected trigger.', 'mailpoet')]
271 );
272 }
273
274 public static function automationNotTrashed(int $id): UnexpectedValueException {
275 return UnexpectedValueException::create()
276 ->withErrorCode(self::AUTOMATION_NOT_TRASHED)
277 // translators: %d is the ID of the automation.
278 ->withMessage(sprintf(__("Can't delete automation with ID '%d' because it was not trashed.", 'mailpoet'), $id));
279 }
280
281 public static function automationTemplateNotFound(string $id): NotFoundException {
282 return NotFoundException::create()
283 ->withErrorCode(self::AUTOMATION_TEMPLATE_NOT_FOUND)
284 // translators: %d is the ID of the automation template.
285 ->withMessage(sprintf(__("Automation template with ID '%d' not found.", 'mailpoet'), $id));
286 }
287
288 public static function automationTemplateEmailPatternNotFound(string $pattern): NotFoundException {
289 return NotFoundException::create()
290 ->withErrorCode(self::AUTOMATION_TEMPLATE_EMAIL_PATTERN_NOT_FOUND)
291 // translators: %s is the name of the automation template email pattern.
292 ->withMessage(sprintf(__("Automation template email pattern '%s' not found.", 'mailpoet'), $pattern));
293 }
294
295 public static function stepNotStarted(string $id, int $runId): InvalidStateException {
296 return InvalidStateException::create()
297 ->withErrorCode(self::AUTOMATION_STEP_NOT_STARTED)
298 // translators: %1$s is the ID of the automation step, %2$d is the automation run ID.
299 ->withMessage(sprintf(__("Automation step with ID '%1\$s' was not started in automation run with ID '%2\$d'.", 'mailpoet'), $id, $runId));
300 }
301
302 public static function stepNotRunning(string $id, string $status, int $runId): InvalidStateException {
303 return InvalidStateException::create()
304 ->withErrorCode(self::AUTOMATION_STEP_NOT_RUNNING)
305 // translators: %1$s is the ID of the automation step, %2$s its current status, %3$d is the automation run ID.
306 ->withMessage(sprintf(__("Automation step with ID '%1\$s' is not running in automation run with ID '%2\$d'. Status: '%3\$s'", 'mailpoet'), $id, $runId, $status));
307 }
308
309 public static function stepActionProcessed(string $id, int $runId, int $runNumber): InvalidStateException {
310 return InvalidStateException::create()
311 ->withErrorCode(self::AUTOMATION_STEP_ACTION_PROCESSED)
312 // translators: %1$d is the automation run ID, %2$s is the ID of the automation step, %3$d is the run number.
313 ->withMessage(sprintf(__("Automation run with ID '%1\$d' already has a processed action for step with ID '%2\$s' and run number '%3\$d'.", 'mailpoet'), $runId, $id, $runNumber));
314 }
315 }
316