Remove useless validation rules from import code

[MAILPOET-2432]
This commit is contained in:
Rostislav Wolny
2019-10-09 09:42:51 +02:00
committed by Jack Kitterhing
parent 54afa0661f
commit a4c1bac911
4 changed files with 4 additions and 26 deletions

View File

@ -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, () => {

View File

@ -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) => {

View File

@ -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}`}
/> />

View File

@ -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)) {