From f5d59eb00e5cd0c6244fd1e21dfda1a5f82e675c Mon Sep 17 00:00:00 2001 From: Pavel Dohnal Date: Fri, 11 May 2018 15:03:35 +0100 Subject: [PATCH] Add source to imported subscribers [MAILPOET-1377] --- lib/Subscribers/ImportExport/Import/Import.php | 13 +++++++++++++ .../Subscribers/ImportExport/Import/ImportTest.php | 2 ++ 2 files changed, 15 insertions(+) diff --git a/lib/Subscribers/ImportExport/Import/Import.php b/lib/Subscribers/ImportExport/Import/Import.php index ff24d1aaf2..1e710802af 100644 --- a/lib/Subscribers/ImportExport/Import/Import.php +++ b/lib/Subscribers/ImportExport/Import/Import.php @@ -9,6 +9,7 @@ use MailPoet\Models\Subscriber; use MailPoet\Models\SubscriberCustomField; use MailPoet\Models\SubscriberSegment; use MailPoet\Subscribers\ImportExport\ImportExportFactory; +use MailPoet\Subscribers\Source; use MailPoet\Util\Helpers; class Import { @@ -108,6 +109,7 @@ class Import { // add, if required, missing required fields to new subscribers $new_subscribers = $this->addMissingRequiredFields($new_subscribers); $new_subscribers = $this->setSubscriptionStatusToSubscribed($new_subscribers); + $new_subscribers = $this->setSource($new_subscribers); $created_subscribers = $this->createOrUpdateSubscribers( 'create', @@ -286,6 +288,17 @@ class Import { return $subscribers_data; } + function setSource($subscribers_data) { + $subscribers_count = count($subscribers_data['data'][key($subscribers_data['data'])]); + $subscribers_data['fields'][] = 'source'; + $subscribers_data['data']['source'] = array_fill( + 0, + $subscribers_count, + Source::IMPORTED + ); + return $subscribers_data; + } + function getSubscribersFields($subscribers_fields) { return array_values( array_filter( diff --git a/tests/unit/Subscribers/ImportExport/Import/ImportTest.php b/tests/unit/Subscribers/ImportExport/Import/ImportTest.php index a50c861c23..dc1074086e 100644 --- a/tests/unit/Subscribers/ImportExport/Import/ImportTest.php +++ b/tests/unit/Subscribers/ImportExport/Import/ImportTest.php @@ -452,6 +452,8 @@ class ImportTest extends \MailPoetTest { expect($new_subscribers)->count(2); expect($new_subscribers[0]->status)->equals('subscribed'); expect($new_subscribers[1]->status)->equals('subscribed'); + expect($new_subscribers[0]->source)->equals('imported'); + expect($new_subscribers[1]->source)->equals('imported'); } function testItRunsImport() {