Remove useless validation rules from import code
[MAILPOET-2432]
This commit is contained in:
committed by
Jack Kitterhing
parent
54afa0661f
commit
a4c1bac911
@ -34,11 +34,10 @@ export default (subscribersToImport, segments, updateExistingSubscribers, onImpo
|
|||||||
_.each(jQuery('select.mailpoet_subscribers_column_data_match'),
|
_.each(jQuery('select.mailpoet_subscribers_column_data_match'),
|
||||||
(column, columnIndex) => {
|
(column, columnIndex) => {
|
||||||
const columnId = jQuery(column).data('column-id');
|
const columnId = jQuery(column).data('column-id');
|
||||||
const validationRule = jQuery(column).data('validation-rule');
|
|
||||||
if (columnId === 'ignore') {
|
if (columnId === 'ignore') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
columns[columnId] = { index: columnIndex, validation_rule: validationRule };
|
columns[columnId] = { index: columnIndex };
|
||||||
});
|
});
|
||||||
|
|
||||||
_.each(clickSubscribers, () => {
|
_.each(clickSubscribers, () => {
|
||||||
|
@ -68,7 +68,6 @@ export default () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
jQuery(selectElement).data('column-id', newColumnData.id);
|
jQuery(selectElement).data('column-id', newColumnData.id);
|
||||||
jQuery(selectElement).data('validation-rule', false);
|
|
||||||
// close popup
|
// close popup
|
||||||
MailPoet.Modal.close();
|
MailPoet.Modal.close();
|
||||||
}).fail((response) => {
|
}).fail((response) => {
|
||||||
|
@ -19,7 +19,6 @@ function ColumnDataMatch({ header, subscribers }) {
|
|||||||
<select
|
<select
|
||||||
className="mailpoet_subscribers_column_data_match"
|
className="mailpoet_subscribers_column_data_match"
|
||||||
data-column-id={columnType.column_id}
|
data-column-id={columnType.column_id}
|
||||||
data-validation-rule="false"
|
|
||||||
data-column-index={i}
|
data-column-index={i}
|
||||||
id={`column_${i}`}
|
id={`column_${i}`}
|
||||||
/>
|
/>
|
||||||
|
@ -22,14 +22,10 @@ class Import {
|
|||||||
public $update_subscribers;
|
public $update_subscribers;
|
||||||
public $subscribers_fields;
|
public $subscribers_fields;
|
||||||
public $subscribers_custom_fields;
|
public $subscribers_custom_fields;
|
||||||
public $subscribers_fields_validation_rules;
|
|
||||||
public $subscribers_count;
|
public $subscribers_count;
|
||||||
public $created_at;
|
public $created_at;
|
||||||
public $updated_at;
|
public $updated_at;
|
||||||
public $required_subscribers_fields;
|
public $required_subscribers_fields;
|
||||||
private $default_subscribers_data_validation_rules = [
|
|
||||||
'email' => 'email',
|
|
||||||
];
|
|
||||||
const DB_QUERY_CHUNK_SIZE = 100;
|
const DB_QUERY_CHUNK_SIZE = 100;
|
||||||
|
|
||||||
public function __construct($data) {
|
public function __construct($data) {
|
||||||
@ -46,7 +42,6 @@ class Import {
|
|||||||
$this->subscribers_custom_fields = $this->getCustomSubscribersFields(
|
$this->subscribers_custom_fields = $this->getCustomSubscribersFields(
|
||||||
array_keys($data['columns'])
|
array_keys($data['columns'])
|
||||||
);
|
);
|
||||||
$this->subscribers_fields_validation_rules = $this->getSubscriberDataValidationRules($data['columns']);
|
|
||||||
$this->subscribers_count = count(reset($this->subscribers_data));
|
$this->subscribers_count = count(reset($this->subscribers_data));
|
||||||
$this->created_at = date('Y-m-d H:i:s', (int)$data['timestamp']);
|
$this->created_at = date('Y-m-d H:i:s', (int)$data['timestamp']);
|
||||||
$this->updated_at = date('Y-m-d H:i:s', (int)$data['timestamp'] + 1);
|
$this->updated_at = date('Y-m-d H:i:s', (int)$data['timestamp'] + 1);
|
||||||
@ -75,22 +70,9 @@ class Import {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSubscriberDataValidationRules($subscribers_fields) {
|
|
||||||
$validation_rules = [];
|
|
||||||
foreach ($subscribers_fields as $column => $field) {
|
|
||||||
$validation_rules[$column] = (!empty($field['validation_rule'])) ?
|
|
||||||
$field['validation_rule'] :
|
|
||||||
false;
|
|
||||||
}
|
|
||||||
return array_replace($validation_rules, $this->default_subscribers_data_validation_rules);
|
|
||||||
}
|
|
||||||
|
|
||||||
function process() {
|
function process() {
|
||||||
// validate data based on field validation rules
|
// validate data based on field validation rules
|
||||||
$subscribers_data = $this->validateSubscribersData(
|
$subscribers_data = $this->validateSubscribersData($this->subscribers_data);
|
||||||
$this->subscribers_data,
|
|
||||||
$this->subscribers_fields_validation_rules
|
|
||||||
);
|
|
||||||
if (!$subscribers_data) {
|
if (!$subscribers_data) {
|
||||||
throw new \Exception(__('No valid subscribers were found.', 'mailpoet'));
|
throw new \Exception(__('No valid subscribers were found.', 'mailpoet'));
|
||||||
}
|
}
|
||||||
@ -154,12 +136,11 @@ class Import {
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
function validateSubscribersData($subscribers_data, $validation_rules) {
|
function validateSubscribersData($subscribers_data) {
|
||||||
$invalid_records = [];
|
$invalid_records = [];
|
||||||
$validator = new ModelValidator();
|
$validator = new ModelValidator();
|
||||||
foreach ($subscribers_data as $column => &$data) {
|
foreach ($subscribers_data as $column => &$data) {
|
||||||
$validation_rule = $validation_rules[$column];
|
if ($column === 'email') {
|
||||||
if ($validation_rule === 'email') {
|
|
||||||
$data = array_map(
|
$data = array_map(
|
||||||
function($index, $email) use(&$invalid_records, $validator) {
|
function($index, $email) use(&$invalid_records, $validator) {
|
||||||
if (!$validator->validateNonRoleEmail($email)) {
|
if (!$validator->validateNonRoleEmail($email)) {
|
||||||
|
Reference in New Issue
Block a user