<?php
namespace Leadlion\CustomContactForm\Controller\Contact;

use Zend\Log\Filter\Timestamp;
use Magento\Framework\Controller\ResultFactory;

class Index extends \Magento\Framework\App\Action\Action
{
    protected $_transportBuilder;
    protected $_scopeConfig;
    protected $_logLoggerInterface;

    public function __construct(
        \Magento\Framework\App\Action\Context $context,
        \Magento\Framework\Mail\Template\TransportBuilder $transportBuilder,
        \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
        \Psr\Log\LoggerInterface $loggerInterface,
        array $data = []
    )
    {
        $this->_transportBuilder = $transportBuilder;
        $this->_scopeConfig = $scopeConfig;
        $this->_logLoggerInterface = $loggerInterface;
        $this->messageManager = $context->getMessageManager();

        parent::__construct($context);
    }

    public function execute()
    {
        $post = $this->getRequest()->getPostValue();

        if (empty($post['name']) ||
            empty($post['email']) ||
            empty($post['phone-number']) ||
            empty($post['city'])
        ) {
            $this->messageManager->addErrorMessage(__('Please complete all the required fields.'));
        } else {
            $senderName = $post['name'];

            $ownerEmail = $this->_scopeConfig ->getValue('leadlion/montaj_autorizat_email/montaj_autorizat_recipient_email',\Magento\Store\Model\ScopeInterface::SCOPE_STORE);
            $emailTemplate = $this->_scopeConfig ->getValue('leadlion/montaj_autorizat_email/montaj_autorizat_email_template',\Magento\Store\Model\ScopeInterface::SCOPE_STORE);

            $requestData = [];
            $requestData['name'] = $post['name'];
            $requestData['email'] = $post['email'];
            $requestData['phone-number'] = $post['phone-number'];
            $requestData['city'] = $post['city'];
            $postObject = new \Magento\Framework\DataObject();
            $postObject->setData($requestData);

            $transport = $this->_transportBuilder
                ->setTemplateIdentifier($emailTemplate)
                ->setTemplateOptions(['subject' => 'ALERTA - Cerere montaj autorizat', 'area' => \Magento\Framework\App\Area::AREA_FRONTEND, 'store' => \Magento\Store\Model\Store::DEFAULT_STORE_ID])
                ->setTemplateVars(['var' => $postObject])
                ->setFrom(['name' => $senderName, 'email' => $ownerEmail])
                ->addTo($ownerEmail, '')
                ->getTransport();
            $transport->sendMessage();

            $this->messageManager->addSuccessMessage(__('Email has been sent successfully.'));
        }

        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
        $resultRedirect->setUrl($this->_redirect->getRefererUrl());
        return $resultRedirect;
    }
}
