staempfli/magento2-module-mailcatcher

View on GitHub
Repository/MailCatcherRepository.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
/**
 * MailCatcherRepository
 *
 * @copyright Copyright © 2017 Staempfli AG. All rights reserved.
 * @author    juan.alonso@staempfli.com
 */

namespace Staempfli\MailCatcher\Repository;

use Staempfli\MailCatcher\Config\CatcherConfig;

class MailCatcherRepository
{
    /**
     * @var CatcherConfig
     */
    private $catcherConfig;

    public function __construct(
        CatcherConfig $catcherConfig
    ) {
        $this->catcherConfig = $catcherConfig;
    }

    public function isRecipientWhiteListed(string $recipient) : bool
    {
        if (in_array($recipient, $this->catcherConfig->whiteList())) {
            return true;
        }
        if ($this->isRecipientDomainInWhitelist($recipient)) {
            return true;
        }
        return false;
    }

    private function isRecipientDomainInWhitelist(string $recipient) : bool
    {
        $emailParts = explode('@', $recipient);
        $recipientDomain = array_pop($emailParts);
        if (in_array($recipientDomain, $this->catcherConfig->whiteList())) {
            return true;
        }
        return false;
    }

    public function isRedirectRecipient(string $recipient) : bool
    {
        $redirectRecipient = $this->catcherConfig->redirectRecipient();
        return $recipient === $redirectRecipient;
    }
}