Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 16798 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
16766 efrain 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\Controller;
6
 
7
use Laminas\Db\Adapter\AdapterInterface;
16768 efrain 8
 
16766 efrain 9
use Laminas\Mvc\Controller\AbstractActionController;
10
use Laminas\Log\LoggerInterface;
11
use Laminas\View\Model\JsonModel;
12
use LeadersLinked\Mapper\CalendarEventMapper;
13
use LeadersLinked\Mapper\CompanyFollowerMapper;
14
use LeadersLinked\Mapper\CompanyServiceMapper;
15
use LeadersLinked\Mapper\JobDescriptionMapper;
16
use LeadersLinked\Mapper\PerformanceEvaluationFormMapper;
17
use LeadersLinked\Mapper\PerformanceEvaluationTestMapper;
18
use LeadersLinked\Mapper\QueryMapper;
19
use LeadersLinked\Mapper\RecruitmentSelectionCandidateMapper;
20
use LeadersLinked\Mapper\RecruitmentSelectionInterviewMapper;
21
use LeadersLinked\Mapper\RecruitmentSelectionVacancyMapper;
22
use LeadersLinked\Mapper\UserMapper;
23
use LeadersLinked\Mapper\ZoomMeetingMapper;
24
use LeadersLinked\Library\Functions;
25
use LeadersLinked\Mapper\UserNotificationSettingMapper;
26
 
27
use LeadersLinked\Model\CalendarEvent;
28
use LeadersLinked\Model\PerformanceEvaluationTest;
29
use LeadersLinked\Model\RecruitmentSelectionInterview;
30
use LeadersLinked\Model\User;
31
use LeadersLinked\Mapper\ConnectionMapper;
32
use LeadersLinked\Mapper\ProfileVisitMapper;
33
use LeadersLinked\Mapper\GroupMemberMapper;
34
use LeadersLinked\Model\GroupMember;
35
use LeadersLinked\Mapper\GroupMapper;
36
use LeadersLinked\Model\Group;
37
use Laminas\Db\Sql\Expression;
38
use LeadersLinked\Mapper\CompanyUserMapper;
39
use LeadersLinked\Model\CompanyUser;
40
use LeadersLinked\Model\UserType;
17002 efrain 41
use LeadersLinked\Mapper\MicrolearningCapsuleUserMapper;
16766 efrain 42
use LeadersLinked\Model\Notification;
43
use LeadersLinked\Mapper\NotificationMapper;
44
use LeadersLinked\Mapper\EmailTemplateMapper;
45
use LeadersLinked\Model\EmailTemplate;
46
use LeadersLinked\Library\QueueEmail;
47
use LeadersLinked\Mapper\PostMapper;
48
use LeadersLinked\Mapper\CompanyMapper;
49
use LeadersLinked\Model\Company;
50
use LeadersLinked\Model\Connection;
51
use LeadersLinked\Model\Service;
52
use LeadersLinked\Mapper\DailyPulseEmojiMapper;
53
use LeadersLinked\Mapper\UserProfileMapper;
54
use LeadersLinked\Mapper\NetworkMapper;
55
use LeadersLinked\Model\Network;
56
use LeadersLinked\Mapper\LocationMapper;
57
 
