Skip to content

Commit 23606b8

Browse files
committed
Import: Add autoConfirm property
1 parent 3ffdae8 commit 23606b8

3 files changed

Lines changed: 28 additions & 12 deletions

File tree

src/Subscription/Controller/SubscriptionController.php

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -54,17 +54,7 @@ public function __construct(
5454
requestBody: new OA\RequestBody(
5555
description: 'Pass session credentials',
5656
required: true,
57-
content: new OA\JsonContent(
58-
required: ['emails'],
59-
properties: [
60-
new OA\Property(
61-
property: 'emails',
62-
type: 'array',
63-
items: new OA\Items(type: 'string', format: 'email'),
64-
example: ['test1@example.com', 'test2@example.com']
65-
),
66-
]
67-
)
57+
content: new OA\JsonContent(ref: '#/components/schemas/SubscriptionRequest')
6858
),
6959
tags: ['subscriptions'],
7060
parameters: [
@@ -133,7 +123,11 @@ public function createSubscription(
133123

134124
/** @var SubscriptionRequest $subscriptionRequest */
135125
$subscriptionRequest = $this->validator->validate($request, SubscriptionRequest::class);
136-
$subscriptions = $this->subscriptionManager->createSubscriptions($list, $subscriptionRequest->emails);
126+
$subscriptions = $this->subscriptionManager->createSubscriptions(
127+
subscriberList: $list,
128+
emails: $subscriptionRequest->emails,
129+
autoConfirm: $subscriptionRequest->autoConfirm,
130+
);
137131
$this->entityManager->flush();
138132
$normalized = array_map(fn($item) => $this->subscriptionNormalizer->normalize($item), $subscriptions);
139133

src/Subscription/Request/SubscriptionRequest.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,29 @@
44

55
namespace PhpList\RestBundle\Subscription\Request;
66

7+
use OpenApi\Attributes as OA;
78
use PhpList\RestBundle\Common\Request\RequestInterface;
89
use PhpList\RestBundle\Subscription\Validator\Constraint\EmailExists;
910
use Symfony\Component\Validator\Constraints as Assert;
1011

12+
#[OA\Schema(
13+
schema: 'SubscriptionRequest',
14+
required: ['emails'],
15+
properties: [
16+
new OA\Property(
17+
property: 'emails',
18+
type: 'array',
19+
items: new OA\Items(type: 'string', format: 'email'),
20+
example: ['test1@example.com', 'test2@example.com']
21+
),
22+
new OA\Property(
23+
property: 'autoConfirm',
24+
description: 'Whether to automatically confirm subscriptions',
25+
type: 'boolean',
26+
example: true
27+
),
28+
]
29+
)]
1130
class SubscriptionRequest implements RequestInterface
1231
{
1332
#[Assert\NotBlank]
@@ -19,6 +38,8 @@ class SubscriptionRequest implements RequestInterface
1938
])]
2039
public array $emails = [];
2140

41+
public bool $autoConfirm = false;
42+
2243
public function getDto(): SubscriptionRequest
2344
{
2445
return $this;

tests/Unit/Subscription/Request/SubscriptionRequestTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public function testGetDtoReturnsSelf(): void
1818

1919
$this->assertSame($request, $dto);
2020
$this->assertEquals(['test1@example.com', 'test2@example.com'], $dto->emails);
21+
$this->assertFalse($dto->autoConfirm);
2122
}
2223

2324
public function testGetDtoWithEmptyEmails(): void

0 commit comments

Comments
 (0)