39 lines
1 KiB
PHP
39 lines
1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Http\Controllers\Fo;
|
|
|
|
use App\Http\Requests\Fo\UnsubscribeNewsletterRequest;
|
|
use App\Services\CrmService;
|
|
use Illuminate\Contracts\View\View;
|
|
|
|
class NewsletterController
|
|
{
|
|
public function __construct(
|
|
private readonly CrmService $crmService
|
|
) {
|
|
}
|
|
|
|
public function unsubscribe(UnsubscribeNewsletterRequest $request): View
|
|
{
|
|
try {
|
|
$isUnsubscribed = false;
|
|
|
|
if ($request->getHashcode()) {
|
|
$isUnsubscribed = $this->crmService->unsubscribeCustomer(
|
|
$request->getHashcode()
|
|
);
|
|
}
|
|
|
|
$message = $isUnsubscribed
|
|
? trans('Your newsletter unsubscription has been taken into account.')
|
|
: trans('The unsubscription link is invalid.');
|
|
} catch (\Throwable $e) {
|
|
report($e);
|
|
$message = trans('An error occurred, please try again later.');
|
|
}
|
|
|
|
return view('fo.news.singleoptin-unsubscribe', compact('message'));
|
|
}
|
|
}
|