Accounts: Fetch list of all accounts (optionally filtered by domain)

This commit is contained in:
Lexi / Zoe 2021-07-30 03:46:43 +02:00
parent 279f4492e8
commit 985f46c652
Signed by: binaryDiv
GPG key ID: F8D4956E224DA232
6 changed files with 145 additions and 9 deletions

View file

@ -3,15 +3,33 @@ declare(strict_types=1);
namespace MailAccountAdmin\Frontend\Accounts;
use MailAccountAdmin\Common\UserHelper;
use MailAccountAdmin\Frontend\BaseController;
use MailAccountAdmin\Repositories\AccountRepository;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Views\Twig;
class AccountController extends BaseController
{
/** @var AccountRepository */
private $accountRepository;
public function __construct(Twig $view, UserHelper $userHelper, AccountRepository $accountRepository)
{
parent::__construct($view, $userHelper);
$this->accountRepository = $accountRepository;
}
public function showAccounts(Request $request, Response $response): Response
{
// Parse query parameters for filters
$queryParams = $request->getQueryParams();
$filterByDomain = $queryParams['domain'] ?? null;
$renderData = [
'filterDomain' => $filterByDomain,
'accountList' => $this->accountRepository->fetchAccountList($filterByDomain),
];
return $this->view->render($response, 'accounts.html.twig', $renderData);