Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 6749 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

<?php
/**
 * 
 * Controlador: Mis Perfiles 
 * 
 */
declare(strict_types=1);

namespace LeadersLinked\Controller;

use Laminas\Db\Adapter\AdapterInterface;
use Laminas\Cache\Storage\Adapter\AbstractAdapter;
use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\Log\LoggerInterface;
use Laminas\View\Model\ViewModel;


use Laminas\View\Model\JsonModel;
use LeadersLinked\Form\Help\SendForm;
use LeadersLinked\Mapper\CompanyMapper;
use LeadersLinked\Mapper\CompanyUserMapper;
use LeadersLinked\Mapper\UserMapper;
use LeadersLinked\Model\Email;
use LeadersLinked\Mapper\EmailMapper;


class HelpController extends AbstractActionController
{
    /**
     *
     * @var AdapterInterface
     */
    private $adapter;
    
    
    /**
     *
     * @var AbstractAdapter
     */
    private $cache;
    
    /**
     *
     * @var  LoggerInterface
     */
    private $logger;

    
    /**
     *
     * @var array
     */
    private $config;
    
    /**
     *
     * @param AdapterInterface $adapter
     * @param AbstractAdapter $cache
     * @param LoggerInterface $logger
     * @param array $config
     */
    public function __construct($adapter, $cache , $logger,  $config)
    {
        $this->adapter      = $adapter;
        $this->cache        = $cache;
        $this->logger       = $logger;
        $this->config       = $config;

    }
    
    /**
     * 
     * Generación del listado de perfiles
     * {@inheritDoc}
     * @see \Laminas\Mvc\Controller\AbstractActionController::indexAction()
     */
    public function indexAction()
    {
        
        $this->layout()->setTemplate('layout/layout.phtml');
        $viewModel = new ViewModel();
        $viewModel->setTemplate('leaders-linked/help/index.phtml');
        return $viewModel ;
        
    }
    
   

    public function sendAction()
    {
        $request = $this->getRequest();
        if($request->isPost()) {
            
            
            $currentUserPlugin = $this->plugin('currentUserPlugin');
            $currentUser = $currentUserPlugin->getUser();
            
            $data = array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
            
            $form = new SendForm();
            $form->setData($data);
            
            if($form->isValid()) {
                $subject = $form->get('subject')->getValue();
                $message = $form->get('message')->getValue();
                
                
                $message = "<p>Nombre : {$currentUser->first_name} </p>" . 
                "<p>Apellido : {$currentUser->last_name} </p>" . 
                "<p>Email : {$currentUser->email} </p>" . 
                $message;
                    
                $email = new Email();
                $email->content = json_encode([
                    'to_address' => 'ayuda@leaderslinked.com',
                    'to_name' => 'Soporte del Sitio Web',
                    'cc' => [],
                    'bcc' => [],
                    'subject' => $subject,
                    'message' => $message,
                ]);
                $email->status = Email::STATUS_PENDING;
                $email->tried = 0;
                    
                $emailMapper = EmailMapper::getInstance($this->adapter);
                $result = $emailMapper->insert($email);
                    
                if($result) {
                    return new JsonModel([
                        'success'   => true,
                        'data'   =>  'LABEL_HELP_SENT_SUCCESSFULLY'
                    ]);
                    
                } else {
                    return new JsonModel([
                        'success'   => false,
                        'data'   =>  'ERROR_UNKNOWN'
                    ]);
                } 
                    
                    
 
                
                
                
            } else {
                
                
                $messages = [];
                $form_messages = (array) $form->getMessages();
                foreach($form_messages  as $fieldname => $field_messages)
                {
                    $messages[$fieldname] = array_values($field_messages);
                }
                
                return new JsonModel([
                    'success'   => false,
                    'data'   => $messages
                ]);
            }
            
            
            
        } else {
            return new JsonModel([
                'success' => false,
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
            ]);
        }
        
    }
    
}