Proyectos de Subversion LeadersLinked - Backend

Rev

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