33 lines
1.0 KiB
PHP
33 lines
1.0 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
namespace MailAccountAdmin\Repositories;
|
|
|
|
use PDO;
|
|
|
|
class AliasRepository extends BaseRepository
|
|
{
|
|
public function fetchAliasesForUserId(int $userId): array
|
|
{
|
|
$statement = $this->pdo->prepare('SELECT * FROM mail_aliases WHERE user_id = :user_id ORDER BY mail_address');
|
|
$statement->execute(['user_id' => $userId]);
|
|
return $statement->fetchAll(PDO::FETCH_ASSOC);
|
|
}
|
|
|
|
public function checkAliasAvailable(string $mailAddress): bool
|
|
{
|
|
$statement = $this->pdo->prepare('SELECT 1 FROM mail_aliases WHERE mail_address = :mail_address LIMIT 1');
|
|
$statement->execute(['mail_address' => $mailAddress]);
|
|
return $statement->rowCount() === 0;
|
|
}
|
|
|
|
public function createNewAlias(int $userId, string $mailAddress): void
|
|
{
|
|
$statement = $this->pdo->prepare('INSERT INTO mail_aliases (user_id, mail_address) VALUES (:user_id, :mail_address)');
|
|
$statement->execute([
|
|
'user_id' => $userId,
|
|
'mail_address' => $mailAddress,
|
|
]);
|
|
}
|
|
}
|