Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 16768 | Ir a la última revisión | | 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;
8
use LeadersLinked\Cache\CacheInterface;
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;
41
use LeadersLinked\Mapper\CompanyMicrolearningCapsuleUserMapper;
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
     *
62
     * @var AdapterInterface
63
     */
64
    private $adapter;
65
 
66
 
67
    /**
68
     *
69
     * @var CacheInterface
70
     */
71
    private $cache;
72
 
73
    /**
74
     *
75
     * @var  LoggerInterface
76
     */
77
    private $logger;
78
 
79
    /**
80
     *
81
     * @var array
82
     */
83
    private $config;
84
 
85
 
86
    /**
87
     *
88
     * @param AdapterInterface $adapter
89
     * @param CacheInterface $cache
90
     * @param LoggerInterface $logger
91
     * @param array $config
92
     */
93
    public function __construct($adapter, $cache, $logger, $config)
94
    {
95
        $this->adapter      = $adapter;
96
        $this->cache        = $cache;
97
        $this->logger       = $logger;
98
        $this->config       = $config;
99
 
100
    }
101
 
102
 
103
 
104
    public function searchPeopleAction()
105
    {
106
        $request = $this->getRequest();
107
        if ($request->isGet()) {
108
 
109
            $currentUserPlugin = $this->plugin('currentUserPlugin');
110
            $currentUser = $currentUserPlugin->getUser();
111
 
112
            $search = Functions::sanitizeFilterString($this->params()->fromQuery('search'));
113
            if (strlen($search) >= 3) {
114
 
115
 
116
                $userMapper = UserMapper::getInstance($this->adapter);
117
                $records  = $userMapper->fetchAllSuggestByNetworkIdAndSearch($currentUser->network_id, $search);
118
 
119
                $users = [];
120
                foreach ($records as $record) {
121
                    if ($currentUser->id == $record->id) {
122
                        continue;
123
                    }
124
 
125
 
126
                    array_push($users, [
127
                        'id' => $record->uuid,
128
                        'text' => trim($record->first_name . ' ' . $record->last_name) . ' (' . $record->email . ')'
129
 
130
                    ]);
131
                }
132
 
133
                return new JsonModel([
134
                    'success' => true,
135
                    'data' => $users
136
                ]);
137
            } else {
138
                return new JsonModel([
139
                    'success' => true,
140
                    'data' => []
141
                ]);
142
            }
143
        } else {
144
            return new JsonModel([
145
                'success' => false,
146
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
147
            ]);
148
        }
149
    }
150
}