58
class HelperController extends AbstractActionController
59
{
60
    /**
61
     *
16769 efrain 62
     * @var \Laminas\Db\Adapter\AdapterInterface
16766 efrain 63
     */
64
    private $adapter;
16768 efrain 65
 
16766 efrain 66
    /**
67
     *
16769 efrain 68
     * @var \LeadersLinked\Cache\CacheInterface
16766 efrain 69
     */
16769 efrain 70
    private $cache;
71
 
72
 
73
    /**
74
     *
75
     * @var \Laminas\Log\LoggerInterface
76
     */
16766 efrain 77
    private $logger;
16768 efrain 78
 
16766 efrain 79
    /**
80
     *
81
     * @var array
82
     */
83
    private $config;
16768 efrain 84
 
16769 efrain 85
 
16766 efrain 86
    /**
87
     *
16769 efrain 88
     * @var \Laminas\Mvc\I18n\Translator
89
     */
90
    private $translator;
91
 
92
 
93
    /**
94
     *
95
     * @param \Laminas\Db\Adapter\AdapterInterface $adapter
96
     * @param \LeadersLinked\Cache\CacheInterface $cache
97
     * @param \Laminas\Log\LoggerInterface LoggerInterface $logger
16766 efrain 98
     * @param array $config
16769 efrain 99
     * @param \Laminas\Mvc\I18n\Translator $translator
16766 efrain 100
     */
16769 efrain 101
    public function __construct($adapter, $cache, $logger, $config, $translator)
16766 efrain 102
    {
16769 efrain 103
        $this->adapter      = $adapter;
104
        $this->cache        = $cache;
105
        $this->logger       = $logger;
106
        $this->config       = $config;
107
        $this->translator   = $translator;
16766 efrain 108
    }
109
 
16798 efrain 110
    public function searchPeopleByCompanyAction()
111
    {
112
        $request = $this->getRequest();
113
        if ($request->isGet()) {
114
 
115
            $currentUserPlugin = $this->plugin('currentUserPlugin');
116
            $currentUser = $currentUserPlugin->getUser();
117
            $currentCompany = $currentUserPlugin->getCompany();
118
 
119
            $search = Functions::sanitizeFilterString($this->params()->fromQuery('search'));
120
            if (strlen($search) >= 3) {
121
 
122
 
123
                $userMapper = UserMapper::getInstance($this->adapter);
124
                $records  = $userMapper->fetchAllByNetworkIdAndCompanyIdAndSearch($currentUser->network_id, $currentCompany->id,  $search);
125
 
126
                $users = [];
127
                foreach ($records as $record) {
16766 efrain 128
 
16798 efrain 129
 
130
                    array_push($users, [
131
                        'id' => $record->uuid,
132
                        'text' => trim($record->first_name . ' ' . $record->last_name) . ' (' . $record->email . ')'
133
 
134
                    ]);
135
                }
136
 
137
                return new JsonModel([
138
                    'success' => true,
139
                    'data' => $users
140
                ]);
141
            } else {
142
                return new JsonModel([
143
                    'success' => true,
144
                    'data' => []
145
                ]);
146
            }
147
        } else {
148
            return new JsonModel([
149
                'success' => false,
150
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
151
            ]);
152
        }
153
    }
154
 
16766 efrain 155
 
156
    public function searchPeopleAction()
157
    {
158
        $request = $this->getRequest();
159
        if ($request->isGet()) {
160
 
161
            $currentUserPlugin = $this->plugin('currentUserPlugin');
162
            $currentUser = $currentUserPlugin->getUser();
163
 
164
            $search = Functions::sanitizeFilterString($this->params()->fromQuery('search'));
165
            if (strlen($search) >= 3) {
166
 
167
 
168
                $userMapper = UserMapper::getInstance($this->adapter);
169
                $records  = $userMapper->fetchAllSuggestByNetworkIdAndSearch($currentUser->network_id, $search);
170
 
171
                $users = [];
172
                foreach ($records as $record) {
173
                    if ($currentUser->id == $record->id) {
174
                        continue;
175
                    }
176
 
177
 
178
                    array_push($users, [
179
                        'id' => $record->uuid,
180
                        'text' => trim($record->first_name . ' ' . $record->last_name) . ' (' . $record->email . ')'
181
 
182
                    ]);
183
                }
184
 
185
                return new JsonModel([
186
                    'success' => true,
187
                    'data' => $users
188
                ]);
189
            } else {
190
                return new JsonModel([
191
                    'success' => true,
192
                    'data' => []
193
                ]);
194
            }
195
        } else {
196
            return new JsonModel([
197
                'success' => false,
198
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
199
            ]);
200
        }
201
    }
202
}