Proyectos de Subversion LeadersLinked - Services

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
/**
3
 *
4
 * Controlador: Mis Perfiles
5
 *
6
 */
7
declare(strict_types=1);
8
 
9
namespace LeadersLinked\Controller;
10
 
11
use Laminas\Db\Adapter\AdapterInterface;
12
 
13
use Laminas\Mvc\Controller\AbstractActionController;
14
use Laminas\Log\LoggerInterface;
15
use Laminas\View\Model\ViewModel;
16
 
17
 
18
use Laminas\View\Model\JsonModel;
19
use LeadersLinked\Form\Help\SendForm;
20
use LeadersLinked\Mapper\CompanyMapper;
21
use LeadersLinked\Mapper\CompanyUserMapper;
22
use LeadersLinked\Mapper\UserMapper;
23
use LeadersLinked\Model\Email;
24
use LeadersLinked\Mapper\EmailMapper;
25
 
26
 
27
class HelpController extends AbstractActionController
28
{
29
    /**
30
     *
31
     * @var \Laminas\Db\Adapter\AdapterInterface
32
     */
33
    private $adapter;
34
 
35
    /**
36
     *
37
     * @var \LeadersLinked\Cache\CacheInterface
38
     */
39
    private $cache;
40
 
41
 
42
    /**
43
     *
44
     * @var \Laminas\Log\LoggerInterface
45
     */
46
    private $logger;
47
 
48
    /**
49
     *
50
     * @var array
51
     */
52
    private $config;
53
 
54
 
55
    /**
56
     *
57
     * @var \Laminas\Mvc\I18n\Translator
58
     */
59
    private $translator;
60
 
61
 
62
    /**
63
     *
64
     * @param \Laminas\Db\Adapter\AdapterInterface $adapter
65
     * @param \LeadersLinked\Cache\CacheInterface $cache
66
     * @param \Laminas\Log\LoggerInterface LoggerInterface $logger
67
     * @param array $config
68
     * @param \Laminas\Mvc\I18n\Translator $translator
69
     */
70
    public function __construct($adapter, $cache, $logger, $config, $translator)
71
    {
72
        $this->adapter      = $adapter;
73
        $this->cache        = $cache;
74
        $this->logger       = $logger;
75
        $this->config       = $config;
76
        $this->translator   = $translator;
77
    }
78
 
79
    /**
80
     *
81
     * Generación del listado de perfiles
82
     * {@inheritDoc}
83
     * @see \Laminas\Mvc\Controller\AbstractActionController::indexAction()
84
     */
85
    public function indexAction()
86
    {
87
        return new JsonModel([
88
            'success' => false,
89
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
90
        ]);;
91
 
92
    }
93
 
94
 
95
 
96
    public function sendAction()
97
    {
98
        $request = $this->getRequest();
99
        if($request->isPost()) {
100
 
101
 
102
            $currentUserPlugin = $this->plugin('currentUserPlugin');
103
            $currentUser = $currentUserPlugin->getUser();
104
 
105
            $data = array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
106
 
107
            $form = new SendForm();
108
            $form->setData($data);
109
 
110
            if($form->isValid()) {
111
                $subject = $form->get('subject')->getValue();
112
                $message = $form->get('message')->getValue();
113
 
114
 
115
                $message = "<p>Nombre : {$currentUser->first_name} </p>" .
116
                "<p>Apellido : {$currentUser->last_name} </p>" .
117
                "<p>Email : {$currentUser->email} </p>" .
118
                $message;
119
 
120
                $email = new Email();
121
                $email->content = json_encode([
122
                    'to_address' => 'ayuda@leaderslinked.com',
123
                    'to_name' => 'Soporte del Sitio Web',
124
                    'cc' => [],
125
                    'bcc' => [],
126
                    'subject' => $subject,
127
                    'message' => $message,
128
                ]);
129
                $email->status = Email::STATUS_PENDING;
130
                $email->tried = 0;
131
 
132
                $emailMapper = EmailMapper::getInstance($this->adapter);
133
                $result = $emailMapper->insert($email);
134
 
135
                if($result) {
136
                    return new JsonModel([
137
                        'success'   => true,
138
                        'data'   =>  'LABEL_HELP_SENT_SUCCESSFULLY'
139
                    ]);
140
 
141
                } else {
142
                    return new JsonModel([
143
                        'success'   => false,
144
                        'data'   =>  'ERROR_UNKNOWN'
145
                    ]);
146
                }
147
 
148
 
149
 
150
 
151
 
152
 
153
            } else {
154
 
155
 
156
                $messages = [];
157
                $form_messages = (array) $form->getMessages();
158
                foreach($form_messages  as $fieldname => $field_messages)
159
                {
160
                    $messages[$fieldname] = array_values($field_messages);
161
                }
162
 
163
                return new JsonModel([
164
                    'success'   => false,
165
                    'data'   => $messages
166
                ]);
167
            }
168
 
169
 
170
 
171
        } else {
172
            return new JsonModel([
173
                'success' => false,
174
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
175
            ]);
176
        }
177
 
178
    }
179
 
180
}