public function confirm(RequestDataBag
$dataBag, SalesChannelContext
$context): NoContentResponse
{ $recipient =
$this->
getNewsletterRecipient('hash',
$dataBag->
get('hash', ''
),
$context->
getContext());
$data =
[ 'id' =>
$recipient->
getId(),
'status' =>
$recipient->
getStatus(),
'confirmedAt' =>
$recipient->
getConfirmedAt(),
'em' =>
$dataBag->
get('em'
),
];
$this->validator->
validate($data,
$this->
getBeforeConfirmSubscribeValidation(hash('sha1',
$recipient->
getEmail())));
$data['status'
] = NewsletterSubscribeRoute::STATUS_OPT_IN;
$data['confirmedAt'
] =
new \
DateTime();
$this->newsletterRecipientRepository->
update([$data],
$context->
getContext());
$event =
new NewsletterConfirmEvent($context->
getContext(),
$recipient,
$context->
getSalesChannel()->
getId());
$this->eventDispatcher->
dispatch($event);
return new NoContentResponse();
}