mail-account-admin/src/Repositories/AliasRepository.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,
]);
}
}