50 lines
1.0 KiB
PHP
50 lines
1.0 KiB
PHP
<?php
|
|
namespace front\Controllers;
|
|
|
|
use Domain\Newsletter\NewsletterRepository;
|
|
|
|
class NewsletterController
|
|
{
|
|
private NewsletterRepository $repository;
|
|
|
|
public function __construct( NewsletterRepository $repository )
|
|
{
|
|
$this->repository = $repository;
|
|
}
|
|
|
|
public function signin()
|
|
{
|
|
global $settings;
|
|
|
|
$result = [ 'status' => 'bad' ];
|
|
|
|
if ( $this->repository->signup( \S::get( 'email' ), $_SERVER['SERVER_NAME'], !empty( $settings['ssl'] ), $settings ) )
|
|
$result = [ 'status' => 'ok' ];
|
|
|
|
echo json_encode( $result );
|
|
exit;
|
|
}
|
|
|
|
public function confirm()
|
|
{
|
|
global $lang;
|
|
|
|
if ( $this->repository->confirmSubscription( \S::get( 'hash' ) ) )
|
|
\S::alert( $lang['email-zostal-dodany-do-listy-newsletter'] );
|
|
|
|
header( 'Location: /' );
|
|
exit;
|
|
}
|
|
|
|
public function unsubscribe()
|
|
{
|
|
global $lang;
|
|
|
|
if ( $this->repository->unsubscribe( \S::get( 'hash' ) ) )
|
|
\S::alert( $lang['email-zostal-usuniety-z-listy-newsletter'] );
|
|
|
|
header( 'Location: /' );
|
|
exit;
|
|
}
|
|
}
|