Skip to content

Commit cc5e35a

Browse files
committed
Import (invalid email, send confirmation)
1 parent bcebf90 commit cc5e35a

File tree

4 files changed

+13
-1
lines changed

4 files changed

+13
-1
lines changed

src/Domain/Subscription/Model/Dto/ImportSubscriberDto.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
class ImportSubscriberDto
1010
{
1111
#[Assert\NotBlank]
12-
#[Assert\Email]
1312
public string $email;
1413

1514
#[Assert\Type('bool')]

src/Domain/Subscription/Model/Dto/SubscriberImportOptions.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public function __construct(
1313
public readonly bool $updateExisting = false,
1414
public readonly array $listIds = [],
1515
public readonly bool $dryRun = false,
16+
public readonly bool $skipInvalidEmail = true,
1617
) {
1718
}
1819
}

src/Domain/Subscription/Service/Manager/SubscriberManager.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,10 @@ public function createFromImport(ImportSubscriberDto $subscriberDto): Subscriber
122122

123123
$this->entityManager->persist($subscriber);
124124

125+
if (!$subscriberDto->confirmed) {
126+
$this->sendConfirmationEmail($subscriber);
127+
}
128+
125129
return $subscriber;
126130
}
127131

src/Domain/Subscription/Service/SubscriberCsvImporter.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,14 @@ private function processRow(
137137
SubscriberImportOptions $options,
138138
array &$stats,
139139
): void {
140+
if (!filter_var($dto->email, FILTER_VALIDATE_EMAIL)) {
141+
if ($options->skipInvalidEmail) {
142+
$stats['skipped']++;
143+
return;
144+
} else {
145+
$dto->email = 'invalid_' . $dto->email;
146+
}
147+
}
140148
$subscriber = $this->subscriberRepository->findOneByEmail($dto->email);
141149

142150
if ($subscriber && !$options->updateExisting) {

0 commit comments

Comments
 (0)