Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev Autor Línea Nro. Línea
16770 efrain 1
<?php
16790 efrain 2
 
16770 efrain 3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\Controller;
6
 
7
 
8
use Laminas\Mvc\Controller\AbstractActionController;
9
use Laminas\View\Model\ViewModel;
10
use Laminas\View\Model\JsonModel;
16790 efrain 11
use LeadersLinked\Model\Company;
12
use LeadersLinked\Mapper\OrganizationPositionMapper;
16770 efrain 13
use LeadersLinked\Library\Functions;
16790 efrain 14
use LeadersLinked\Hydrator\ObjectPropertyHydrator;
15
use LeadersLinked\Model\User;
16
use Laminas\Http\Response;
16791 efrain 17
use LeadersLinked\Form\Organization\PositionForm;
18
use LeadersLinked\Model\OrganizationPosition;
16770 efrain 19
use LeadersLinked\Mapper\JobDescriptionMapper;
16791 efrain 20
use LeadersLinked\Mapper\UserMapper;
16770 efrain 21
 
22
 
23
class OrganizationPositionController extends AbstractActionController
24
{
25
    /**
26
     *
27
     * @var \Laminas\Db\Adapter\AdapterInterface
28
     */
29
    private $adapter;
30
 
31
    /**
32
     *
33
     * @var \LeadersLinked\Cache\CacheInterface
34
     */
35
    private $cache;
36
 
37
 
38
    /**
39
     *
40
     * @var \Laminas\Log\LoggerInterface
41
     */
42
    private $logger;
43
 
44
    /**
45
     *
46
     * @var array
47
     */
48
    private $config;
49
 
50
 
51
    /**
52
     *
53
     * @var \Laminas\Mvc\I18n\Translator
54
     */
55
    private $translator;
56
 
57
 
58
    /**
59
     *
60
     * @param \Laminas\Db\Adapter\AdapterInterface $adapter
61
     * @param \LeadersLinked\Cache\CacheInterface $cache
62
     * @param \Laminas\Log\LoggerInterface LoggerInterface $logger
63
     * @param array $config
64
     * @param \Laminas\Mvc\I18n\Translator $translator
65
     */
66
    public function __construct($adapter, $cache, $logger, $config, $translator)
67
    {
68
        $this->adapter      = $adapter;
69
        $this->cache        = $cache;
70
        $this->logger       = $logger;
71
        $this->config       = $config;
72
        $this->translator   = $translator;
73
    }
16790 efrain 74
 
16770 efrain 75
    public function indexAction()
76
    {
77
        $currentUserPlugin = $this->plugin('currentUserPlugin');
78
        $currentUser = $currentUserPlugin->getUser();
79
        $currentCompany = $currentUserPlugin->getCompany();
16790 efrain 80
 
16770 efrain 81
 
82
        $request = $this->getRequest();
16790 efrain 83
        $headers = $request->getHeaders();
84
 
16770 efrain 85
 
16791 efrain 86
        if ($request->isGet()) {
16790 efrain 87
 
88
 
89
            $headers = $request->getHeaders();
90
 
16770 efrain 91
            $isJson = false;
16790 efrain 92
            if ($headers->has('Accept')) {
16770 efrain 93
                $accept = $headers->get('Accept');
16790 efrain 94
 
16770 efrain 95
                $prioritized = $accept->getPrioritized();
16790 efrain 96
 
97
                foreach ($prioritized as $key => $value) {
16770 efrain 98
                    $raw = trim($value->getRaw());
16790 efrain 99
 
100
                    if (!$isJson) {
16770 efrain 101
                        $isJson = strpos($raw, 'json');
102
                    }
103
                }
104
            }
16790 efrain 105
 
106
            if ($isJson) {
16770 efrain 107
 
108
 
109
 
16790 efrain 110
                $items = [];
16770 efrain 111
 
16791 efrain 112
                $bossId = 0;
113
                $organizationPositionMapper = OrganizationPositionMapper::getInstance($this->adapter);
114
                $userMapper = UserMapper::getInstance($this->adapter);
115
                $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
16770 efrain 116
 
117
 
16791 efrain 118
                $items = $this->recursiveLoad($currentUser, $currentCompany, $organizationPositionMapper, $userMapper, $jobDescriptionMapper, $bossId);
16790 efrain 119
 
16770 efrain 120
 
121
 
16790 efrain 122
 
16770 efrain 123
                return new JsonModel([
124
                    'success' => true,
125
                    'data' => [
126
                        'items' => $items,
16790 efrain 127
 
16770 efrain 128
                    ]
129
                ]);
16790 efrain 130
 
131
            } else {
16770 efrain 132
 
133
 
16791 efrain 134
                $form = new PositionForm($this->adapter, $currentCompany->id);
16790 efrain 135
 
16770 efrain 136
                $this->layout()->setTemplate('layout/layout-backend');
137
                $viewModel = new ViewModel();
16791 efrain 138
                $viewModel->setTemplate('leaders-linked/organization/positions');
16770 efrain 139
                $viewModel->setVariables([
16790 efrain 140
                    'form' => $form,
141
                    'company_name' => $currentCompany->name,
142
 
16770 efrain 143
 
144
                ]);
16790 efrain 145
                return $viewModel;
146
            }
16770 efrain 147
        } else {
148
            return new JsonModel([
149
                'success' => false,
150
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
16790 efrain 151
            ]);
16770 efrain 152
        }
153
    }
154
 
16790 efrain 155
 
156
 
157
    /**
158
     *
159
     * @param User $currentUser
160
     * @param Company $currentCompany
16791 efrain 161
     * @param OrganizationPositionMapper $organizationPositionMapper
162
     * @param UserMapper $userMapper
163
     * @param JobDescriptionMapper $jobDescriptionMapper
164
     * @param int $bossId
16790 efrain 165
     * @return array
166
     */
16791 efrain 167
    private function recursiveLoad($currentUser, $currentCompany, $organizationPositionMapper, $userMapper, $jobDescriptionMapper, $bossId)
16790 efrain 168
    {
169
        $acl            = $this->getEvent()->getViewModel()->getVariable('acl');
16791 efrain 170
        $allowEdit      = $acl->isAllowed($currentUser->usertype_id, 'organization/positions/edit') ? 1 : 0;
171
        $allowDelete    = $acl->isAllowed($currentUser->usertype_id, 'organization/positions/delete') ? 1 : 0;
172
 
16790 efrain 173
        $items = [];
174
 
175
 
16791 efrain 176
        $records = $organizationPositionMapper->fetchAllByCompanyIdAndBossId($currentCompany->id, $bossId);
16790 efrain 177
 
178
 
179
        foreach($records as $record)
180
        {
181
 
16791 efrain 182
            $user = $userMapper->fetchOne($record->employee_id);
183
            $jobDescription = $jobDescriptionMapper->fetchOne($record->job_description_id);
16790 efrain 184
 
185
 
186
            array_push($items, [
187
                'uuid' => $record->uuid,
16791 efrain 188
                'name' => trim($user->first_name . ' ' . $user->last_name),
189
                'title' => $jobDescription->name,
190
                'children' => $this->recursiveLoad($currentUser, $currentCompany, $organizationPositionMapper, $userMapper, $jobDescriptionMapper, $record->employee_id),
16790 efrain 191
                'status' => $record->status,
16791 efrain 192
                'link_edit' => $allowEdit ? $this->url()->fromRoute('organization/positions/edit', ['id' => $record->uuid]) : '',
193
                'link_delete' => $allowDelete ? $this->url()->fromRoute('organization/positions/delete', ['id' => $record->uuid]) : '',
16790 efrain 194
            ]);
195
        }
196
 
197
        return $items;
198
    }
199
 
16791 efrain 200
 
16770 efrain 201
    public function addAction()
202
    {
203
        $currentUserPlugin = $this->plugin('currentUserPlugin');
204
        $currentUser = $currentUserPlugin->getUser();
205
        $currentCompany = $currentUserPlugin->getCompany();
16790 efrain 206
 
16770 efrain 207
        $request = $this->getRequest();
16790 efrain 208
 
209
 
16791 efrain 210
       if ($request->isPost())
211
       {
212
            $form = new PositionForm($this->adapter, $currentCompany->id);
16790 efrain 213
            $dataPost = $request->getPost()->toArray();
214
 
215
 
216
            $form->setData($dataPost);
217
 
218
            if ($form->isValid()) {
16791 efrain 219
                $userMapper = UserMapper::getInstance($this->adapter);
16770 efrain 220
 
16791 efrain 221
                $organizationPositionMapper = OrganizationPositionMapper::getInstance($this->adapter);
222
 
16790 efrain 223
                $dataPost = (array) $form->getData();
224
 
16791 efrain 225
                $boss = null;
226
                if(!empty($dataPost['boss_id'])) {
227
                    $boss = $userMapper->fetchOneByUuid( $dataPost['boss_id'] );
16790 efrain 228
                }
16770 efrain 229
 
16790 efrain 230
 
16791 efrain 231
                $employee = $userMapper->fetchOneByUuid( $dataPost['employee_id'] );
16790 efrain 232
 
16791 efrain 233
                $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
234
                $jobDescription = $jobDescriptionMapper->fetchOneByUuid( $dataPost['job_description_id'] );
16790 efrain 235
 
16791 efrain 236
                $organizationPosition = new OrganizationPosition();
237
                $organizationPosition->company_id = $currentCompany->id;
238
                $organizationPosition->job_description_id = $jobDescription->id;
239
                $organizationPosition->employee_id = $employee->id;
240
                $organizationPosition->boss_id = $boss ? $boss->id : null;
241
                if(empty($dataPost['status'])) {
242
                    $organizationPosition->status = OrganizationPosition::STATUS_INACTIVE;
243
                } else {
244
                    $organizationPosition->status = $dataPost['status'] == OrganizationPosition::STATUS_ACTIVE ? OrganizationPosition::STATUS_ACTIVE : OrganizationPosition::STATUS_INACTIVE;
16790 efrain 245
                }
246
 
16791 efrain 247
                $result = $organizationPositionMapper->insert($organizationPosition);
248
                if ($result) {
249
                    $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
250
                    $jobDescription = $jobDescriptionMapper->fetchOne($organizationPosition->job_description_id);
16790 efrain 251
 
252
 
16791 efrain 253
                    $this->logger->info('Se agrego una posición para la descripción de cargo : ' . $jobDescription->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
16790 efrain 254
 
16770 efrain 255
                    $data = [
16790 efrain 256
                        'success' => true,
257
                        'data' => 'LABEL_RECORD_ADDED'
16770 efrain 258
                    ];
259
                } else {
260
                    $data = [
16790 efrain 261
                        'success' => false,
16791 efrain 262
                        'data' => $organizationPositionMapper->getError()
16770 efrain 263
                    ];
264
                }
16790 efrain 265
 
16770 efrain 266
                return new JsonModel($data);
267
            } else {
268
                $messages = [];
269
                $form_messages = (array) $form->getMessages();
16790 efrain 270
                foreach ($form_messages as $fieldname => $field_messages) {
271
 
16770 efrain 272
                    $messages[$fieldname] = array_values($field_messages);
273
                }
16790 efrain 274
 
16770 efrain 275
                return new JsonModel([
16790 efrain 276
                    'success' => false,
277
                    'data' => $messages
16770 efrain 278
                ]);
279
            }
280
        } else {
281
            $data = [
282
                'success' => false,
283
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
284
            ];
16790 efrain 285
 
16770 efrain 286
            return new JsonModel($data);
287
        }
16790 efrain 288
 
16770 efrain 289
        return new JsonModel($data);
290
    }
291
 
16791 efrain 292
 
16770 efrain 293
    public function editAction()
294
    {
295
        $currentUserPlugin = $this->plugin('currentUserPlugin');
296
        $currentUser = $currentUserPlugin->getUser();
297
        $currentCompany = $currentUserPlugin->getCompany();
16790 efrain 298
 
16770 efrain 299
        $request = $this->getRequest();
300
        $uuid = $this->params()->fromRoute('id');
301
 
16790 efrain 302
 
303
        if (!$uuid) {
16770 efrain 304
            $data = [
16790 efrain 305
                'success' => false,
306
                'data' => 'ERROR_INVALID_PARAMETER'
16770 efrain 307
            ];
16790 efrain 308
 
16770 efrain 309
            return new JsonModel($data);
310
        }
311
 
16791 efrain 312
        $organizationPositionMapper = OrganizationPositionMapper::getInstance($this->adapter);
313
        $organizationPosition = $organizationPositionMapper->fetchOneByUuid($uuid);
314
        if (!$organizationPosition) {
16770 efrain 315
            $data = [
16790 efrain 316
                'success' => false,
317
                'data' => 'ERROR_RECORD_NOT_FOUND'
16770 efrain 318
            ];
16790 efrain 319
 
16770 efrain 320
            return new JsonModel($data);
321
        }
16790 efrain 322
 
16791 efrain 323
        if ($currentCompany && $organizationPosition->company_id != $currentCompany->id) {
16770 efrain 324
            $data = [
16790 efrain 325
                'success' => false,
326
                'data' => 'ERROR_UNAUTHORIZED'
16770 efrain 327
            ];
16790 efrain 328
 
16770 efrain 329
            return new JsonModel($data);
330
        }
16790 efrain 331
 
332
 
333
        if ($request->isPost()) {
16791 efrain 334
            $form = new PositionForm($this->adapter, $currentCompany->id);
16770 efrain 335
            $dataPost = $request->getPost()->toArray();
16790 efrain 336
 
16770 efrain 337
            $form->setData($dataPost);
16790 efrain 338
 
339
            if ($form->isValid()) {
16791 efrain 340
                $userMapper = UserMapper::getInstance($this->adapter);
341
                $boss = null;
342
                if(!empty($dataPost['boss_id'])) {
343
                    $boss = $userMapper->fetchOneByUuid( $dataPost['boss_id'] );
16790 efrain 344
                }
345
 
16791 efrain 346
                $employee = $userMapper->fetchOneByUuid( $dataPost['employee_id'] );
16770 efrain 347
 
16791 efrain 348
                $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
349
                $jobDescription = $jobDescriptionMapper->fetchOneByUuid( $dataPost['job_description_id'] );
16790 efrain 350
 
16791 efrain 351
                $organizationPosition->job_description_id = $jobDescription->id;
352
                $organizationPosition->employee_id = $employee->id;
353
                $organizationPosition->boss_id = $boss ? $boss->id : null;
16790 efrain 354
 
16791 efrain 355
 
356
                if(empty($dataPost['status'])) {
357
                    $organizationPosition->status = OrganizationPosition::STATUS_INACTIVE;
358
                } else {
359
                    $organizationPosition->status = $dataPost['status'] == OrganizationPosition::STATUS_ACTIVE ? OrganizationPosition::STATUS_ACTIVE : OrganizationPosition::STATUS_INACTIVE;
360
                }
361
 
362
 
363
                $result = $organizationPositionMapper->update($organizationPosition);
16770 efrain 364
 
16790 efrain 365
                if ($result) {
16791 efrain 366
                    $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
367
                    $jobDescription = $jobDescriptionMapper->fetchOne($organizationPosition->job_description_id);
16790 efrain 368
 
369
 
16791 efrain 370
                    $this->logger->info('Se actualizo una posición para la descripción de cargo ' . $jobDescription->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
16770 efrain 371
 
372
                    $data = [
373
                        'success' => true,
374
                        'data' => 'LABEL_RECORD_UPDATED'
375
                    ];
376
                } else {
377
                    $data = [
16790 efrain 378
                        'success' => false,
16791 efrain 379
                        'data' => $organizationPositionMapper->getError()
16770 efrain 380
                    ];
381
                }
16790 efrain 382
 
16770 efrain 383
                return new JsonModel($data);
384
            } else {
385
                $messages = [];
386
                $form_messages = (array) $form->getMessages();
16790 efrain 387
                foreach ($form_messages as $fieldname => $field_messages) {
16770 efrain 388
                    $messages[$fieldname] = array_values($field_messages);
389
                }
16790 efrain 390
 
16770 efrain 391
                return new JsonModel([
16790 efrain 392
                    'success' => false,
393
                    'data' => $messages
16770 efrain 394
                ]);
395
            }
396
        } else if ($request->isGet()) {
16791 efrain 397
 
398
            $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
399
            $jobDescription = $jobDescriptionMapper->fetchOne($organizationPosition->job_description_id);
400
 
16770 efrain 401
 
16791 efrain 402
            $userMapper = UserMapper::getInstance($this->adapter);
403
            $employee = $userMapper->fetchOne($organizationPosition->employee_id);
16770 efrain 404
 
16791 efrain 405
            $boss = '';
406
            if($organizationPosition->boss_id) {
407
                $boss  = $userMapper->fetchOne($organizationPosition->boss_id);
16790 efrain 408
            }
16770 efrain 409
 
16791 efrain 410
            $options = [];
411
            if($jobDescription->job_description_id_boss) {
412
                $records = $organizationPositionMapper->fetchAllByCompanyIdAndJobDescriptionId($jobDescription->company_id, $jobDescription->job_description_id_boss);
413
                foreach($records as $record)
16770 efrain 414
                {
16791 efrain 415
                    $user = $userMapper->fetchOne($record->employee_id);
416
                    if($user) {
417
                        $options[ $user->uuid ] = trim($user->first_name . ' ' . $user->last_name);
16770 efrain 418
                    }
419
                }
420
 
16790 efrain 421
            }
16770 efrain 422
 
423
 
424
 
16790 efrain 425
 
426
            $data = [
16791 efrain 427
                'job_description_id' => $jobDescription->uuid,
428
                'employee_id' => $employee->uuid,
429
                'boss_id' =>  $boss ? $boss->uuid : '',
430
                'status' => $organizationPosition->status,
431
                'options' => $options,
432
 
16790 efrain 433
            ];
16791 efrain 434
 
16790 efrain 435
 
16770 efrain 436
            $response = [
437
                'success' => true,
438
                'data' => $data
439
            ];
16790 efrain 440
 
16770 efrain 441
            return new JsonModel($response);
442
        } else {
443
            $data = [
444
                'success' => false,
445
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
446
            ];
16790 efrain 447
 
16770 efrain 448
            return new JsonModel($data);
449
        }
16790 efrain 450
 
16770 efrain 451
        return new JsonModel($data);
452
    }
16790 efrain 453
 
16770 efrain 454
    public function deleteAction()
455
    {
456
        $currentUserPlugin = $this->plugin('currentUserPlugin');
457
        $currentUser = $currentUserPlugin->getUser();
458
        $currentCompany = $currentUserPlugin->getCompany();
16790 efrain 459
 
16770 efrain 460
        $request = $this->getRequest();
461
        $uuid = $this->params()->fromRoute('id');
16790 efrain 462
 
463
        if (!$uuid) {
16770 efrain 464
            $data = [
16790 efrain 465
                'success' => false,
466
                'data' => 'ERROR_INVALID_PARAMETER'
16770 efrain 467
            ];
16790 efrain 468
 
16770 efrain 469
            return new JsonModel($data);
470
        }
16790 efrain 471
 
472
 
16791 efrain 473
        $organizationPositionMapper = OrganizationPositionMapper::getInstance($this->adapter);
474
        $organizationPosition = $organizationPositionMapper->fetchOneByUuid($uuid);
475
        if (!$organizationPosition) {
16770 efrain 476
            $data = [
16790 efrain 477
                'success' => false,
478
                'data' => 'ERROR_RECORD_NOT_FOUND'
16770 efrain 479
            ];
16790 efrain 480
 
16770 efrain 481
            return new JsonModel($data);
482
        }
16790 efrain 483
 
16791 efrain 484
        if ($currentCompany && $organizationPosition->company_id != $currentCompany->id) {
16770 efrain 485
            $data = [
16790 efrain 486
                'success' => false,
487
                'data' => 'ERROR_UNAUTHORIZED'
16770 efrain 488
            ];
16790 efrain 489
 
16770 efrain 490
            return new JsonModel($data);
491
        }
16790 efrain 492
 
493
 
494
        if ($request->isPost()) {
495
 
16791 efrain 496
            $organizationPositionMapper->removeParentByEmployeeId($organizationPosition->employee_id);
497
 
498
            $result = $organizationPositionMapper->delete($organizationPosition);
16790 efrain 499
            if ($result) {
16791 efrain 500
                $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
501
                $jobDescription = $jobDescriptionMapper->fetchOne($organizationPosition->job_description_id);
502
 
503
                $this->logger->info('Se borro un puesto de la descripción de ' . $jobDescription->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
16790 efrain 504
 
16770 efrain 505
                $data = [
506
                    'success' => true,
507
                    'data' => 'LABEL_RECORD_DELETED'
508
                ];
509
            } else {
510
 
511
                $data = [
16790 efrain 512
                    'success' => false,
16791 efrain 513
                    'data' => $organizationPositionMapper->getError()
16770 efrain 514
                ];
515
 
516
                return new JsonModel($data);
517
            }
518
        } else {
519
            $data = [
520
                'success' => false,
521
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
522
            ];
16790 efrain 523
 
16770 efrain 524
            return new JsonModel($data);
525
        }
16790 efrain 526
 
16770 efrain 527
        return new JsonModel($data);
528
    }
16790 efrain 529
 
16791 efrain 530
 
16790 efrain 531
    public function bossAction()
16770 efrain 532
    {
533
        $currentUserPlugin = $this->plugin('currentUserPlugin');
534
        $currentUser = $currentUserPlugin->getUser();
535
        $currentCompany = $currentUserPlugin->getCompany();
16790 efrain 536
 
16770 efrain 537
        $request = $this->getRequest();
16791 efrain 538
        $uuid = $this->params()->fromQuery('job_description_id');
16790 efrain 539
 
540
 
541
        if (!$uuid) {
16770 efrain 542
            $data = [
16790 efrain 543
                'success' => false,
544
                'data' => 'ERROR_INVALID_PARAMETER'
16770 efrain 545
            ];
16790 efrain 546
 
16770 efrain 547
            return new JsonModel($data);
548
        }
16790 efrain 549
 
550
        $jobDescriptionMapper = JobDescriptionMapper::getInstance($this->adapter);
551
        $jobDescription = $jobDescriptionMapper->fetchOneByUuid($uuid);
552
        if (!$jobDescription) {
16770 efrain 553
            $data = [
16790 efrain 554
                'success' => false,
555
                'data' => 'ERROR_RECORD_NOT_FOUND'
16770 efrain 556
            ];
16790 efrain 557
 
16770 efrain 558
            return new JsonModel($data);
559
        }
16790 efrain 560
 
561
        if ($currentCompany && $jobDescription->company_id != $currentCompany->id) {
16770 efrain 562
            $data = [
16790 efrain 563
                'success' => false,
564
                'data' => 'ERROR_UNAUTHORIZED'
16770 efrain 565
            ];
16790 efrain 566
 
16770 efrain 567
            return new JsonModel($data);
568
        }
16790 efrain 569
 
570
 
16770 efrain 571
        if ($request->isGet()) {
16791 efrain 572
            $items = [];
16770 efrain 573
 
16791 efrain 574
            if($jobDescription->job_description_id_boss) {
16790 efrain 575
 
16791 efrain 576
                $userMapper = UserMapper::getInstance($this->adapter);
16790 efrain 577
                $organizationPositionMapper = OrganizationPositionMapper::getInstance($this->adapter);
16791 efrain 578
                $records = $organizationPositionMapper->fetchAllByCompanyIdAndJobDescriptionId($jobDescription->company_id, $jobDescription->job_description_id_boss);
16790 efrain 579
 
16791 efrain 580
 
581
                foreach($records as $record)
582
                {
583
                    $user = $userMapper->fetchOne($record->employee_id);
584
                    if($user) {
585
                        $items[ $user->uuid ] = trim( $user->first_name . ' ' . $user->last_name );
586
                    }
587
                }
16790 efrain 588
            }
16770 efrain 589
 
590
 
16791 efrain 591
            $data = [
592
                'success' => true,
593
                'data' => $items
594
            ];
595
 
596
            return new JsonModel($data);
597
 
16790 efrain 598
 
16770 efrain 599
        } else {
600
            $data = [
601
                'success' => false,
602
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
603
            ];
16790 efrain 604
 
605
            return new JsonModel($data);
16770 efrain 606
        }
16790 efrain 607
 
16770 efrain 608
        return new JsonModel($data);
16790 efrain 609
    }
16770 efrain 610
 
611
 
16790 efrain 612
 
16791 efrain 613
 
16790 efrain 614
 
16770 efrain 615
}