staempfli/magento2-module-mailcatcher

View on GitHub
Plugin/HandleMailTransportPlugin.php

Summary

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

namespace Staempfli\MailCatcher\Plugin;

use Magento\Framework\Mail\TransportInterfaceFactory;
use Staempfli\MailCatcher\Config\CatcherConfig;
use Staempfli\MailCatcher\Transport\MailCatcherTransportProxyFactory;

class HandleMailTransportPlugin
{
    /**
     * @var CatcherConfig
     */
    private $catcherConfig;
    /**
     * @var MailCatcherTransportProxyFactory
     */
    private $mailCatcherTransportProxyFactory;

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

    /**
     * @param TransportInterfaceFactory $subject
     * @param callable $proceed
     * @param array $data
     * @return mixed
     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
     */
    public function aroundCreate(TransportInterfaceFactory $subject, callable $proceed, array $data = [])
    {
        if ($this->catcherConfig->isCatcherEnabled()) {
            $data['originalTransport'] = $proceed($data);
            return $this->mailCatcherTransportProxyFactory->create($data);
        }
        return $proceed($data);
    }

}