Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 5837 | Rev 5938 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 5837 Rev 5937
Línea 1... Línea 1...
1
<?php
1
<?php
-
 
2
 
2
declare(strict_types = 1);
3
declare(strict_types=1);
-
 
4
 
3
namespace LeadersLinked\Controller;
5
namespace LeadersLinked\Controller;
Línea 4... Línea 6...
4
 
6
 
5
use Laminas\Db\Adapter\AdapterInterface;
7
use Laminas\Db\Adapter\AdapterInterface;
6
use Laminas\Cache\Storage\Adapter\AbstractAdapter;
8
use Laminas\Cache\Storage\Adapter\AbstractAdapter;
Línea 78... Línea 80...
78
    {
80
    {
79
        $this->adapter  = $adapter;
81
        $this->adapter  = $adapter;
80
        $this->cache    = $cache;
82
        $this->cache    = $cache;
81
        $this->logger   = $logger;
83
        $this->logger   = $logger;
82
        $this->config   = $config;
84
        $this->config   = $config;
83
 
-
 
84
 
-
 
85
    }
85
    }
86
    
86
 
87
    /**
87
    /**
88
     *
88
     *
89
     * Ruta usada para mostrar el chat en pantalla completa usada en los moviles
89
     * Ruta usada para mostrar el chat en pantalla completa usada en los moviles
90
     * 
90
     * 
91
     */
91
     */
92
    public function indexAction()
92
    public function indexAction()
93
    {
93
    {
94
        $currentUserPlugin = $this->plugin('currentUserPlugin');
94
        $currentUserPlugin = $this->plugin('currentUserPlugin');
95
        $currentUser = $currentUserPlugin->getUser();
95
        $currentUser = $currentUserPlugin->getUser();
96
        
96
 
97
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
97
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
98
        $currentNetwork = $currentNetworkPlugin->getNetwork();
98
        $currentNetwork = $currentNetworkPlugin->getNetwork();
99
        
99
 
100
        $userIds = [];
100
        $userIds = [];
101
        if($currentNetwork->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER)  {
101
        if ($currentNetwork->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER) {
102
        
102
 
103
        
103
 
104
            $connectionMapper = ConnectionMapper:: getInstance($this->adapter);
104
            $connectionMapper = ConnectionMapper::getInstance($this->adapter);
105
            $userIds = $connectionMapper->fetchAllConnectionsByUserReturnIds( $currentUser->id );
105
            $userIds = $connectionMapper->fetchAllConnectionsByUserReturnIds($currentUser->id);
106
            
-
 
107
           
-
 
108
        } else {
106
        } else {
109
            
107
 
110
            $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
108
            $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
111
            $records = $chatUserMapper->fetchAllByUserId($currentUser->id);
109
            $records = $chatUserMapper->fetchAllByUserId($currentUser->id);
112
            
110
 
113
            foreach($records as $record)
111
            foreach ($records as $record) {
114
            {
-
 
115
                if($record->user_id1 == $currentUser->id) {
112
                if ($record->user_id1 == $currentUser->id) {
116
                    array_push($userIds, $record->user_id2);
113
                    array_push($userIds, $record->user_id2);
117
                } else {
114
                } else {
118
                    array_push($userIds, $record->user_id1);
115
                    array_push($userIds, $record->user_id1);
119
                }
116
                }
120
            }
117
            }
121
            
-
 
122
            
-
 
123
        }
118
        }
124
        
119
 
125
        $contacts = [];
120
        $contacts = [];
126
        if($userIds) {
121
        if ($userIds) {
127
            
122
 
128
            //$utilMapper = UtilMapper::getInstance($this->adapter);
123
            //$utilMapper = UtilMapper::getInstance($this->adapter);
129
            //$now = $utilMapper->getDatebaseNow();
124
            //$now = $utilMapper->getDatebaseNow();
130
            
125
 
131
            $userMapper = UserMapper::getInstance($this->adapter);
126
            $userMapper = UserMapper::getInstance($this->adapter);
132
            $users = $userMapper->fetchAllByIds($userIds);
127
            $users = $userMapper->fetchAllByIds($userIds);
133
            
128
 
134
            foreach($users as $user)
129
            foreach ($users as $user) {
135
            {
-
 
136
                $username = trim($user->first_name . ' ' . $user->last_name);
130
                $username = trim($user->first_name . ' ' . $user->last_name);
137
                $status = $user->online ? 'LABEL_ONLINE' : 'LABEL_OFFLINE';
131
                $status = $user->online ? 'LABEL_ONLINE' : 'LABEL_OFFLINE';
138
                $user_image = $this->url()->fromRoute('storage', ['type' => 'user', 'code' => $user->uuid, 'filename' => $user->image]);
132
                $user_image = $this->url()->fromRoute('storage', ['type' => 'user', 'code' => $user->uuid, 'filename' => $user->image]);
139
                
133
 
140
                array_push($contacts, ['id' => $user->uuid, 'status'=> $status,'name'=> $username, 'image' => $user_image]);
134
                array_push($contacts, ['id' => $user->uuid, 'status' => $status, 'name' => $username, 'image' => $user_image]);
141
                
-
 
142
            }
135
            }
143
        }
136
        }
144
        
137
 
145
        $groups = [];
138
        $groups = [];
146
        $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
139
        $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
147
        $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
140
        $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
148
        
141
 
149
        $results = $chatGroupUserMapper->fetchAllByUserId($currentUser->id);
142
        $results = $chatGroupUserMapper->fetchAllByUserId($currentUser->id);
150
        if(is_array($results)) {
143
        if (is_array($results)) {
151
            foreach ($results as $r) 
144
            foreach ($results as $r) {
152
            {
-
 
153
                
145
 
154
                $chatOwner = $chatGroupUserMapper->fetchOwnerByGroupId($r->group_id);
146
                $chatOwner = $chatGroupUserMapper->fetchOwnerByGroupId($r->group_id);
155
                $userOwner = $userMapper->fetchOne( $chatOwner->user_id );
147
                $userOwner = $userMapper->fetchOne($chatOwner->user_id);
156
                $chatGroup = $chatGroupMapper->fetchOne($r->group_id);
148
                $chatGroup = $chatGroupMapper->fetchOne($r->group_id);
157
                
149
 
158
                array_push($groups, ['id' => $chatGroup->uuid, 'name' => $chatGroup->name, 'owner_id' => $userOwner->uuid ]);
150
                array_push($groups, ['id' => $chatGroup->uuid, 'name' => $chatGroup->name, 'owner_id' => $userOwner->uuid]);
159
                
-
 
160
                
-
 
161
                
-
 
162
            }
151
            }
163
        }
152
        }
164
        
153
 
Línea 165... Línea 154...
165
 
154
 
166
        $this->layout()->setTemplate('layout/layout.phtml');
155
        $this->layout()->setTemplate('layout/layout.phtml');
167
        $viewModel = new ViewModel();
156
        $viewModel = new ViewModel();
168
        $viewModel->setTemplate('leaders-linked/chat/chat.phtml');
157
        $viewModel->setTemplate('leaders-linked/chat/chat.phtml');
169
        $viewModel->setVariables([
158
        $viewModel->setVariables([
170
            'contacts' => $contacts, 
159
            'contacts' => $contacts,
171
            'groups' => $groups, 
160
            'groups' => $groups,
172
            'user_id' => $currentUser->id,
161
            'user_id' => $currentUser->id,
173
            'is_chat' => true,
162
            'is_chat' => true,
174
            'timezone' => $currentUser->timezone,
163
            'timezone' => $currentUser->timezone,
175
        ]);
164
        ]);
176
        return $viewModel ;
-
 
177
       
-
 
178
        
165
        return $viewModel;
179
    }
166
    }
180
    
167
 
181
    /**
168
    /**
182
     * Recuperamos los contactos y grupos 
169
     * Recuperamos los contactos y grupos 
183
     * tiene que enviarse un petición GET a la siguiente url: /chat/heart-beat
170
     * tiene que enviarse un petición GET a la siguiente url: /chat/heart-beat
184
     * retorna un json en caso de ser  positivo
171
     * retorna un json en caso de ser  positivo
Línea 252... Línea 239...
252
     */
239
     */
253
    public function heartBeatAction()
240
    public function heartBeatAction()
254
    {
241
    {
255
        $currentUserPlugin = $this->plugin('currentUserPlugin');
242
        $currentUserPlugin = $this->plugin('currentUserPlugin');
256
        $currentUser = $currentUserPlugin->getUser();
243
        $currentUser = $currentUserPlugin->getUser();
257
        
244
 
258
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
245
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
259
        $currentNetwork = $currentNetworkPlugin->getNetwork();
246
        $currentNetwork = $currentNetworkPlugin->getNetwork();
260
        
247
 
261
        
248
 
262
        $request    = $this->getRequest();
249
        $request    = $this->getRequest();
263
        if($request->isGet()) {
250
        if ($request->isGet()) {
264
            $utilMapper = UtilMapper::getInstance($this->adapter);
251
            $utilMapper = UtilMapper::getInstance($this->adapter);
265
            $now = $utilMapper->getDatebaseNow();
252
            $now = $utilMapper->getDatebaseNow();
Línea 266... Línea 253...
266
 
253
 
267
 
254
 
Línea 268... Línea 255...
268
 
255
 
269
            $userMapper = UserMapper::getInstance($this->adapter);
256
            $userMapper = UserMapper::getInstance($this->adapter);
270
            $userMapper->updateChatOnlineStatus($currentUser->id);
257
            $userMapper->updateChatOnlineStatus($currentUser->id);
271
 
258
 
272
            $chats      = [];
259
            $chats      = [];
273
            
260
 
274
            $chatGroupMapper            = ChatGroupMapper::getInstance($this->adapter);
261
            $chatGroupMapper            = ChatGroupMapper::getInstance($this->adapter);
275
            $chatGroupUserMapper        = ChatGroupUserMapper::getInstance($this->adapter);
262
            $chatGroupUserMapper        = ChatGroupUserMapper::getInstance($this->adapter);
276
            $chatGroupUserMessageMapper = ChatGroupUserMessageMapper::getInstance($this->adapter);
263
            $chatGroupUserMessageMapper = ChatGroupUserMessageMapper::getInstance($this->adapter);
277
           
264
 
278
            
265
 
279
            $results = $chatGroupUserMapper->fetchAllByUserId($currentUser->id);
-
 
280
            
266
            $results = $chatGroupUserMapper->fetchAllByUserId($currentUser->id);
281
            if (is_array($results)) {
267
 
282
                foreach ($results as $r) 
268
            if (is_array($results)) {
283
                {
269
                foreach ($results as $r) {
Línea 284... Línea 270...
284
                    
270
 
285
                    $chatGroup      = $chatGroupMapper->fetchOne($r->group_id); 
271
                    $chatGroup      = $chatGroupMapper->fetchOne($r->group_id);
286
                    $chatUserOwner  = $chatGroupUserMapper->fetchOwnerByGroupId($chatGroup->id);
272
                    $chatUserOwner  = $chatGroupUserMapper->fetchOwnerByGroupId($chatGroup->id);
287
                    $chatUser       = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
273
                    $chatUser       = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
288
 
274
 
289
                    $is_open                        = $chatUser->open == ChatGroupUser::OPEN_YES;
275
                    $is_open                        = $chatUser->open == ChatGroupUser::OPEN_YES;
290
                    $count_not_seen_messages        = $chatGroupUserMessageMapper->countNotSeenMessages($chatGroup->id, $currentUser->id);
276
                    $count_not_seen_messages        = $chatGroupUserMessageMapper->countNotSeenMessages($chatGroup->id, $currentUser->id);
291
                    $count_not_received_messages    = $chatGroupUserMessageMapper->countNotReceivedMessages($chatGroup->id, $currentUser->id);
277
                    $count_not_received_messages    = $chatGroupUserMessageMapper->countNotReceivedMessages($chatGroup->id, $currentUser->id);
292
                    $lastMessage                    = $chatGroupUserMessageMapper->fetchLastMessage($chatGroup->id, $currentUser->id);
278
                    $lastMessage                    = $chatGroupUserMessageMapper->fetchLastMessage($chatGroup->id, $currentUser->id);
293
                    
279
 
294
                    if($lastMessage) {
280
                    if ($lastMessage) {
295
                        $lastMessage = Functions::timeAgo($lastMessage->added_on, $now);
281
                        $lastMessage = Functions::timeAgo($lastMessage->added_on, $now);
296
                    } else {
282
                    } else {
297
                        $lastMessage = '';
283
                        $lastMessage = '';
298
                    }
284
                    }
299
                    
285
 
Línea 300... Línea 286...
300
                    
286
 
301
                    
287
 
302
                    
288
 
303
                    $not_seen_messages     = $count_not_seen_messages > 0;
289
                    $not_seen_messages     = $count_not_seen_messages > 0;
304
                    $not_received_messages = $count_not_received_messages > 0;
290
                    $not_received_messages = $count_not_received_messages > 0;
305
 
291
 
306
                    if($chatUserOwner->user_id == $currentUser->id ) {
292
                    if ($chatUserOwner->user_id == $currentUser->id) {
Línea 326... Línea 312...
326
                            'is_open'                               => $is_open ? 1 : 0,
312
                            'is_open'                               => $is_open ? 1 : 0,
327
                            'not_seen_messages'                     => $not_seen_messages,
313
                            'not_seen_messages'                     => $not_seen_messages,
328
                            'not_received_messages'                 => $not_received_messages,
314
                            'not_received_messages'                 => $not_received_messages,
329
                            'count_not_seen_messages'               => $count_not_seen_messages,
315
                            'count_not_seen_messages'               => $count_not_seen_messages,
330
                            'count_not_received_messages'           => $count_not_received_messages,
316
                            'count_not_received_messages'           => $count_not_received_messages,
331
                            'last_message'                          => $lastMessage 
317
                            'last_message'                          => $lastMessage
332
                            
318
 
333
                        ];
319
                        ];
334
                    } else {
320
                    } else {
335
                 
321
 
336
                        $chat = [
322
                        $chat = [
337
                            'url_delete'                    => '',
323
                            'url_delete'                    => '',
338
                            'url_add_user_to_group'         => '',
324
                            'url_add_user_to_group'         => '',
339
                            'url_get_contact_group_list'    => $this->url()->fromRoute('chat/get-contact-group-list', ['group_id' => $chatGroup->uuid]),
325
                            'url_get_contact_group_list'    => $this->url()->fromRoute('chat/get-contact-group-list', ['group_id' => $chatGroup->uuid]),
340
                            'url_leave'                     => $this->url()->fromRoute('chat/leave-group', ['group_id' => $chatGroup->uuid]),
326
                            'url_leave'                     => $this->url()->fromRoute('chat/leave-group', ['group_id' => $chatGroup->uuid]),
Línea 354... Línea 340...
354
                            'is_open'                       => $is_open ? 1 : 0,
340
                            'is_open'                       => $is_open ? 1 : 0,
355
                            'not_seen_messages'             => $not_seen_messages,
341
                            'not_seen_messages'             => $not_seen_messages,
356
                            'not_received_messages'         => $not_received_messages,
342
                            'not_received_messages'         => $not_received_messages,
357
                            'count_not_seen_messages'       => $count_not_seen_messages,
343
                            'count_not_seen_messages'       => $count_not_seen_messages,
358
                            'count_not_received_messages'   => $count_not_received_messages,
344
                            'count_not_received_messages'   => $count_not_received_messages,
359
                            'last_message'                  => $lastMessage 
345
                            'last_message'                  => $lastMessage
360
                        ];
346
                        ];
361
                    }
347
                    }
Línea 362... Línea 348...
362
 
348
 
363
                   array_push($chats, $chat);
349
                    array_push($chats, $chat);
364
                }
350
                }
365
            }
351
            }
366
            
352
 
367
            $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
353
            $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
368
            $chatMessageMapper = ChatMessageMapper::getInstance($this->adapter);
354
            $chatMessageMapper = ChatMessageMapper::getInstance($this->adapter);
369
            
355
 
370
            
356
 
371
            $userIds = [];
357
            $userIds = [];
372
            $records = $chatUserMapper->fetchAllByUserId($currentUser->id);
358
            $records = $chatUserMapper->fetchAllByUserId($currentUser->id);
373
            foreach($records as $record)
-
 
374
            {
359
            foreach ($records as $record) {
375
                if($record->user_id1 == $currentUser->id) {
360
                if ($record->user_id1 == $currentUser->id) {
376
                    array_push($userIds, $record->user_id2);
361
                    array_push($userIds, $record->user_id2);
377
                } else {
362
                } else {
378
                    array_push($userIds, $record->user_id1);
363
                    array_push($userIds, $record->user_id1);
379
                }
364
                }
380
            }
365
            }
381
            
366
 
382
            /*
367
            /*
Línea 383... Línea 368...
383
            if($currentNetwork->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER)  {
368
            if($currentNetwork->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER)  {
384
            
369
            
Línea 398... Línea 383...
398
                }
383
                }
Línea 399... Línea 384...
399
                
384
                
400
            }
385
            }
Línea 401... Línea 386...
401
            */
386
            */
Línea 402... Línea 387...
402
 
387
 
403
            
388
 
404
 
389
 
405
            if ($userIds) {
390
            if ($userIds) {
Línea 406... Línea 391...
406
                 
391
 
407
                $userMapper = UserMapper::getInstance($this->adapter);
-
 
408
                $users = $userMapper->fetchAllByIds($userIds);
392
                $userMapper = UserMapper::getInstance($this->adapter);
409
 
393
                $users = $userMapper->fetchAllByIds($userIds);
410
                foreach ($users as $user) 
394
 
411
                {
395
                foreach ($users as $user) {
412
                    $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
396
                    $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
413
                    if($chatUser) {
397
                    if ($chatUser) {
414
                        $count_not_received_messages = $chatMessageMapper->countNotReceivedMessagesByChatIdAndToId($chatUser->id, $currentUser->id);
398
                        $count_not_received_messages = $chatMessageMapper->countNotReceivedMessagesByChatIdAndToId($chatUser->id, $currentUser->id);
415
                        $count_not_seen_messages = $chatMessageMapper->countNotSeenMessagesByChatIdAndToId($chatUser->id, $currentUser->id);
399
                        $count_not_seen_messages = $chatMessageMapper->countNotSeenMessagesByChatIdAndToId($chatUser->id, $currentUser->id);
416
                        $lastMessage = $chatMessageMapper->fetchLastMessage($chatUser->id, $currentUser->id);
400
                        $lastMessage = $chatMessageMapper->fetchLastMessage($chatUser->id, $currentUser->id);
417
                        
401
 
418
                        if($lastMessage) {
402
                        if ($lastMessage) {
419
                            $lastMessage = Functions::timeAgo($lastMessage->added_on, $now);
403
                            $lastMessage = Functions::timeAgo($lastMessage->added_on, $now);
420
                        } else {
404
                        } else {
421
                            $lastMessage = '';
405
                            $lastMessage = '';
422
                        }
406
                        }
423
                        
407
 
424
                        if($currentUser->id == $chatUser->user_id1) {
408
                        if ($currentUser->id == $chatUser->user_id1) {
425
                            $is_open = $chatUser->user_open1 == ChatUser::OPEN_YES;
409
                            $is_open = $chatUser->user_open1 == ChatUser::OPEN_YES;
Línea 426... Línea 410...
426
                        } else {
410
                        } else {
427
                            $is_open = $chatUser->user_open2 == ChatUser::OPEN_YES;
411
                            $is_open = $chatUser->user_open2 == ChatUser::OPEN_YES;
428
                        }
412
                        }
429
                        
413
 
430
 
414
 
431
                        $not_received_messages = $count_not_received_messages > 0;
415
                        $not_received_messages = $count_not_received_messages > 0;
432
                        $not_seen_messages = $count_not_seen_messages > 0;
416
                        $not_seen_messages = $count_not_seen_messages > 0;
433
                    } else {
417
                    } else {
434
                        $is_open = false;
418
                        $is_open = false;
435
                        $count_not_received_messages = 0;
-
 
436
                        $count_not_seen_messages =  0;
419
                        $count_not_received_messages = 0;
Línea 437... Línea 420...
437
                        $not_seen_messages = false;
420
                        $count_not_seen_messages =  0;
438
                        $not_received_messages = false;
421
                        $not_seen_messages = false;
439
                        $lastMessage = '';
422
                        $not_received_messages = false;
440
           
423
                        $lastMessage = '';
441
                    }
424
                    }
442
 
425
 
Línea 452... Línea 435...
452
                        'url_get_all_messages'      => $this->url()->fromRoute('chat/get-all-messages', ['id' => $user->uuid]),
435
                        'url_get_all_messages'      => $this->url()->fromRoute('chat/get-all-messages', ['id' => $user->uuid]),
453
                        'url_zoom'                  => $this->url()->fromRoute('chat/zoom', ['id' => $user->uuid, 'type' => 'chat']),
436
                        'url_zoom'                  => $this->url()->fromRoute('chat/zoom', ['id' => $user->uuid, 'type' => 'chat']),
454
                        'id'                        => $user->uuid,
437
                        'id'                        => $user->uuid,
455
                        'name'                      => trim($user->first_name . ' ' . $user->last_name),
438
                        'name'                      => trim($user->first_name . ' ' . $user->last_name),
456
                        'image'                     => $this->url()->fromRoute('storage', ['code' => $user->uuid, 'type' => 'user', 'filename' => $user->image]),
439
                        'image'                     => $this->url()->fromRoute('storage', ['code' => $user->uuid, 'type' => 'user', 'filename' => $user->image]),
457
                        'profile'                   => $this->url()->fromRoute('profile/view', ['id' =>$user->uuid]),
440
                        'profile'                   => $this->url()->fromRoute('profile/view', ['id' => $user->uuid]),
458
                        'type'                      => 'user',
441
                        'type'                      => 'user',
459
                        'online'                    => $user->online ? 1 : 0,
442
                        'online'                    => $user->online ? 1 : 0,
460
                        'is_open'                   => $is_open ? 1 : 0,
443
                        'is_open'                   => $is_open ? 1 : 0,
461
                        'not_seen_messages'         => $not_seen_messages,
444
                        'not_seen_messages'         => $not_seen_messages,
462
                        'not_received_messages'     => $not_received_messages,
445
                        'not_received_messages'     => $not_received_messages,
463
                        'count_not_seen_messages'       => $count_not_seen_messages,
446
                        'count_not_seen_messages'       => $count_not_seen_messages,
464
                        'count_not_received_messages'   => $count_not_received_messages,
447
                        'count_not_received_messages'   => $count_not_received_messages,
465
                        'last_message'                  => $lastMessage 
448
                        'last_message'                  => $lastMessage
466
                       
449
 
467
                    ];
450
                    ];
468
                    
451
 
469
                    array_push($chats, $chat);
452
                    array_push($chats, $chat);
470
                }
453
                }
471
            }
454
            }
472
            
455
 
473
            $userMapper->updateLastHeartBeat($currentUser->id);
456
            $userMapper->updateLastHeartBeat($currentUser->id);
Línea 474... Línea 457...
474
 
457
 
475
            $response = [
458
            $response = [
476
                'success' => true,
459
                'success' => true,
477
                'data' => $chats
460
                'data' => $chats
478
            ];
-
 
479
            
461
            ];
480
        } else {
462
        } else {
481
            $response = [
463
            $response = [
482
                'success' => false,
464
                'success' => false,
483
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
465
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
484
            ];
466
            ];
485
        }
467
        }
486
        
468
 
487
        return new JsonModel($response);
469
        return new JsonModel($response);
488
    }
470
    }
489
    
471
 
Línea 490... Línea 472...
490
  
472
 
491
 
473
 
492
    /**
474
    /**
493
     * Esta función crea un grupo y asigna al usuario actual como el owner del mismo, 
475
     * Esta función crea un grupo y asigna al usuario actual como el owner del mismo, 
Línea 516... Línea 498...
516
     * @return \Laminas\View\Model\JsonModel
498
     * @return \Laminas\View\Model\JsonModel
517
     */
499
     */
518
    public function createGroupAction()
500
    public function createGroupAction()
519
    {
501
    {
520
        $request    = $this->getRequest();
502
        $request    = $this->getRequest();
521
        if($request->isPost()) {
503
        if ($request->isPost()) {
522
            $form = new  CreateGroupForm();
504
            $form = new  CreateGroupForm();
523
            $form->setData($request->getPost()->toArray());
505
            $form->setData($request->getPost()->toArray());
524
            
506
 
525
            if($form->isValid()) {
507
            if ($form->isValid()) {
526
                $dataPost = (array) $form->getData();
508
                $dataPost = (array) $form->getData();
527
                $name = $dataPost['name'];
509
                $name = $dataPost['name'];
528
                
510
 
529
            
511
 
530
                $currentUserPlugin = $this->plugin('currentUserPlugin');
512
                $currentUserPlugin = $this->plugin('currentUserPlugin');
531
                $currentUser = $currentUserPlugin->getUser();
513
                $currentUser = $currentUserPlugin->getUser();
532
       
514
 
533
                $chatGroup = new ChatGroup();
515
                $chatGroup = new ChatGroup();
534
                $chatGroup->name = $name;
516
                $chatGroup->name = $name;
Línea 535... Línea 517...
535
 
517
 
536
 
518
 
537
                $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
519
                $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
538
                $result = $chatGroupMapper->insert($chatGroup);
520
                $result = $chatGroupMapper->insert($chatGroup);
539
                if ($result) {
521
                if ($result) {
540
                    $chatGroup = $chatGroupMapper->fetchOne($chatGroup->id);
522
                    $chatGroup = $chatGroupMapper->fetchOne($chatGroup->id);
541
                    
523
 
542
                    
524
 
543
                    
525
 
544
                    $chatGroupUser = new ChatGroupUser();
526
                    $chatGroupUser = new ChatGroupUser();
545
                    $chatGroupUser->group_id = $chatGroup->id;
527
                    $chatGroupUser->group_id = $chatGroup->id;
546
                    $chatGroupUser->user_id = $currentUser->id;
528
                    $chatGroupUser->user_id = $currentUser->id;
547
                    $chatGroupUser->owner = ChatGroupUser::OWNER_YES;
529
                    $chatGroupUser->owner = ChatGroupUser::OWNER_YES;
548
                    
530
 
549
                    $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
531
                    $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
550
                    $result = $chatGroupUserMapper->insert($chatGroupUser);
532
                    $result = $chatGroupUserMapper->insert($chatGroupUser);
551
                    
533
 
552
                    if($result)  {
534
                    if ($result) {
553
                        
535
 
554
                        $userMapper = UserMapper::getInstance($this->adapter);
536
                        $userMapper = UserMapper::getInstance($this->adapter);
555
                        $userMapper->updateLastActivity($currentUser->id);
537
                        $userMapper->updateLastActivity($currentUser->id);
556
                        
538
 
557
                        $fullpath_chat = $this->config['leaderslinked.fullpath.chat'];
539
                        $fullpath_chat = $this->config['leaderslinked.fullpath.chat'];
558
                        $dirpath = $fullpath_chat . $chatGroup->uuid;
540
                        $dirpath = $fullpath_chat . $chatGroup->uuid;
559
                        if (! file_exists($dirpath)) {
541
                        if (!file_exists($dirpath)) {
560
                            mkdir($dirpath, 0777, true);
542
                            mkdir($dirpath, 0777, true);
561
                            chmod($dirpath, 0777);
543
                            chmod($dirpath, 0777);
562
                        }
544
                        }
563
            
545
 
564
                        $response = [
546
                        $response = [
565
                            'success' => true,
547
                            'success' => true,
566
                            'data' => $chatGroup->uuid,
548
                            'data' => $chatGroup->uuid,
567
                        ];
549
                        ];
568
                    } else {
550
                    } else {
569
                        $response = [
551
                        $response = [
570
                            'success' => false,
552
                            'success' => false,
571
                            'data' => $chatGroupUserMapper->getError(),
553
                            'data' => $chatGroupUserMapper->getError(),
572
                        ];
-
 
573
                    }
554
                        ];
574
                    
555
                    }
575
                } else {
556
                } else {
576
                    $response = [
557
                    $response = [
577
                        'success' => false,
558
                        'success' => false,
578
                        'data' => $chatGroupMapper->getError(),
559
                        'data' => $chatGroupMapper->getError(),
579
                    ];
560
                    ];
580
                }
561
                }
581
            } else {
562
            } else {
582
                $messages = [];
563
                $messages = [];
583
                $form_messages = (array) $form->getMessages();
-
 
584
                foreach($form_messages  as $fieldname => $field_messages)
564
                $form_messages = (array) $form->getMessages();
585
                {
565
                foreach ($form_messages  as $fieldname => $field_messages) {
586
                    
566
 
587
                    $messages[$fieldname] = array_values($field_messages);
567
                    $messages[$fieldname] = array_values($field_messages);
588
                }
568
                }
589
                
569
 
590
                return new JsonModel([
570
                return new JsonModel([
591
                    'success'   => false,
571
                    'success'   => false,
592
                    'data'   => $messages
572
                    'data'   => $messages
Línea 640... Línea 620...
640
     */
620
     */
641
    public function addUserToGroupAction()
621
    public function addUserToGroupAction()
642
    {
622
    {
643
        $currentUserPlugin = $this->plugin('currentUserPlugin');
623
        $currentUserPlugin = $this->plugin('currentUserPlugin');
644
        $currentUser = $currentUserPlugin->getUser();
624
        $currentUser = $currentUserPlugin->getUser();
645
        
625
 
646
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
626
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
647
        $currentNetwork = $currentNetworkPlugin->getNetwork();
627
        $currentNetwork = $currentNetworkPlugin->getNetwork();
648
        
628
 
649
        
629
 
650
        
630
 
651
        $request    = $this->getRequest();
631
        $request    = $this->getRequest();
652
        if($request->isPost()) {
632
        if ($request->isPost()) {
653
            
633
 
654
    
634
 
655
            $group_id   = $this->params()->fromRoute('group_id');
635
            $group_id   = $this->params()->fromRoute('group_id');
656
            $user_id    = $this->params()->fromPost('uid');
636
            $user_id    = $this->params()->fromPost('uid');
657
            
637
 
658
            if(empty($group_id) || empty($user_id)) {
638
            if (empty($group_id) || empty($user_id)) {
659
                return new JsonModel([
639
                return new JsonModel([
660
                    'success' => false,
640
                    'success' => false,
661
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
641
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
662
                ]);
642
                ]);
663
            }
643
            }
664
    
644
 
665
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
645
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
666
            $chatGroup = $chatGroupMapper->fetchOneByUuid($group_id);
646
            $chatGroup = $chatGroupMapper->fetchOneByUuid($group_id);
667
            if(!$chatGroup) {
647
            if (!$chatGroup) {
668
                return new JsonModel([
648
                return new JsonModel([
669
                    'success' => false,
649
                    'success' => false,
670
                    'data' => 'ERROR_CHAT_GROUP_NOT_FOUND'
650
                    'data' => 'ERROR_CHAT_GROUP_NOT_FOUND'
671
                ]);
651
                ]);
672
            }
652
            }
673
            
653
 
674
            $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
654
            $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
675
            $chatGroupOwner = $chatGroupUserMapper->fetchOwnerByGroupId($chatGroup->id);
655
            $chatGroupOwner = $chatGroupUserMapper->fetchOwnerByGroupId($chatGroup->id);
676
                
656
 
677
            if($chatGroupOwner->user_id != $currentUser->id) {
657
            if ($chatGroupOwner->user_id != $currentUser->id) {
678
                return new JsonModel([
658
                return new JsonModel([
679
                    'success' => false,
659
                    'success' => false,
680
                    'data' => 'ERROR_CHAT_GROUP_YOU_ARE_NOT_OWNER'
660
                    'data' => 'ERROR_CHAT_GROUP_YOU_ARE_NOT_OWNER'
681
                ]);
661
                ]);
682
            }
662
            }
683
           
663
 
684
            $userMapper = UserMapper::getInstance($this->adapter);
664
            $userMapper = UserMapper::getInstance($this->adapter);
685
            $user = $userMapper->fetchOneByUuid($user_id);
665
            $user = $userMapper->fetchOneByUuid($user_id);
686
                    
666
 
687
            if(!$user) {
667
            if (!$user) {
688
                return new JsonModel([
668
                return new JsonModel([
689
                    'success' => false,
669
                    'success' => false,
690
                    'data' => 'ERROR_USER_NOT_FOUND'
670
                    'data' => 'ERROR_USER_NOT_FOUND'
691
                ]);
671
                ]);
692
            }
672
            }
693
            
673
 
694
            if($chatGroupOwner->user_id == $user->id) {
674
            if ($chatGroupOwner->user_id == $user->id) {
695
                return new JsonModel([
675
                return new JsonModel([
696
                    'success' => false,
676
                    'success' => false,
697
                    'data' => 'ERROR_CHAT_I_CAN_NOT_ADD_HIMSELF'
677
                    'data' => 'ERROR_CHAT_I_CAN_NOT_ADD_HIMSELF'
698
                ]);
678
                ]);
699
            }
679
            }
700
                        
680
 
701
            
681
 
702
            if($currentNetwork->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER)  {
682
            if ($currentNetwork->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER) {
703
                
683
 
704
                
684
 
705
                $connectionMapper = ConnectionMapper::getInstance($this->adapter);
685
                $connectionMapper = ConnectionMapper::getInstance($this->adapter);
706
                $connection = $connectionMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
686
                $connection = $connectionMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
707
                if(!$connection) {
687
                if (!$connection) {
708
                    return new JsonModel([
688
                    return new JsonModel([
709
                        'success' => false,
689
                        'success' => false,
710
                        'data' => 'ERROR_THIS_USER_IS_NOT_A_CONNECTION'
690
                        'data' => 'ERROR_THIS_USER_IS_NOT_A_CONNECTION'
711
                    ]);
691
                    ]);
712
                }
692
                }
713
            } else {
693
            } else {
714
                if($currentUser->network_id != $user->network_id) {
694
                if ($currentUser->network_id != $user->network_id) {
715
                    return new JsonModel([
695
                    return new JsonModel([
716
                        'success' => false,
696
                        'success' => false,
717
                        'data' => 'ERROR_THIS_USER_IS_NOT_A_CONNECTION'
697
                        'data' => 'ERROR_THIS_USER_IS_NOT_A_CONNECTION'
718
                    ]);
698
                    ]);
719
                }
699
                }
720
            }
700
            }
721
                            
701
 
722
            $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $user->id);
702
            $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $user->id);
723
            if($chatGroupUser) {
703
            if ($chatGroupUser) {
724
                return new JsonModel([
704
                return new JsonModel([
725
                    'success' => false,
705
                    'success' => false,
726
                    'data' => 'ERROR_THIS_USER_ALREADY_EXISTS_IN_THIS_GROUP'
706
                    'data' => 'ERROR_THIS_USER_ALREADY_EXISTS_IN_THIS_GROUP'
727
                ]);
707
                ]);
728
            }
708
            }
729
                                
709
 
Línea 730... Línea 710...
730
 
710
 
731
            $chatGroupUser = new ChatGroupUser();
711
            $chatGroupUser = new ChatGroupUser();
732
            $chatGroupUser->group_id    = $chatGroup->id;
712
            $chatGroupUser->group_id    = $chatGroup->id;
733
            $chatGroupUser->user_id     = $user->id;
713
            $chatGroupUser->user_id     = $user->id;
734
            $chatGroupUser->owner       = ChatGroupUser::OWNER_NO;
714
            $chatGroupUser->owner       = ChatGroupUser::OWNER_NO;
735
            
715
 
736
            $result = $chatGroupUserMapper->insert($chatGroupUser);
716
            $result = $chatGroupUserMapper->insert($chatGroupUser);
737
            if(!$result) {
717
            if (!$result) {
738
                return new JsonModel([
718
                return new JsonModel([
739
                    'success' => false,
719
                    'success' => false,
740
                    'data' => $chatGroupUserMapper->getError()
720
                    'data' => $chatGroupUserMapper->getError()
741
                ]);
721
                ]);
742
            }
722
            }
743
            
723
 
744
                  
724
 
745
           
725
 
746
            $userMapper->updateLastActivity($currentUser->id);
726
            $userMapper->updateLastActivity($currentUser->id);
747
                                    
727
 
748
            return new JsonModel([
728
            return new JsonModel([
749
                'success' => true,
729
                'success' => true,
750
                'data' => [
730
                'data' => [
751
                    'url_remove_from_group' => $this->url()->fromRoute('chat/remove-user-from-group', ['group_id' => $chatGroup->uuid, 'user_id' => $user->uuid]),
731
                    'url_remove_from_group' => $this->url()->fromRoute('chat/remove-user-from-group', ['group_id' => $chatGroup->uuid, 'user_id' => $user->uuid]),
752
                    'id'        => $user->uuid,
732
                    'id'        => $user->uuid,
753
                    'name'      => trim($user->first_name . ' ' . $user->last_name),
733
                    'name'      => trim($user->first_name . ' ' . $user->last_name),
754
                    'image'     => $this->url()->fromRoute('storage', ['code' => $user->uuid, 'type' => 'user', 'filename' => $user->image]),
734
                    'image'     => $this->url()->fromRoute('storage', ['code' => $user->uuid, 'type' => 'user', 'filename' => $user->image]),
755
                    'type'      => 'user',
735
                    'type'      => 'user',
756
                    'online'    => $user->online ? 1 : 0,
736
                    'online'    => $user->online ? 1 : 0,
757
                ]
737
                ]
758
            ]);    
-
 
759
 
-
 
760
 
738
            ]);
761
        } else {
739
        } else {
762
            return new JsonModel([
740
            return new JsonModel([
763
                'success' => false,
741
                'success' => false,
764
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
742
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
765
            ]);
743
            ]);
766
        }
-
 
767
 
744
        }
Línea 768... Línea 745...
768
    }
745
    }
769
 
746
 
770
    /**
747
    /**
Línea 786... Línea 763...
786
     * @return \Laminas\View\Model\JsonModel
763
     * @return \Laminas\View\Model\JsonModel
787
     */
764
     */
788
    public function removeUserFromGroupAction()
765
    public function removeUserFromGroupAction()
789
    {
766
    {
790
        $request    = $this->getRequest();
767
        $request    = $this->getRequest();
791
        if($request->isPost()) {
768
        if ($request->isPost()) {
792
        
769
 
793
            $currentUserPlugin = $this->plugin('currentUserPlugin');
770
            $currentUserPlugin = $this->plugin('currentUserPlugin');
794
            $currentUser = $currentUserPlugin->getUser();
771
            $currentUser = $currentUserPlugin->getUser();
795
    
772
 
796
            $user_id = $this->params()->fromRoute('user_id');
773
            $user_id = $this->params()->fromRoute('user_id');
797
            $group_id = $this->params()->fromRoute('group_id');
774
            $group_id = $this->params()->fromRoute('group_id');
798
            
775
 
799
            if(empty($group_id) || empty($user_id)) {
776
            if (empty($group_id) || empty($user_id)) {
800
                return new JsonModel([
777
                return new JsonModel([
801
                    'success' => false,
778
                    'success' => false,
802
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
779
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
803
                ]);
780
                ]);
804
            }
781
            }
805
            
782
 
806
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
783
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
807
            $chatGroup = $chatGroupMapper->fetchOneByUuid($group_id);
784
            $chatGroup = $chatGroupMapper->fetchOneByUuid($group_id);
808
            if(!$chatGroup) {
785
            if (!$chatGroup) {
809
                return new JsonModel([
786
                return new JsonModel([
810
                    'success' => false,
787
                    'success' => false,
811
                    'data' => 'ERROR_CHAT_GROUP_NOT_FOUND'
788
                    'data' => 'ERROR_CHAT_GROUP_NOT_FOUND'
812
                ]);
789
                ]);
813
            }
790
            }
814
            
791
 
815
            $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
792
            $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
816
            $chatGroupOwner = $chatGroupUserMapper->fetchOwnerByGroupId($chatGroup->id);
793
            $chatGroupOwner = $chatGroupUserMapper->fetchOwnerByGroupId($chatGroup->id);
817
            
794
 
818
            if($chatGroupOwner->user_id != $currentUser->id) {
795
            if ($chatGroupOwner->user_id != $currentUser->id) {
819
                return new JsonModel([
796
                return new JsonModel([
820
                    'success' => false,
797
                    'success' => false,
821
                    'data' => 'ERROR_CHAT_GROUP_YOU_ARE_NOT_OWNER'
798
                    'data' => 'ERROR_CHAT_GROUP_YOU_ARE_NOT_OWNER'
822
                ]);
799
                ]);
823
            }
800
            }
824
            
801
 
825
            $userMapper = UserMapper::getInstance($this->adapter);
802
            $userMapper = UserMapper::getInstance($this->adapter);
826
            $user = $userMapper->fetchOneByUuid($user_id);
803
            $user = $userMapper->fetchOneByUuid($user_id);
827
            
804
 
828
            if(!$user) {
805
            if (!$user) {
829
                return new JsonModel([
806
                return new JsonModel([
830
                    'success' => false,
807
                    'success' => false,
831
                    'data' => 'ERROR_USER_NOT_FOUND'
808
                    'data' => 'ERROR_USER_NOT_FOUND'
832
                ]);
809
                ]);
833
            }
810
            }
834
            
811
 
835
            if($chatGroupOwner->user_id == $user->id) {
812
            if ($chatGroupOwner->user_id == $user->id) {
836
                return new JsonModel([
813
                return new JsonModel([
837
                    'success' => false,
814
                    'success' => false,
838
                    'data' => 'ERROR_CHAT_I_CAN_NOT_REMOVE_MYSELF'
815
                    'data' => 'ERROR_CHAT_I_CAN_NOT_REMOVE_MYSELF'
839
                ]);
816
                ]);
840
            }
817
            }
841
            
818
 
842
            
819
 
843
 
820
 
Línea 844... Línea 821...
844
 
821
 
845
            $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $user->id);
822
            $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $user->id);
846
            if(!$chatGroupUser) {
823
            if (!$chatGroupUser) {
847
                return new JsonModel([
824
                return new JsonModel([
848
                    'success' => false,
825
                    'success' => false,
849
                    'data' => 'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
826
                    'data' => 'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
850
                ]);
827
                ]);
851
            }
828
            }
Línea 852... Línea 829...
852
            
829
 
853
 
830
 
854
            $response = $chatGroupUserMapper->deleteByGroupIdAndUserId($chatGroup->id, $user->id);
831
            $response = $chatGroupUserMapper->deleteByGroupIdAndUserId($chatGroup->id, $user->id);
855
            if($response) {
832
            if ($response) {
856
                $userMapper->updateLastActivity($currentUser->id);
833
                $userMapper->updateLastActivity($currentUser->id);
857
                
834
 
858
                return new JsonModel([
835
                return new JsonModel([
859
                    'success' => true
836
                    'success' => true
860
                ]);
837
                ]);
861
            } else {
838
            } else {
862
                return new JsonModel([
839
                return new JsonModel([
863
                    'success' => false,
840
                    'success' => false,
864
                    'data' => $chatGroupMapper->getError()
841
                    'data' => $chatGroupMapper->getError()
865
                ]);
-
 
866
            }
842
                ]);
867
        
843
            }
868
        } else {
844
        } else {
869
            return new JsonModel([
845
            return new JsonModel([
870
                'success' => false,
846
                'success' => false,
871
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
847
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
872
            ]);
848
            ]);
Línea 873... Línea 849...
873
        }
849
        }
874
    }
850
    }
875
 
851
 
876
    
852
 
877
    /**
853
    /**
878
     * Abandonar un grupo
854
     * Abandonar un grupo
Línea 891... Línea 867...
891
     * @return \Laminas\View\Model\JsonModel
867
     * @return \Laminas\View\Model\JsonModel
892
     */
868
     */
893
    public function leaveGroupAction()
869
    public function leaveGroupAction()
894
    {
870
    {
895
        $request    = $this->getRequest();
871
        $request    = $this->getRequest();
896
        if($request->isPost()) {
872
        if ($request->isPost()) {
897
            $currentUserPlugin = $this->plugin('currentUserPlugin');
873
            $currentUserPlugin = $this->plugin('currentUserPlugin');
898
            $currentUser = $currentUserPlugin->getUser();
874
            $currentUser = $currentUserPlugin->getUser();
899
            
875
 
900
            $result = false;
876
            $result = false;
901
            $group_id = $this->params()->fromRoute('group_id');
877
            $group_id = $this->params()->fromRoute('group_id');
902
            
878
 
903
            
879
 
904
            if(empty($group_id)) {
880
            if (empty($group_id)) {
905
                return new JsonModel([
881
                return new JsonModel([
906
                    'success' => false,
882
                    'success' => false,
907
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
883
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
908
                ]);
884
                ]);
909
            }
885
            }
910
            
886
 
911
            
887
 
912
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
888
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
913
            $chatGroup = $chatGroupMapper->fetchOneByUuid($group_id);
889
            $chatGroup = $chatGroupMapper->fetchOneByUuid($group_id);
914
            if(!$chatGroup) {
890
            if (!$chatGroup) {
915
                return new JsonModel([
891
                return new JsonModel([
916
                    'success' => false,
892
                    'success' => false,
917
                    'data' => 'ERROR_GROUP_NOT_FOUND'
893
                    'data' => 'ERROR_GROUP_NOT_FOUND'
918
                ]);
894
                ]);
919
            }
895
            }
920
            
896
 
921
            $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
897
            $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
922
            $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
898
            $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
923
            if(!$chatGroupUser) {
899
            if (!$chatGroupUser) {
924
                return new JsonModel([
900
                return new JsonModel([
925
                    'success' => false,
901
                    'success' => false,
926
                    'data' => 'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
902
                    'data' => 'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
927
                ]);
903
                ]);
928
            }
904
            }
929
            
905
 
930
            if($chatGroupUser->owner == ChatGroupUser::OWNER_YES) {
906
            if ($chatGroupUser->owner == ChatGroupUser::OWNER_YES) {
931
                return new JsonModel([
907
                return new JsonModel([
932
                    'success' => false,
908
                    'success' => false,
933
                    'data' => 'ERROR_CHAT_GROUP_YOU_ARE_OWNER'
909
                    'data' => 'ERROR_CHAT_GROUP_YOU_ARE_OWNER'
934
                ]);
910
                ]);
935
            }
911
            }
936
            
912
 
937
            
913
 
938
            $result = $chatGroupUserMapper->deleteByGroupIdAndUserId($chatGroupUser->group_id, $chatGroupUser->user_id);
914
            $result = $chatGroupUserMapper->deleteByGroupIdAndUserId($chatGroupUser->group_id, $chatGroupUser->user_id);
939
            if($result) {
915
            if ($result) {
940
                
916
 
941
                $userMapper = UserMapper::getInstance($this->adapter);
917
                $userMapper = UserMapper::getInstance($this->adapter);
942
                $userMapper->updateLastActivity($currentUser->id);
918
                $userMapper->updateLastActivity($currentUser->id);
943
                
919
 
944
                return new JsonModel([
920
                return new JsonModel([
945
                    'success' => true
921
                    'success' => true
946
                ]);
922
                ]);
947
            } else {
923
            } else {
948
                return new JsonModel([
924
                return new JsonModel([
949
                    'success' => false,
925
                    'success' => false,
950
                    'data' => $chatGroupMapper->getError()
926
                    'data' => $chatGroupMapper->getError()
951
                ]);
927
                ]);
952
            }
928
            }
953
 
-
 
954
    
-
 
955
           
-
 
956
        } else {
929
        } else {
957
            return new JsonModel([
930
            return new JsonModel([
958
                'success' => false,
931
                'success' => false,
959
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
932
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
960
            ]);
933
            ]);
961
        }
934
        }
962
 
-
 
963
    }
935
    }
964
    
936
 
965
    /**
937
    /**
966
     * 
938
     * 
967
     * @param ChatGroup $chatGroup
939
     * @param ChatGroup $chatGroup
968
     * @param int $page
940
     * @param int $page
969
     * @return array
941
     * @return array
970
     */
942
     */
971
    private function getAllMessagesForChatGroup($chatGroup, $page = 0)
943
    private function getAllMessagesForChatGroup($chatGroup, $page = 0)
972
    {
944
    {
973
        $currentUserPlugin = $this->plugin('currentUserPlugin');
945
        $currentUserPlugin = $this->plugin('currentUserPlugin');
974
        $currentUser = $currentUserPlugin->getUser();
946
        $currentUser = $currentUserPlugin->getUser();
975
        
947
 
976
        $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
948
        $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
977
        $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
949
        $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
978
        
950
 
979
        if(!$chatGroupUser) {
951
        if (!$chatGroupUser) {
980
            return [
952
            return [
981
                'success' => false,
953
                'success' => false,
982
                'data' => 'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
954
                'data' => 'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
983
            ];
955
            ];
984
        }
956
        }
985
        
-
 
Línea -... Línea 957...
-
 
957
 
986
 
958
 
987
        
959
 
988
        $chatGroupMessageMapper = ChatGroupMessageMapper::getInstance($this->adapter);
960
        $chatGroupMessageMapper = ChatGroupMessageMapper::getInstance($this->adapter);
989
        $paginator = $chatGroupMessageMapper->getPaginatorByGroupId($chatGroup->id, $page);
961
        $paginator = $chatGroupMessageMapper->getPaginatorByGroupId($chatGroup->id, $page);
990
        
962
 
991
        $pages = $paginator->count();
963
        $pages = $paginator->count();
992
        $page  = $paginator->getCurrentPageNumber();
964
        $page  = $paginator->getCurrentPageNumber();
993
        
965
 
994
        $items = [];
966
        $items = [];
995
        $users = [];
967
        $users = [];
996
        $userMapper = UserMapper::getInstance($this->adapter);
968
        $userMapper = UserMapper::getInstance($this->adapter);
997
        
969
 
998
        $utilMapper = UtilMapper::getInstance($this->adapter);
970
        $utilMapper = UtilMapper::getInstance($this->adapter);
999
        $now = $utilMapper->getDatebaseNow();
971
        $now = $utilMapper->getDatebaseNow();
1000
        
972
 
1001
        foreach ($paginator as $m) 
-
 
Línea 1002... Línea 973...
1002
        {
973
        foreach ($paginator as $m) {
1003
 
974
 
1004
            if (isset($users[$m->sender_id])) {
975
            if (isset($users[$m->sender_id])) {
1005
                $userdata_from = $users[$m->sender_id];
976
                $userdata_from = $users[$m->sender_id];
1006
            } else {
977
            } else {
1007
                $userdata_from = $userMapper->fetchOne($m->sender_id);
978
                $userdata_from = $userMapper->fetchOne($m->sender_id);
1008
                $users[ $m->sender_id ] = $userdata_from;
979
                $users[$m->sender_id] = $userdata_from;
1009
            }
980
            }
1010
            
981
 
1011
            $pic_from = $this->url()->fromRoute('storage', [
982
            $pic_from = $this->url()->fromRoute('storage', [
1012
                'code' => $userdata_from->uuid,
983
                'code' => $userdata_from->uuid,
1013
                'type' => 'user',
984
                'type' => 'user',
1014
                'filename' => $userdata_from->image
985
                'filename' => $userdata_from->image
1015
            ]);
986
            ]);
1016
            $u =  $userdata_from->id == $currentUser->id ? 1 : 2;
987
            $u =  $userdata_from->id == $currentUser->id ? 1 : 2;
1017
            if($m->type == ChatGroupMessage::TYPE_TEXT) {
988
            if ($m->type == ChatGroupMessage::TYPE_TEXT) {
1018
                $content = $this->sanitize($m->content);
989
                $content = $this->sanitize($m->content);
1019
            } else {
990
            } else {
1020
                $content = $this->url()->fromRoute('storage', ['code' => $chatGroup->uuid, 'type' => 'chat', 'filename' => $m->content]);
991
                $content = $this->url()->fromRoute('storage', ['code' => $chatGroup->uuid, 'type' => 'chat', 'filename' => $m->content]);
1021
            }
992
            }
1022
            
993
 
1023
            
994
 
1024
            
995
 
1025
            $msgtime = Functions::timeAgo($m->added_on, $now);
996
            $msgtime = Functions::timeAgo($m->added_on, $now);
1026
            array_push($items, [
997
            array_push($items, [
1027
                'user_name' => trim($userdata_from->first_name . ' ' .$userdata_from->last_name) ,
998
                'user_name' => trim($userdata_from->first_name . ' ' . $userdata_from->last_name),
1028
                'user_id' => $userdata_from->uuid,
999
                'user_id' => $userdata_from->uuid,
1029
                'user_image' => $pic_from,
1000
                'user_image' => $pic_from,
1030
                'u' => $u,
1001
                'u' => $u,
1031
                'mtype' => $m->type,
1002
                'mtype' => $m->type,
1032
                'm' => $content,
1003
                'm' => $content,
1033
                'time' => $msgtime,
1004
                'time' => $msgtime,
1034
                'id' => $m->uuid
1005
                'id' => $m->uuid
1035
            ]);
1006
            ]);
1036
        }
1007
        }
1037
        
1008
 
1038
        return [
1009
        return [
1039
            'success' => true,
1010
            'success' => true,
1040
            'data' => [
1011
            'data' => [
1041
                'page' => $page,
1012
                'page' => $page,
1042
                'pages' => $pages,
1013
                'pages' => $pages,
1043
                'items' => $items
1014
                'items' => $items
1044
            ]
-
 
1045
        ];
-
 
1046
        
1015
            ]
1047
        
1016
        ];
1048
    }
1017
    }
1049
    
1018
 
1050
    /**
1019
    /**
1051
     *
1020
     *
1052
     * @param ChatUser $chatUser
1021
     * @param ChatUser $chatUser
1053
     * @param int $page
1022
     * @param int $page
1054
     * @return array
1023
     * @return array
1055
     */
1024
     */
1056
    private function getAllMessagesForChatUser($chatUser, $page = 0)
1025
    private function getAllMessagesForChatUser($chatUser, $page = 0)
1057
    {
1026
    {
1058
        $currentUserPlugin = $this->plugin('currentUserPlugin');
1027
        $currentUserPlugin = $this->plugin('currentUserPlugin');
Línea 1059... Línea 1028...
1059
        $currentUser = $currentUserPlugin->getUser();
1028
        $currentUser = $currentUserPlugin->getUser();
1060
        
1029
 
1061
 
1030
 
1062
        $chatMessageMapper = ChatMessageMapper::getInstance($this->adapter);
1031
        $chatMessageMapper = ChatMessageMapper::getInstance($this->adapter);
1063
        $paginator = $chatMessageMapper->getAllMessagesPaginatorByChatId($chatUser->id, $page);
1032
        $paginator = $chatMessageMapper->getAllMessagesPaginatorByChatId($chatUser->id, $page);
1064
        $pages = $paginator->count();
1033
        $pages = $paginator->count();
1065
        $page = $paginator->getCurrentPageNumber();
1034
        $page = $paginator->getCurrentPageNumber();
1066
        
1035
 
1067
        $items = [];
1036
        $items = [];
1068
        $users = [];
1037
        $users = [];
1069
        $userMapper = UserMapper::getInstance($this->adapter);
1038
        $userMapper = UserMapper::getInstance($this->adapter);
1070
        
1039
 
1071
        $utilMapper = UtilMapper::getInstance($this->adapter);
1040
        $utilMapper = UtilMapper::getInstance($this->adapter);
1072
        $now = $utilMapper->getDatebaseNow();
1041
        $now = $utilMapper->getDatebaseNow();
1073
        
1042
 
1074
        $messages = $paginator->getCurrentItems();
1043
        $messages = $paginator->getCurrentItems();
1075
        foreach ($messages as $m) {
1044
        foreach ($messages as $m) {
1076
            $from_id = (int) $m->from_id;
1045
            $from_id = (int) $m->from_id;
1077
            $to_id = (int) $m->to_id;
1046
            $to_id = (int) $m->to_id;
1078
            
1047
 
1079
            if (isset($users[$from_id])) {
1048
            if (isset($users[$from_id])) {
1080
                $userdata_from = $users[$from_id];
1049
                $userdata_from = $users[$from_id];
1081
            } else {
1050
            } else {
1082
                $userdata_from = $userMapper->fetchOne($from_id);
1051
                $userdata_from = $userMapper->fetchOne($from_id);
1083
                $users[$from_id] = $userdata_from;
1052
                $users[$from_id] = $userdata_from;
1084
            }
1053
            }
1085
            
1054
 
1086
            $pic_from = $this->url()->fromRoute('storage', [
1055
            $pic_from = $this->url()->fromRoute('storage', [
1087
                'code' => $userdata_from->uuid,
1056
                'code' => $userdata_from->uuid,
1088
                'type' => 'user',
1057
                'type' => 'user',
1089
                'filename' => $userdata_from->image
1058
                'filename' => $userdata_from->image
1090
            ]);
1059
            ]);
1091
            
1060
 
1092
            if (isset($users[$to_id])) {
1061
            if (isset($users[$to_id])) {
1093
                $userdata_to = $users[$to_id];
1062
                $userdata_to = $users[$to_id];
1094
            } else {
1063
            } else {
1095
                $userdata_to = $userMapper->fetchOne($to_id);
1064
                $userdata_to = $userMapper->fetchOne($to_id);
1096
                $users[ $to_id ] = $userdata_to;
1065
                $users[$to_id] = $userdata_to;
1097
            }
1066
            }
1098
            
1067
 
1099
            $u = $m->from_id == $currentUser->id ? 1 : 2;
1068
            $u = $m->from_id == $currentUser->id ? 1 : 2;
1100
            
1069
 
1101
            $seen = 0;
1070
            $seen = 0;
1102
            if ($m->to_id == $currentUser->id) {
1071
            if ($m->to_id == $currentUser->id) {
1103
                $seen = $m->seen == ChatMessage::SEEN_NO ? 1 : 0;
1072
                $seen = $m->seen == ChatMessage::SEEN_NO ? 1 : 0;
1104
            }
1073
            }
1105
            
1074
 
1106
            
1075
 
1107
            if($m->type == ChatMessage::TYPE_TEXT) {
1076
            if ($m->type == ChatMessage::TYPE_TEXT) {
1108
                $content = $this->sanitize($m->content);
1077
                $content = $this->sanitize($m->content);
1109
            } else {
1078
            } else {
1110
                $content = $this->url()->fromRoute('storage', ['code' => $chatUser->uuid, 'type' => 'chat', 'filename' => $m->content]);
1079
                $content = $this->url()->fromRoute('storage', ['code' => $chatUser->uuid, 'type' => 'chat', 'filename' => $m->content]);
1111
            }
1080
            }
1112
            
1081
 
1113
            $msgtime = Functions::timeAgo($m->added_on, $now);
1082
            $msgtime = Functions::timeAgo($m->added_on, $now);
1114
            array_push($items, [
1083
            array_push($items, [
Línea 1121... Línea 1090...
1121
                'time' => $msgtime,
1090
                'time' => $msgtime,
1122
                'id' => $m->uuid,
1091
                'id' => $m->uuid,
1123
                'seen' => $seen,
1092
                'seen' => $seen,
1124
            ]);
1093
            ]);
1125
        }
1094
        }
1126
        
1095
 
1127
        
1096
 
1128
        
1097
 
1129
        
1098
 
1130
        
1099
 
1131
        return [
1100
        return [
1132
            'success' => true,
1101
            'success' => true,
1133
            'data' => [
1102
            'data' => [
1134
                'page' => $page,
1103
                'page' => $page,
1135
                'pages' => $pages,
1104
                'pages' => $pages,
Línea 1169... Línea 1138...
1169
     */
1138
     */
1170
    public function getAllMessagesAction()
1139
    public function getAllMessagesAction()
1171
    {
1140
    {
1172
        $currentUserPlugin = $this->plugin('currentUserPlugin');
1141
        $currentUserPlugin = $this->plugin('currentUserPlugin');
1173
        $currentUser = $currentUserPlugin->getUser();
1142
        $currentUser = $currentUserPlugin->getUser();
1174
        
1143
 
1175
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
1144
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
1176
        $currentNetwork = $currentNetworkPlugin->getNetwork();
1145
        $currentNetwork = $currentNetworkPlugin->getNetwork();
1177
        
1146
 
1178
        
1147
 
1179
        $request    = $this->getRequest();
1148
        $request    = $this->getRequest();
1180
        if($request->isGet()) {
1149
        if ($request->isGet()) {
-
 
1150
 
-
 
1151
 
Línea 1181... Línea -...
1181
 
-
 
1182
            
-
 
1183
        
1152
 
1184
            $id     = $this->params()->fromRoute('id');
1153
            $id     = $this->params()->fromRoute('id');
1185
            $page   = filter_var($this->params()->fromQuery('page', 0), FILTER_SANITIZE_NUMBER_INT);
1154
            $page   = filter_var($this->params()->fromQuery('page', 0), FILTER_SANITIZE_NUMBER_INT);
1186
            
1155
 
1187
            if(!$id) {
1156
            if (!$id) {
1188
                return new JsonModel([
1157
                return new JsonModel([
1189
                    'success' => false,
1158
                    'success' => false,
1190
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
1159
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
1191
                ]);
1160
                ]);
1192
            }
1161
            }
1193
        
1162
 
1194
            /**** Mensajes de un chat grupal ****/
1163
            /**** Mensajes de un chat grupal ****/
1195
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
1164
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
1196
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
1165
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
1197
            if ($chatGroup) {
1166
            if ($chatGroup) {
1198
                $response = $this->getAllMessagesForChatGroup($chatGroup, $page);
1167
                $response = $this->getAllMessagesForChatGroup($chatGroup, $page);
1199
                return new JsonModel($response);
1168
                return new JsonModel($response);
1200
            } else {
1169
            } else {
1201
                
1170
 
1202
                $userMapper = UserMapper::getInstance($this->adapter);
1171
                $userMapper = UserMapper::getInstance($this->adapter);
1203
                $user = $userMapper->fetchOneByUuid($id);
1172
                $user = $userMapper->fetchOneByUuid($id);
1204
                if(!$user) {
1173
                if (!$user) {
1205
                    return new JsonModel([
1174
                    return new JsonModel([
1206
                        'success' => false,
1175
                        'success' => false,
1207
                        'data' => 'ERROR_USER_NOT_FOUND'
1176
                        'data' => 'ERROR_USER_NOT_FOUND'
1208
                    ]);
1177
                    ]);
1209
                }
1178
                }
1210
                
1179
 
1211
                
1180
 
1212
                if($currentNetwork->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER)  {
1181
                if ($currentNetwork->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER) {
1213
                    $connectionMapper = ConnectionMapper::getInstance($this->adapter);
1182
                    $connectionMapper = ConnectionMapper::getInstance($this->adapter);
1214
                    $connection = $connectionMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
1183
                    $connection = $connectionMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
1215
                    if(!$connection || $connection->status != Connection::STATUS_ACCEPTED) {
1184
                    if (!$connection || $connection->status != Connection::STATUS_ACCEPTED) {
1216
                        
1185
 
1217
                        return new JsonModel([
1186
                        return new JsonModel([
1218
                            'success' => false,
1187
                            'success' => false,
1219
                            'data' => 'ERROR_THIS_USER_IS_NOT_A_CONNECTION'
1188
                            'data' => 'ERROR_THIS_USER_IS_NOT_A_CONNECTION'
1220
                        ]);
-
 
1221
                        
1189
                        ]);
1222
                    }
1190
                    }
1223
                } else {
1191
                } else {
1224
                    if($currentNetwork->id != $user->network_id) {
1192
                    if ($currentNetwork->id != $user->network_id) {
1225
                        
1193
 
1226
                        return new JsonModel([
1194
                        return new JsonModel([
1227
                            'success' => false,
1195
                            'success' => false,
1228
                            'data' => 'ERROR_THIS_USER_IS_NOT_A_CONNECTION'
1196
                            'data' => 'ERROR_THIS_USER_IS_NOT_A_CONNECTION'
1229
                        ]);
1197
                        ]);
1230
                    }
1198
                    }
1231
                }
1199
                }
1232
               
1200
 
1233
                
1201
 
1234
                $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
1202
                $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
1235
                $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
1203
                $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
1236
                if(!$chatUser) {
1204
                if (!$chatUser) {
1237
                    $chatUser = new ChatUser();
1205
                    $chatUser = new ChatUser();
1238
                    $chatUser->user_id1 = $currentUser->id;
1206
                    $chatUser->user_id1 = $currentUser->id;
1239
                    $chatUser->user_id2 = $user->id;
1207
                    $chatUser->user_id2 = $user->id;
1240
                            
1208
 
1241
                    $response = $chatUserMapper->insert($chatUser);
1209
                    $response = $chatUserMapper->insert($chatUser);
1242
                    
1210
 
1243
                    
1211
 
1244
                    if(!$response) {
1212
                    if (!$response) {
1245
                        return new JsonModel([
1213
                        return new JsonModel([
1246
                            'success' => false,
1214
                            'success' => false,
1247
                            'data' => $chatUserMapper->getError()
1215
                            'data' => $chatUserMapper->getError()
1248
                        ]);
1216
                        ]);
1249
                    }
1217
                    }
1250
                    
1218
 
1251
                    $chatUser = $chatUserMapper->fetchOne($chatUser->id);
1219
                    $chatUser = $chatUserMapper->fetchOne($chatUser->id);
1252
                    $fullpath_chat = $this->config['leaderslinked.fullpath.chat'];
1220
                    $fullpath_chat = $this->config['leaderslinked.fullpath.chat'];
1253
                    $dirpath = $fullpath_chat . $chatUser->uuid;
1221
                    $dirpath = $fullpath_chat . $chatUser->uuid;
1254
                    if (! file_exists($dirpath)) {
1222
                    if (!file_exists($dirpath)) {
1255
                        mkdir($dirpath, 0777, true);
1223
                        mkdir($dirpath, 0777, true);
1256
                        chmod($dirpath, 0777);
1224
                        chmod($dirpath, 0777);
1257
                    }
-
 
1258
                            
1225
                    }
1259
                }
1226
                }
1260
                
1227
 
1261
    
1228
 
1262
                
1229
 
1263
                $response = $this->getAllMessagesForChatUser($chatUser, $page);
1230
                $response = $this->getAllMessagesForChatUser($chatUser, $page);
1264
                return new JsonModel($response);
-
 
1265
                
1231
                return new JsonModel($response);
1266
            }
-
 
1267
        
1232
            }
1268
        } else {
1233
        } else {
1269
            return new JsonModel([
1234
            return new JsonModel([
1270
                'success' => false,
1235
                'success' => false,
1271
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1236
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1272
            ]);
1237
            ]);
1273
        }
-
 
1274
 
1238
        }
1275
    }
1239
    }
Línea 1276... Línea 1240...
1276
    
1240
 
1277
 
1241
 
1278
 
1242
 
Línea 1291... Línea 1255...
1291
     *      'user_image' => 'ruta de la imagén del usuario que envia',
1255
     *      'user_image' => 'ruta de la imagén del usuario que envia',
1292
     *      'u' => '1 = si el usuario que envia es el usuario actual , 2 si no lo es',
1256
     *      'u' => '1 = si el usuario que envia es el usuario actual , 2 si no lo es',
1293
     *      'mtype' => 'text | file',
1257
     *      'mtype' => 'text | file',
1294
     *      'm' => 'texto del mensaje o url del archivo',
1258
     *      'm' => 'texto del mensaje o url del archivo',
1295
     *      'time' => 'cadena que da el tiempo del mensaje ejemplo 1seg',
1259
     *      'time' => 'cadena que da el tiempo del mensaje ejemplo 1seg',
1296
      * ]
1260
     * ]
1297
     * En caso de un respuesta negativa
1261
     * En caso de un respuesta negativa
1298
     * [
1262
     * [
1299
     *      'success' => false,
1263
     *      'success' => false,
1300
     *      'data' => (string) 'mensaje_de_error'
1264
     *      'data' => (string) 'mensaje_de_error'
1301
     * ]
1265
     * ]
Línea 1303... Línea 1267...
1303
     */
1267
     */
1304
    public function sendAction()
1268
    public function sendAction()
1305
    {
1269
    {
1306
        $currentUserPlugin = $this->plugin('currentUserPlugin');
1270
        $currentUserPlugin = $this->plugin('currentUserPlugin');
1307
        $currentUser = $currentUserPlugin->getUser();
1271
        $currentUser = $currentUserPlugin->getUser();
1308
        
1272
 
1309
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
1273
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
1310
        $currentNetwork = $currentNetworkPlugin->getNetwork();
1274
        $currentNetwork = $currentNetworkPlugin->getNetwork();
1311
        
1275
 
1312
        
1276
 
1313
        $request    = $this->getRequest();
1277
        $request    = $this->getRequest();
1314
        if($request->isPost()) {
1278
        if ($request->isPost()) {
1315
            $id         = $this->params()->fromRoute('id');
1279
            $id         = $this->params()->fromRoute('id');
1316
            $message    = trim(filter_var($this->params()->fromPost('message', ''), FILTER_SANITIZE_STRING));
1280
            $message    = trim(filter_var($this->params()->fromPost('message', ''), FILTER_SANITIZE_STRING));
1317
            
1281
 
1318
            if(!$id || empty($message)) {
1282
            if (!$id || empty($message)) {
1319
                return new JsonModel([
1283
                return new JsonModel([
1320
                    'success' => false,
1284
                    'success' => false,
1321
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
1285
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
1322
                ]);
1286
                ]);
1323
            } 
1287
            }
-
 
1288
 
1324
            
1289
 
Línea 1325... Línea -...
1325
 
-
 
1326
            
1290
 
1327
            $userMapper = UserMapper::getInstance($this->adapter);
1291
            $userMapper = UserMapper::getInstance($this->adapter);
1328
            $sender_result = $userMapper->fetchOne($currentUser->id);
1292
            $sender_result = $userMapper->fetchOne($currentUser->id);
1329
            $sender_name = trim($sender_result->first_name . ' ' . $sender_result->last_name);
1293
            $sender_name = trim($sender_result->first_name . ' ' . $sender_result->last_name);
1330
            $sender_pic = $this->url()->fromRoute('storage', [
1294
            $sender_pic = $this->url()->fromRoute('storage', [
1331
                'code' => $sender_result->uuid,
1295
                'code' => $sender_result->uuid,
1332
                'type' => 'user',
1296
                'type' => 'user',
1333
                'filename' => $sender_result->image
1297
                'filename' => $sender_result->image
1334
            ]);
1298
            ]);
1335
                
1299
 
1336
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
1300
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
1337
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
1301
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
1338
            if($chatGroup) {
1302
            if ($chatGroup) {
1339
                
1303
 
1340
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
1304
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
1341
                $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
1305
                $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
1342
                
1306
 
1343
                if(!$chatGroupUser) {
1307
                if (!$chatGroupUser) {
1344
                    return new JsonModel([
1308
                    return new JsonModel([
1345
                        'success' => false,
1309
                        'success' => false,
1346
                        'data' => 'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
1310
                        'data' => 'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
1347
                    ]);
1311
                    ]);
1348
                }
1312
                }
1349
                
1313
 
1350
                $chatGroupMessage = new ChatGroupMessage();
1314
                $chatGroupMessage = new ChatGroupMessage();
1351
                $chatGroupMessage->sender_id = $currentUser->id;
1315
                $chatGroupMessage->sender_id = $currentUser->id;
1352
                $chatGroupMessage->group_id = $chatGroup->id;
1316
                $chatGroupMessage->group_id = $chatGroup->id;
1353
                $chatGroupMessage->content = $message;
1317
                $chatGroupMessage->content = $message;
1354
                $chatGroupMessage->type = ChatGroupMessage::TYPE_TEXT;
1318
                $chatGroupMessage->type = ChatGroupMessage::TYPE_TEXT;
1355
                
1319
 
1356
                $chatGroupMessageMapper = ChatGroupMessageMapper::getInstance($this->adapter);
1320
                $chatGroupMessageMapper = ChatGroupMessageMapper::getInstance($this->adapter);
1357
                $result = $chatGroupMessageMapper->insert($chatGroupMessage);
1321
                $result = $chatGroupMessageMapper->insert($chatGroupMessage);
1358
                if(!$result) {
1322
                if (!$result) {
1359
                    return new JsonModel([
1323
                    return new JsonModel([
1360
                        'success' => false,
1324
                        'success' => false,
1361
                        'data' => $chatGroupMessageMapper->getError()
1325
                        'data' => $chatGroupMessageMapper->getError()
1362
                    ]);
1326
                    ]);
1363
                }
1327
                }
Línea 1364... Línea 1328...
1364
                $chatGroupMessage = $chatGroupMessageMapper->fetchOne($chatGroupMessage->id);
1328
                $chatGroupMessage = $chatGroupMessageMapper->fetchOne($chatGroupMessage->id);
1365
 
1329
 
1366
                    
1330
 
1367
                $chatGroupUserMessage = new ChatGroupUserMessage();
1331
                $chatGroupUserMessage = new ChatGroupUserMessage();
1368
                $chatGroupUserMessage->group_id = $chatGroupMessage->group_id;
1332
                $chatGroupUserMessage->group_id = $chatGroupMessage->group_id;
1369
                $chatGroupUserMessage->message_id = $chatGroupMessage->id;
1333
                $chatGroupUserMessage->message_id = $chatGroupMessage->id;
1370
                $chatGroupUserMessage->receiver_id = $currentUser->id;
1334
                $chatGroupUserMessage->receiver_id = $currentUser->id;
1371
                $chatGroupUserMessage->recd = ChatGroupUserMessage::RECD_YES;
1335
                $chatGroupUserMessage->recd = ChatGroupUserMessage::RECD_YES;
1372
                $chatGroupUserMessage->seen = ChatGroupUserMessage::SEEN_NO;
1336
                $chatGroupUserMessage->seen = ChatGroupUserMessage::SEEN_NO;
1373
                    
1337
 
1374
                $chatGroupUserMessageMapper = ChatGroupUserMessageMapper::getInstance($this->adapter);
1338
                $chatGroupUserMessageMapper = ChatGroupUserMessageMapper::getInstance($this->adapter);
1375
                $result = $chatGroupUserMessageMapper->insert($chatGroupUserMessage);
1339
                $result = $chatGroupUserMessageMapper->insert($chatGroupUserMessage);
1376
                if(!$result) {
1340
                if (!$result) {
1377
                    return new JsonModel([
1341
                    return new JsonModel([
1378
                        'success' => false,
1342
                        'success' => false,
1379
                        'data' => $chatGroupUserMessageMapper->getError()
1343
                        'data' => $chatGroupUserMessageMapper->getError()
1380
                    ]);
1344
                    ]);
1381
                }
1345
                }
1382
                
1346
 
1383
      
1347
 
1384
                $results = $chatGroupUserMapper->fetchAllByGroupId($chatGroup->id);
-
 
1385
                foreach ($results as $r) 
1348
                $results = $chatGroupUserMapper->fetchAllByGroupId($chatGroup->id);
1386
                {
1349
                foreach ($results as $r) {
1387
                    if ($r->user_id != $currentUser->id) {
1350
                    if ($r->user_id != $currentUser->id) {
1388
                        $chatGroupUserMessage               = new ChatGroupUserMessage();
1351
                        $chatGroupUserMessage               = new ChatGroupUserMessage();
1389
                        $chatGroupUserMessage->group_id     = $chatGroupMessage->group_id;
1352
                        $chatGroupUserMessage->group_id     = $chatGroupMessage->group_id;
1390
                        $chatGroupUserMessage->message_id   = $chatGroupMessage->id;
1353
                        $chatGroupUserMessage->message_id   = $chatGroupMessage->id;
1391
                        $chatGroupUserMessage->receiver_id  = $r->user_id;
1354
                        $chatGroupUserMessage->receiver_id  = $r->user_id;
1392
                        $chatGroupUserMessage->recd         = ChatGroupUserMessage::RECD_NO;
1355
                        $chatGroupUserMessage->recd         = ChatGroupUserMessage::RECD_NO;
1393
                        $chatGroupUserMessage->seen         = ChatGroupUserMessage::SEEN_NO;
1356
                        $chatGroupUserMessage->seen         = ChatGroupUserMessage::SEEN_NO;
1394
                            
1357
 
1395
                        $result = $chatGroupUserMessageMapper->insert($chatGroupUserMessage);
1358
                        $result = $chatGroupUserMessageMapper->insert($chatGroupUserMessage);
1396
                        if(!$result) {
1359
                        if (!$result) {
1397
                            return new JsonModel([
1360
                            return new JsonModel([
1398
                                'success' => false,
1361
                                'success' => false,
1399
                                'data' => $chatGroupUserMessageMapper->getError()
1362
                                'data' => $chatGroupUserMessageMapper->getError()
1400
                            ]);
1363
                            ]);
1401
                        }
1364
                        }
1402
                    }
1365
                    }
1403
                }
1366
                }
1404
                
1367
 
1405
                $utilMapper = UtilMapper::getInstance($this->adapter);
1368
                $utilMapper = UtilMapper::getInstance($this->adapter);
1406
                $now = $utilMapper->getDatebaseNow();
1369
                $now = $utilMapper->getDatebaseNow();
1407
                    
1370
 
1408
                $msgtime = Functions::timeAgo($now, $now);
1371
                $msgtime = Functions::timeAgo($now, $now);
1409
                return new JsonModel([
1372
                return new JsonModel([
1410
                    'success' => true,
1373
                    'success' => true,
Línea 1417... Línea 1380...
1417
                        'm'                 => $message,
1380
                        'm'                 => $message,
1418
                        'time'              => $msgtime,
1381
                        'time'              => $msgtime,
1419
                        'id'                => $chatGroupMessage->uuid,
1382
                        'id'                => $chatGroupMessage->uuid,
1420
                    ]
1383
                    ]
1421
                ]);
1384
                ]);
1422
 
-
 
1423
                
-
 
1424
                
-
 
1425
            } else {
1385
            } else {
1426
                $userMapper = UserMapper::getInstance($this->adapter);
1386
                $userMapper = UserMapper::getInstance($this->adapter);
1427
                $user = $userMapper->fetchOneByUuid($id);
1387
                $user = $userMapper->fetchOneByUuid($id);
1428
                if(!$user) {
1388
                if (!$user) {
1429
                    return new JsonModel([
1389
                    return new JsonModel([
1430
                        'success' => false,
1390
                        'success' => false,
1431
                        'data' => 'ERROR_USER_NOT_FOUND'
1391
                        'data' => 'ERROR_USER_NOT_FOUND'
1432
                    ]);
1392
                    ]);
1433
                }
1393
                }
1434
                
1394
 
1435
                if($currentNetwork->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER)  {
1395
                if ($currentNetwork->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER) {
1436
                
1396
 
1437
                
1397
 
1438
                    $connectionMapper = ConnectionMapper::getInstance($this->adapter);
1398
                    $connectionMapper = ConnectionMapper::getInstance($this->adapter);
1439
                    $connection = $connectionMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
1399
                    $connection = $connectionMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
1440
                    if(!$connection || $connection->status != Connection::STATUS_ACCEPTED) {
1400
                    if (!$connection || $connection->status != Connection::STATUS_ACCEPTED) {
1441
                        
1401
 
1442
                        return new JsonModel([
1402
                        return new JsonModel([
1443
                            'success' => false,
1403
                            'success' => false,
1444
                            'data' => 'ERROR_THIS_USER_IS_NOT_A_CONNECTION'
1404
                            'data' => 'ERROR_THIS_USER_IS_NOT_A_CONNECTION'
1445
                        ]);
1405
                        ]);
1446
                        
-
 
1447
                    }
1406
                    }
1448
                } else {
1407
                } else {
1449
                    if($currentUser->network_id != $user->network_id) {
1408
                    if ($currentUser->network_id != $user->network_id) {
1450
                        return new JsonModel([
1409
                        return new JsonModel([
1451
                            'success' => false,
1410
                            'success' => false,
1452
                            'data' => 'ERROR_THIS_USER_IS_NOT_A_CONNECTION'
1411
                            'data' => 'ERROR_THIS_USER_IS_NOT_A_CONNECTION'
1453
                        ]);
1412
                        ]);
1454
                    }
1413
                    }
1455
                }
1414
                }
1456
                $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
1415
                $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
1457
                $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
1416
                $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
1458
                if(!$chatUser) {
1417
                if (!$chatUser) {
1459
                    $chatUser = new ChatUser();
1418
                    $chatUser = new ChatUser();
1460
                    $chatUser->user_id1 = $currentUser->id;
1419
                    $chatUser->user_id1 = $currentUser->id;
1461
                    $chatUser->user_id2 = $user->id;
1420
                    $chatUser->user_id2 = $user->id;
1462
                    
1421
 
1463
                    $response = $chatUserMapper->insert($chatUser);
1422
                    $response = $chatUserMapper->insert($chatUser);
1464
                    if(!$response) {
1423
                    if (!$response) {
1465
                        return new JsonModel([
1424
                        return new JsonModel([
1466
                            'success' => false,
1425
                            'success' => false,
1467
                            'data' => $chatUserMapper->getError()
1426
                            'data' => $chatUserMapper->getError()
1468
                        ]);
1427
                        ]);
1469
                    }
1428
                    }
1470
                    
1429
 
1471
                    $chatUser = $chatUserMapper->fetchOne($chatUser->id);
1430
                    $chatUser = $chatUserMapper->fetchOne($chatUser->id);
1472
                    $fullpath_chat = $this->config['leaderslinked.fullpath.chat'];
1431
                    $fullpath_chat = $this->config['leaderslinked.fullpath.chat'];
1473
                    $dirpath = $fullpath_chat . $chatUser->uuid;
1432
                    $dirpath = $fullpath_chat . $chatUser->uuid;
1474
                    if (! file_exists($dirpath)) {
1433
                    if (!file_exists($dirpath)) {
1475
                        mkdir($dirpath, 0777, true);
1434
                        mkdir($dirpath, 0777, true);
1476
                        chmod($dirpath, 0777);
1435
                        chmod($dirpath, 0777);
1477
                    }
1436
                    }
1478
                    
-
 
1479
                }
1437
                }
1480
                
1438
 
1481
      
1439
 
1482
    
1440
 
1483
                $chatMessage = new ChatMessage();
1441
                $chatMessage = new ChatMessage();
1484
                $chatMessage->chat_id   = $chatUser->id;
1442
                $chatMessage->chat_id   = $chatUser->id;
1485
                $chatMessage->from_id   = $currentUser->id;
1443
                $chatMessage->from_id   = $currentUser->id;
1486
                $chatMessage->to_id     = $user->id;
1444
                $chatMessage->to_id     = $user->id;
1487
                $chatMessage->content   = $message;
1445
                $chatMessage->content   = $message;
1488
                $chatMessage->type      = ChatMessage::TYPE_TEXT;
1446
                $chatMessage->type      = ChatMessage::TYPE_TEXT;
1489
                $chatMessage->recd      = ChatMessage::RECD_NO;
1447
                $chatMessage->recd      = ChatMessage::RECD_NO;
1490
                $chatMessage->seen      = ChatMessage::SEEN_NO;
1448
                $chatMessage->seen      = ChatMessage::SEEN_NO;
1491
                        
1449
 
1492
                $chatMessageMapper = ChatMessageMapper::getInstance($this->adapter);
1450
                $chatMessageMapper = ChatMessageMapper::getInstance($this->adapter);
1493
                $result = $chatMessageMapper->insert($chatMessage);
1451
                $result = $chatMessageMapper->insert($chatMessage);
1494
                if(!$result) {
1452
                if (!$result) {
1495
                    return new JsonModel([
1453
                    return new JsonModel([
1496
                        'success' => false,
1454
                        'success' => false,
1497
                        'data' => $chatMessageMapper->getError()
1455
                        'data' => $chatMessageMapper->getError()
1498
                    ]);
1456
                    ]);
1499
                }
1457
                }
1500
                
1458
 
1501
                $chatMessage = $chatMessageMapper->fetchOne($chatMessage->id);
1459
                $chatMessage = $chatMessageMapper->fetchOne($chatMessage->id);
1502
                
1460
 
1503
                $utilMapper = UtilMapper::getInstance($this->adapter);
1461
                $utilMapper = UtilMapper::getInstance($this->adapter);
1504
                $now = $utilMapper->getDatebaseNow();
1462
                $now = $utilMapper->getDatebaseNow();
1505
 
1463
 
1506
                $msgtime = Functions::timeAgo($now, $now);
1464
                $msgtime = Functions::timeAgo($now, $now);
1507
                return new JsonModel([
1465
                return new JsonModel([
1508
                    'success' => true,
1466
                    'success' => true,
1509
                    'data' => [
1467
                    'data' => [
1510
                        'user_name'     => $sender_name,
1468
                        'user_name'     => $sender_name,
Línea 1514... Línea 1472...
1514
                        'mtype'         => ChatMessage::TYPE_TEXT,
1472
                        'mtype'         => ChatMessage::TYPE_TEXT,
1515
                        'm'             => $message,
1473
                        'm'             => $message,
1516
                        'time'          => $msgtime,
1474
                        'time'          => $msgtime,
1517
                        'id'            => $chatMessage->uuid,
1475
                        'id'            => $chatMessage->uuid,
1518
                    ]
1476
                    ]
1519
                 ]); 
1477
                ]);
1520
 
-
 
1521
                
-
 
1522
            }
1478
            }
1523
            
-
 
Línea -... Línea 1479...
-
 
1479
 
1524
 
1480
 
1525
           
1481
 
1526
            
1482
 
1527
            $userMapper->updateLastActivity($currentUser->id);
1483
            $userMapper->updateLastActivity($currentUser->id);
1528
            
1484
 
1529
            return new JsonModel($response);
-
 
1530
        
1485
            return new JsonModel($response);
1531
        } else {
1486
        } else {
1532
            return new JsonModel([
1487
            return new JsonModel([
1533
                'success' => false,
1488
                'success' => false,
1534
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1489
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1535
            ]);
1490
            ]);
1536
        }
-
 
1537
 
1491
        }
1538
    }
1492
    }
1539
    
1493
 
1540
    
1494
 
1541
    
1495
 
1542
    /**
1496
    /**
1543
     * Esta función recuperar los contactos disponibles para agregarlos a un grupo
1497
     * Esta función recuperar los contactos disponibles para agregarlos a un grupo
1544
     * Es una petición GET el url que contiene el ID encriptado del chat (/chat/get-contacts-availables-for-group/:group_id) y la cuál se recibe en la función heartBeat.
1498
     * Es una petición GET el url que contiene el ID encriptado del chat (/chat/get-contacts-availables-for-group/:group_id) y la cuál se recibe en la función heartBeat.
1545
     * con el siguiente parámetro
1499
     * con el siguiente parámetro
Línea 1565... Línea 1519...
1565
     */
1519
     */
1566
    public function contactAvailableGroupListAction()
1520
    public function contactAvailableGroupListAction()
1567
    {
1521
    {
1568
        $currentUserPlugin = $this->plugin('currentUserPlugin');
1522
        $currentUserPlugin = $this->plugin('currentUserPlugin');
1569
        $currentUser = $currentUserPlugin->getUser();
1523
        $currentUser = $currentUserPlugin->getUser();
1570
        
1524
 
1571
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
1525
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
1572
        $currentNetwork = $currentNetworkPlugin->getNetwork();
1526
        $currentNetwork = $currentNetworkPlugin->getNetwork();
1573
        
1527
 
1574
        
1528
 
1575
        $request    = $this->getRequest();
1529
        $request    = $this->getRequest();
1576
        if($request->isGet()) {
1530
        if ($request->isGet()) {
-
 
1531
 
Línea 1577... Línea -...
1577
 
-
 
1578
            
1532
 
1579
            $id = $this->params()->fromRoute('group_id');
1533
            $id = $this->params()->fromRoute('group_id');
1580
            if(!$id) {
1534
            if (!$id) {
1581
                return new JsonModel([
1535
                return new JsonModel([
1582
                    'success' => false,
1536
                    'success' => false,
1583
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
1537
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
1584
                ]);
1538
                ]);
1585
            } 
1539
            }
1586
            
1540
 
1587
            $userMapper = UserMapper::getInstance($this->adapter);
1541
            $userMapper = UserMapper::getInstance($this->adapter);
1588
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
1542
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
1589
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
1543
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
1590
            
1544
 
1591
            if(!$chatGroup) {
1545
            if (!$chatGroup) {
1592
                return new JsonModel([
1546
                return new JsonModel([
1593
                    'success' => false,
1547
                    'success' => false,
1594
                    'data' => 'ERROR_GROUP_NOT_FOUND'
1548
                    'data' => 'ERROR_GROUP_NOT_FOUND'
1595
                ]);
1549
                ]);
1596
            }
1550
            }
1597
                
1551
 
1598
            $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
1552
            $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
1599
            $chatGroupOwner = $chatGroupUserMapper->fetchOwnerByGroupId($chatGroup->id);
1553
            $chatGroupOwner = $chatGroupUserMapper->fetchOwnerByGroupId($chatGroup->id);
1600
            
1554
 
1601
            if($chatGroupOwner->user_id != $currentUser->id) {
1555
            if ($chatGroupOwner->user_id != $currentUser->id) {
1602
                return new JsonModel([
1556
                return new JsonModel([
1603
                    'success' => false,
1557
                    'success' => false,
1604
                    'data' => 'ERROR_CHAT_GROUP_YOU_ARE_NOT_OWNER'
1558
                    'data' => 'ERROR_CHAT_GROUP_YOU_ARE_NOT_OWNER'
1605
                ]);
1559
                ]);
1606
            }
1560
            }
1607
            
1561
 
1608
            
1562
 
1609
                
1563
 
1610
            $contact_ids = [];
1564
            $contact_ids = [];
1611
            $contacts = $chatGroupUserMapper->fetchAllByGroupId($chatGroup->id);
1565
            $contacts = $chatGroupUserMapper->fetchAllByGroupId($chatGroup->id);
1612
            foreach($contacts as $contact) 
-
 
1613
            {
1566
            foreach ($contacts as $contact) {
1614
                array_push($contact_ids, $contact->user_id);
1567
                array_push($contact_ids, $contact->user_id);
1615
            }
1568
            }
1616
            
1569
 
1617
            $user_ids = [];
1570
            $user_ids = [];
1618
            if($currentNetwork->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER)  {
1571
            if ($currentNetwork->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER) {
1619
                
1572
 
1620
            
1573
 
1621
            
1574
 
1622
                $connectionMapper = ConnectionMapper::getInstance($this->adapter);
1575
                $connectionMapper = ConnectionMapper::getInstance($this->adapter);
1623
                $user_ids = $connectionMapper->fetchAllConnectionsByUserReturnIds($currentUser->id);
-
 
1624
   
1576
                $user_ids = $connectionMapper->fetchAllConnectionsByUserReturnIds($currentUser->id);
1625
            } else {
1577
            } else {
1626
                if($currentNetwork->default == Network::DEFAULT_YES) {
1578
                if ($currentNetwork->default == Network::DEFAULT_YES) {
1627
                    $user_ids = $userMapper->fetchAllIdsByDefaultNetworkId($currentNetwork->id, $currentUser->id);
1579
                    $user_ids = $userMapper->fetchAllIdsByDefaultNetworkId($currentNetwork->id, $currentUser->id);
1628
                } else {
1580
                } else {
1629
                    $user_ids = $userMapper->fetchAllIdsByNonDefaultNetworkId($currentNetwork->id, $currentUser->id);
1581
                    $user_ids = $userMapper->fetchAllIdsByNonDefaultNetworkId($currentNetwork->id, $currentUser->id);
1630
                }
1582
                }
1631
            }
1583
            }
1632
            
1584
 
1633
            $user_ids = array_filter($user_ids, function($var) use ( $contact_ids) {
1585
            $user_ids = array_filter($user_ids, function ($var) use ($contact_ids) {
1634
                return !in_array($var, $contact_ids);
1586
                return !in_array($var, $contact_ids);
1635
            });
1587
            });
1636
                
1588
 
1637
                
1589
 
1638
            $items = [];
1590
            $items = [];
1639
            foreach ($user_ids as $user_id)
-
 
1640
            {
1591
            foreach ($user_ids as $user_id) {
1641
                $user = $userMapper->fetchOne($user_id);
1592
                $user = $userMapper->fetchOne($user_id);
1642
                if (! $user) {
1593
                if (!$user) {
1643
                    continue;
1594
                    continue;
1644
                }
1595
                }
1645
                    
1596
 
1646
                $name   = trim($user->first_name . ' ' . $user->last_name);
1597
                $name   = trim($user->first_name . ' ' . $user->last_name);
1647
                $image  = $this->url()->fromRoute('storage', [
1598
                $image  = $this->url()->fromRoute('storage', [
1648
                    'code' => $user->uuid,
1599
                    'code' => $user->uuid,
1649
                    'type' => 'user',
1600
                    'type' => 'user',
1650
                    'filename' => $user->image
1601
                    'filename' => $user->image
1651
                ]);
1602
                ]);
Línea 1652... Línea 1603...
1652
                
1603
 
1653
 
1604
 
1654
                array_push($items, [
1605
                array_push($items, [
1655
                    'id'        => $user->uuid,
1606
                    'id'        => $user->uuid,
1656
                    'name'      => $name,
1607
                    'name'      => $name,
1657
                    'image'     => $image,
1608
                    'image'     => $image,
1658
                    'online'    => $user->online ? 1 : 0,
1609
                    'online'    => $user->online ? 1 : 0,
1659
                ]);
1610
                ]);
1660
            } 
1611
            }
1661
            
1612
 
1662
            usort($items, function($a, $b) {
1613
            usort($items, function ($a, $b) {
1663
                return $a['name'] <=> $b['name'];
1614
                return $a['name'] <=> $b['name'];
1664
            }); 
1615
            });
Línea 1665... Línea 1616...
1665
            
1616
 
1666
            
1617
 
1667
 
1618
 
1668
            $userMapper->updateLastActivity($currentUser->id);
1619
            $userMapper->updateLastActivity($currentUser->id);
1669
            
1620
 
1670
            return new JsonModel([
1621
            return new JsonModel([
1671
                'success' => true,
-
 
1672
                'data' => $items,
1622
                'success' => true,
1673
            ]);
1623
                'data' => $items,
1674
            
1624
            ]);
1675
        } else {
1625
        } else {
1676
            return new JsonModel([
1626
            return new JsonModel([
1677
                'success' => false,
1627
                'success' => false,
1678
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
1679
            ]);
1628
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
Línea 1680... Línea 1629...
1680
        }
1629
            ]);
1681
 
1630
        }
1682
    }
1631
    }
Línea 1716... Línea 1665...
1716
     * @return \Laminas\View\Model\JsonModel
1665
     * @return \Laminas\View\Model\JsonModel
1717
     */
1666
     */
Línea 1718... Línea 1667...
1718
 
1667
 
1719
    public function contactGroupListAction()
1668
    public function contactGroupListAction()
1720
    {
1669
    {
1721
        
1670
 
1722
        $request    = $this->getRequest();
1671
        $request    = $this->getRequest();
1723
        if($request->isGet()) {
1672
        if ($request->isGet()) {
1724
            $currentUserPlugin = $this->plugin('currentUserPlugin');
1673
            $currentUserPlugin = $this->plugin('currentUserPlugin');
1725
            $currentUser = $currentUserPlugin->getUser();
1674
            $currentUser = $currentUserPlugin->getUser();
1726
    
1675
 
1727
            $id = $this->params()->fromRoute('group_id');
1676
            $id = $this->params()->fromRoute('group_id');
1728
            if(!$id) {
1677
            if (!$id) {
1729
                return new JsonModel([
1678
                return new JsonModel([
1730
                    'success' => false,
1679
                    'success' => false,
1731
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
1680
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
1732
                ]);
1681
                ]);
1733
            } 
1682
            }
1734
            
1683
 
1735
            $userMapper = UserMapper::getInstance($this->adapter);
1684
            $userMapper = UserMapper::getInstance($this->adapter);
1736
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
1685
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
1737
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
1686
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
1738
            
1687
 
1739
            if(!$chatGroup) {
1688
            if (!$chatGroup) {
1740
                return new JsonModel([
1689
                return new JsonModel([
1741
                    'success' => false,
1690
                    'success' => false,
1742
                    'data' => 'ERROR_GROUP_NOT_FOUND'
1691
                    'data' => 'ERROR_GROUP_NOT_FOUND'
1743
                ]);
1692
                ]);
1744
            }
1693
            }
1745
            
1694
 
1746
            $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
1695
            $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
1747
            
1696
 
1748
            $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
1697
            $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
1749
            
1698
 
1750
            if(!$chatGroupUser) {
1699
            if (!$chatGroupUser) {
1751
                return new JsonModel([
1700
                return new JsonModel([
1752
                    'success' => false,
1701
                    'success' => false,
1753
                    'data' => 'ERROR_CHAT_GROUP_USER_NOT_FOUND'
1702
                    'data' => 'ERROR_CHAT_GROUP_USER_NOT_FOUND'
1754
                ]);
1703
                ]);
Línea 1755... Línea 1704...
1755
            }
1704
            }
1756
 
1705
 
1757
            $items = [];
1706
            $items = [];
1758
            $chatGroupUsers = $chatGroupUserMapper->fetchAllByGroupId($chatGroup->id);
-
 
1759
            foreach ($chatGroupUsers as $chatGroupUser) 
1707
            $chatGroupUsers = $chatGroupUserMapper->fetchAllByGroupId($chatGroup->id);
1760
            {
1708
            foreach ($chatGroupUsers as $chatGroupUser) {
1761
                $user = $userMapper->fetchOne((int) $chatGroupUser->user_id);
1709
                $user = $userMapper->fetchOne((int) $chatGroupUser->user_id);
1762
                if (! $user) {
1710
                if (!$user) {
1763
                    continue;
1711
                    continue;
1764
                }
1712
                }
1765
                    
1713
 
1766
                $name   = trim($user->first_name . ' ' . $user->last_name);
1714
                $name   = trim($user->first_name . ' ' . $user->last_name);
1767
                $image  = $this->url()->fromRoute('storage', [
1715
                $image  = $this->url()->fromRoute('storage', [
1768
                    'code' => $user->uuid,
1716
                    'code' => $user->uuid,
1769
                    'type' => 'user',
1717
                    'type' => 'user',
1770
                    'filename' => $user->image
1718
                    'filename' => $user->image
1771
                ]);
1719
                ]);
1772
                    
1720
 
1773
     
1721
 
1774
                if($chatGroupUser->owner == ChatGroupUser::OWNER_YES) {
-
 
1775
                    $url_remove_from_group = '';
1722
                if ($chatGroupUser->owner == ChatGroupUser::OWNER_YES) {
1776
                    
1723
                    $url_remove_from_group = '';
1777
                } else {
1724
                } else {
1778
                    $url_remove_from_group = $this->url()->fromRoute('chat/remove-user-from-group', ['group_id' => $chatGroup->uuid, 'user_id' => $user->uuid ]);
1725
                    $url_remove_from_group = $this->url()->fromRoute('chat/remove-user-from-group', ['group_id' => $chatGroup->uuid, 'user_id' => $user->uuid]);
1779
                }
1726
                }
1780
                    
1727
 
1781
                    
1728
 
1782
                array_push($items, [
1729
                array_push($items, [
1783
                    'url_remove_from_group' => $url_remove_from_group,
1730
                    'url_remove_from_group' => $url_remove_from_group,
1784
                    'id'                    => $user->uuid,
1731
                    'id'                    => $user->uuid,
1785
                    'name'                  => $name,
1732
                    'name'                  => $name,
1786
                    'image'                 => $image,
1733
                    'image'                 => $image,
1787
                    'online'                => $user->online ? 1 : 0,
-
 
1788
                ]);
1734
                    'online'                => $user->online ? 1 : 0,
Línea 1789... Línea 1735...
1789
                    
1735
                ]);
1790
            }
1736
            }
1791
 
1737
 
1792
            $userMapper->updateLastActivity($currentUser->id);
1738
            $userMapper->updateLastActivity($currentUser->id);
1793
                
1739
 
1794
            return new JsonModel([
1740
            return new JsonModel([
1795
                'success' => true, 
-
 
1796
                'data' => $items,
1741
                'success' => true,
1797
            ]);
1742
                'data' => $items,
1798
        
1743
            ]);
1799
        } else {
1744
        } else {
1800
            return new JsonModel([
1745
            return new JsonModel([
1801
                'success' => false,
1746
                'success' => false,
1802
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1747
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1803
            ]);
1748
            ]);
1804
        }
1749
        }
1805
    }
1750
    }
1806
    
1751
 
1807
    /**
1752
    /**
1808
     * Elimina un grupo de chat, solo el owner puede realizarla
1753
     * Elimina un grupo de chat, solo el owner puede realizarla
Línea 1821... Línea 1766...
1821
     * ]
1766
     * ]
1822
     * @return \Laminas\View\Model\JsonModel
1767
     * @return \Laminas\View\Model\JsonModel
1823
     */
1768
     */
1824
    public function deleteGroupAction()
1769
    public function deleteGroupAction()
1825
    {
1770
    {
1826
        
1771
 
1827
        $request    = $this->getRequest();
1772
        $request    = $this->getRequest();
1828
        if($request->isPost()) {
1773
        if ($request->isPost()) {
Línea 1829... Línea 1774...
1829
 
1774
 
1830
            $currentUserPlugin = $this->plugin('currentUserPlugin');
1775
            $currentUserPlugin = $this->plugin('currentUserPlugin');
1831
            $currentUser = $currentUserPlugin->getUser();
1776
            $currentUser = $currentUserPlugin->getUser();
1832
    
1777
 
1833
            $id = trim(filter_var($this->params()->fromRoute('group_id'), FILTER_SANITIZE_STRING));
1778
            $id = trim(filter_var($this->params()->fromRoute('group_id'), FILTER_SANITIZE_STRING));
1834
            if(!$id) {
1779
            if (!$id) {
1835
                return new JsonModel([
1780
                return new JsonModel([
1836
                    'success' => false,
1781
                    'success' => false,
1837
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
1782
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
1838
                ]);
1783
                ]);
1839
            } 
1784
            }
1840
            
1785
 
Línea 1841... Línea 1786...
1841
    
1786
 
1842
 
1787
 
1843
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
1788
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
1844
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
1789
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
1845
            
1790
 
1846
            if(!$chatGroup) {
1791
            if (!$chatGroup) {
1847
                return new JsonModel([
1792
                return new JsonModel([
1848
                    'success' => false,
1793
                    'success' => false,
1849
                    'data' => 'ERROR_GROUP_NOT_FOUND'
1794
                    'data' => 'ERROR_GROUP_NOT_FOUND'
1850
                ]);
1795
                ]);
1851
            }
1796
            }
1852
            
1797
 
1853
            $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
1798
            $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
1854
            $chatGroupOwner = $chatGroupUserMapper->fetchOwnerByGroupId($chatGroup->id);
1799
            $chatGroupOwner = $chatGroupUserMapper->fetchOwnerByGroupId($chatGroup->id);
1855
            
1800
 
1856
            if($chatGroupOwner->user_id != $currentUser->id) {
1801
            if ($chatGroupOwner->user_id != $currentUser->id) {
1857
                return new JsonModel([
1802
                return new JsonModel([
1858
                    'success' => false,
1803
                    'success' => false,
1859
                    'data' => 'ERROR_CHAT_GROUP_YOU_ARE_NOT_OWNER'
1804
                    'data' => 'ERROR_CHAT_GROUP_YOU_ARE_NOT_OWNER'
Línea 1860... Línea 1805...
1860
                ]);
1805
                ]);
1861
            }
1806
            }
1862
 
1807
 
1863
 
1808
 
1864
            $chatGroupUserMessageMapper = ChatGroupUserMessageMapper::getInstance($this->adapter);
1809
            $chatGroupUserMessageMapper = ChatGroupUserMessageMapper::getInstance($this->adapter);
1865
            $result = $chatGroupUserMessageMapper->deleteAllByGroupId($chatGroup->id);
1810
            $result = $chatGroupUserMessageMapper->deleteAllByGroupId($chatGroup->id);
1866
            if(!$result) {
1811
            if (!$result) {
1867
                return new JsonModel([
1812
                return new JsonModel([
1868
                    'success' => false,
1813
                    'success' => false,
1869
                    'data' => $chatGroupUserMessageMapper->getError()
1814
                    'data' => $chatGroupUserMessageMapper->getError()
1870
                ]);
1815
                ]);
1871
            }
1816
            }
1872
            
1817
 
1873
            $chatGroupMessageMapper = ChatGroupMessageMapper::getInstance($this->adapter);
1818
            $chatGroupMessageMapper = ChatGroupMessageMapper::getInstance($this->adapter);
1874
            $result = $chatGroupMessageMapper->deleteAllByGroupId($chatGroup->id);
1819
            $result = $chatGroupMessageMapper->deleteAllByGroupId($chatGroup->id);
1875
            if(!$result) {
1820
            if (!$result) {
1876
                return new JsonModel([
1821
                return new JsonModel([
1877
                    'success' => false,
1822
                    'success' => false,
1878
                    'data' => $chatGroupMessageMapper->getError()
1823
                    'data' => $chatGroupMessageMapper->getError()
1879
                ]);
1824
                ]);
1880
            }
1825
            }
1881
            
1826
 
1882
            $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
1827
            $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
1883
            $result = $chatGroupUserMapper->deleteAllByGroupId($chatGroup->id);
1828
            $result = $chatGroupUserMapper->deleteAllByGroupId($chatGroup->id);
1884
            if(!$result) {
1829
            if (!$result) {
1885
                return new JsonModel([
1830
                return new JsonModel([
1886
                    'success' => false,
1831
                    'success' => false,
1887
                    'data' => $chatGroupUserMapper->getError()
1832
                    'data' => $chatGroupUserMapper->getError()
1888
                ]);
1833
                ]);
1889
            }
1834
            }
1890
            
1835
 
1891
            $chatGroupMapper->deleteByGroupId($chatGroup->id);
1836
            $chatGroupMapper->deleteByGroupId($chatGroup->id);
1892
            if(!$result) {
1837
            if (!$result) {
1893
                return new JsonModel([
1838
                return new JsonModel([
1894
                    'success' => false,
1839
                    'success' => false,
1895
                    'data' => $chatGroupMapper->getError()
1840
                    'data' => $chatGroupMapper->getError()
1896
                ]);
1841
                ]);
1897
            }
1842
            }
1898
           
1843
 
1899
                    
1844
 
1900
            $fullpath_chat = $this->config['leaderslinked.fullpath.chat'];
1845
            $fullpath_chat = $this->config['leaderslinked.fullpath.chat'];
1901
            $dirpath = $fullpath_chat . $chatGroup->uuid;
1846
            $dirpath = $fullpath_chat . $chatGroup->uuid;
1902
                        
1847
 
1903
            Functions::rmDirRecursive($dirpath);
1848
            Functions::rmDirRecursive($dirpath);
1904
                        
1849
 
1905
            
1850
 
1906
            $userMapper = UserMapper::getInstance($this->adapter);
1851
            $userMapper = UserMapper::getInstance($this->adapter);
1907
            $userMapper->updateLastActivity($currentUser->id);
1852
            $userMapper->updateLastActivity($currentUser->id);
1908
            
-
 
1909
            return new JsonModel([
-
 
1910
                'success' => true
1853
 
1911
            ]);
1854
            return new JsonModel([
1912
 
1855
                'success' => true
1913
 
1856
            ]);
1914
        } else {
1857
        } else {
1915
            return new JsonModel([
-
 
1916
                'success' => false,
1858
            return new JsonModel([
1917
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1859
                'success' => false,
Línea 1918... Línea 1860...
1918
            ]);
1860
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1919
            
1861
            ]);
Línea 1938... Línea 1880...
1938
     * @return \Laminas\View\Model\JsonModel
1880
     * @return \Laminas\View\Model\JsonModel
1939
     */
1881
     */
1940
    public function closeAction()
1882
    public function closeAction()
1941
    {
1883
    {
1942
        $request    = $this->getRequest();
1884
        $request    = $this->getRequest();
1943
        if($request->isPost()) {
1885
        if ($request->isPost()) {
1944
            $currentUserPlugin = $this->plugin('currentUserPlugin');
1886
            $currentUserPlugin = $this->plugin('currentUserPlugin');
1945
            $currentUser = $currentUserPlugin->getUser();
1887
            $currentUser = $currentUserPlugin->getUser();
1946
            
1888
 
1947
            $id = filter_var($this->params()->fromRoute('id'), FILTER_SANITIZE_STRING);
1889
            $id = filter_var($this->params()->fromRoute('id'), FILTER_SANITIZE_STRING);
1948
            
1890
 
1949
            if (!$id) {
1891
            if (!$id) {
1950
                return new JsonModel([
1892
                return new JsonModel([
1951
                    'success' => false,
1893
                    'success' => false,
1952
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
1894
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
1953
                ]);
1895
                ]);
1954
            }
1896
            }
1955
            
1897
 
1956
            
1898
 
1957
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
1899
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
1958
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
1900
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
1959
            if ($chatGroup) {
1901
            if ($chatGroup) {
1960
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
1902
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
1961
                $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
1903
                $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
1962
                
1904
 
1963
                if(!$chatGroupUser) {
1905
                if (!$chatGroupUser) {
1964
                    return new JsonModel([
1906
                    return new JsonModel([
1965
                        'success' => false,
1907
                        'success' => false,
1966
                        'data' =>  'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
1908
                        'data' =>  'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
1967
                    ]);
1909
                    ]);
1968
                }
1910
                }
1969
                
1911
 
1970
                $chatGroupUserMapper->markIsClose($chatGroup->id, $currentUser->id);
1912
                $chatGroupUserMapper->markIsClose($chatGroup->id, $currentUser->id);
1971
                
-
 
1972
 
-
 
1973
            } else {
1913
            } else {
1974
                
1914
 
1975
                $userMapper = UserMapper::getInstance($this->adapter);
1915
                $userMapper = UserMapper::getInstance($this->adapter);
1976
                $user = $userMapper->fetchOneByUuid($id);
1916
                $user = $userMapper->fetchOneByUuid($id);
1977
                if(!$user) {
1917
                if (!$user) {
1978
                    return new JsonModel([
1918
                    return new JsonModel([
1979
                        'success' => false,
1919
                        'success' => false,
1980
                        'data' => 'ERROR_USER_NOT_FOUND'
1920
                        'data' => 'ERROR_USER_NOT_FOUND'
1981
                    ]);
1921
                    ]);
1982
                }
1922
                }
1983
                
1923
 
1984
                
1924
 
1985
                $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
1925
                $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
1986
                $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
1926
                $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
1987
                if($chatUser) {
1927
                if ($chatUser) {
1988
                   
1928
 
1989
                    if($currentUser->id == $chatUser->user_id1) {
1929
                    if ($currentUser->id == $chatUser->user_id1) {
1990
                        $chatUserMapper->markIsClose1($chatUser->id);
1930
                        $chatUserMapper->markIsClose1($chatUser->id);
1991
                    } else {
1931
                    } else {
1992
                        $chatUserMapper->markIsClose2($chatUser->id);
1932
                        $chatUserMapper->markIsClose2($chatUser->id);
1993
                    }
1933
                    }
1994
                    
-
 
1995
                    
-
 
1996
                }
1934
                }
1997
            }
1935
            }
1998
            
1936
 
Línea 1999... Línea 1937...
1999
 
1937
 
2000
            $userMapper->updateLastActivity($currentUser->id);
1938
            $userMapper->updateLastActivity($currentUser->id);
2001
              
1939
 
2002
            return new JsonModel([
1940
            return new JsonModel([
2003
                'success' => true
1941
                'success' => true
2004
            ]);
1942
            ]);
2005
        } else {
1943
        } else {
Línea 2028... Línea 1966...
2028
     * @return \Laminas\View\Model\JsonModel
1966
     * @return \Laminas\View\Model\JsonModel
2029
     */
1967
     */
2030
    public function clearAction()
1968
    public function clearAction()
2031
    {
1969
    {
2032
        $request    = $this->getRequest();
1970
        $request    = $this->getRequest();
2033
        if($request->isPost()) {
1971
        if ($request->isPost()) {
2034
            $currentUserPlugin = $this->plugin('currentUserPlugin');
1972
            $currentUserPlugin = $this->plugin('currentUserPlugin');
2035
            $currentUser = $currentUserPlugin->getUser();
1973
            $currentUser = $currentUserPlugin->getUser();
2036
            
1974
 
2037
            $id = filter_var($this->params()->fromRoute('id'), FILTER_SANITIZE_STRING);
1975
            $id = filter_var($this->params()->fromRoute('id'), FILTER_SANITIZE_STRING);
2038
            
1976
 
2039
            if (!$id) {
1977
            if (!$id) {
2040
                return new JsonModel([
1978
                return new JsonModel([
2041
                    'success' => false,
1979
                    'success' => false,
2042
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
1980
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
2043
                ]);
1981
                ]);
2044
            }
1982
            }
2045
  
1983
 
2046
            
1984
 
2047
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
1985
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
2048
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
1986
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
2049
            if ($chatGroup) {
1987
            if ($chatGroup) {
2050
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
1988
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
2051
                $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
1989
                $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
2052
                
1990
 
2053
                if(!$chatGroupUser) {
1991
                if (!$chatGroupUser) {
2054
                    return new JsonModel([
1992
                    return new JsonModel([
2055
                        'success' => false,
1993
                        'success' => false,
2056
                        'data' =>  'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
1994
                        'data' =>  'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
2057
                    ]);
1995
                    ]);
2058
                }
1996
                }
2059
                
1997
 
2060
                $chatGroupUserMapper->markIsClose($chatGroup->id, $currentUser->id);
1998
                $chatGroupUserMapper->markIsClose($chatGroup->id, $currentUser->id);
2061
            } else {
1999
            } else {
2062
                
2000
 
2063
                $userMapper = UserMapper::getInstance($this->adapter);
2001
                $userMapper = UserMapper::getInstance($this->adapter);
2064
                $user = $userMapper->fetchOneByUuid($id);
2002
                $user = $userMapper->fetchOneByUuid($id);
2065
                if(!$user) {
2003
                if (!$user) {
2066
                    return new JsonModel([
2004
                    return new JsonModel([
2067
                        'success' => false,
2005
                        'success' => false,
2068
                        'data' => 'ERROR_USER_NOT_FOUND'
2006
                        'data' => 'ERROR_USER_NOT_FOUND'
2069
                    ]);
2007
                    ]);
2070
                }
2008
                }
2071
                
2009
 
2072
                
2010
 
2073
                $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
2011
                $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
2074
                $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
2012
                $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
2075
                if($chatUser) {
2013
                if ($chatUser) {
2076
                    if($currentUser->id == $chatUser->user_id1) {
2014
                    if ($currentUser->id == $chatUser->user_id1) {
2077
                        $chatUserMapper->markIsClose1($chatUser->id);
2015
                        $chatUserMapper->markIsClose1($chatUser->id);
2078
                    } else {
2016
                    } else {
2079
                        $chatUserMapper->markIsClose2($chatUser->id);
2017
                        $chatUserMapper->markIsClose2($chatUser->id);
2080
                    }
2018
                    }
2081
                    
-
 
2082
                }
2019
                }
2083
            }
2020
            }
Línea 2084... Línea 2021...
2084
 
2021
 
2085
 
2022
 
2086
            $userMapper->updateLastActivity($currentUser->id);
2023
            $userMapper->updateLastActivity($currentUser->id);
2087
            
2024
 
2088
            return new JsonModel([
2025
            return new JsonModel([
2089
                'success' => true
2026
                'success' => true
2090
            ]);
2027
            ]);
2091
        } else {
2028
        } else {
2092
            return new JsonModel([
2029
            return new JsonModel([
2093
                'success' => false,
2030
                'success' => false,
2094
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
2031
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
2095
            ]);
2032
            ]);
2096
        }
2033
        }
2097
    }
2034
    }
2098
    
2035
 
2099
    /**
2036
    /**
2100
     * Marca como abierto el caht
2037
     * Marca como abierto el caht
2101
     * Es una petición POST el url que contiene el ID encriptado del chat (/chat/open/:id) y la cuál se recibe en la función heartBeat.
2038
     * Es una petición POST el url que contiene el ID encriptado del chat (/chat/open/:id) y la cuál se recibe en la función heartBeat.
Línea 2114... Línea 2051...
2114
     * @return \Laminas\View\Model\JsonModel
2051
     * @return \Laminas\View\Model\JsonModel
2115
     */
2052
     */
2116
    public function openOrCreateAction()
2053
    public function openOrCreateAction()
2117
    {
2054
    {
2118
        $request    = $this->getRequest();
2055
        $request    = $this->getRequest();
2119
        if($request->isPost()) {
2056
        if ($request->isPost()) {
2120
            $currentUserPlugin = $this->plugin('currentUserPlugin');
2057
            $currentUserPlugin = $this->plugin('currentUserPlugin');
2121
            $currentUser = $currentUserPlugin->getUser();
2058
            $currentUser = $currentUserPlugin->getUser();
2122
            
2059
 
2123
            $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
2060
            $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
2124
            $currentNetwork = $currentNetworkPlugin->getNetwork();
2061
            $currentNetwork = $currentNetworkPlugin->getNetwork();
2125
            
2062
 
2126
            
2063
 
2127
            $id = filter_var($this->params()->fromRoute('id'), FILTER_SANITIZE_STRING);
2064
            $id = filter_var($this->params()->fromRoute('id'), FILTER_SANITIZE_STRING);
2128
            
2065
 
2129
            if (!$id) {
2066
            if (!$id) {
2130
                return new JsonModel([
2067
                return new JsonModel([
2131
                    'success' => false,
2068
                    'success' => false,
2132
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
2069
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
2133
                ]);
2070
                ]);
2134
            }
2071
            }
2135
            
2072
 
2136
            $userMapper = UserMapper::getInstance($this->adapter);
2073
            $userMapper = UserMapper::getInstance($this->adapter);
2137
            $user = $userMapper->fetchOneByUuid($id);
2074
            $user = $userMapper->fetchOneByUuid($id);
2138
            
2075
 
2139
            if(!$user) {
2076
            if (!$user) {
2140
                return new JsonModel([
2077
                return new JsonModel([
2141
                    'success' => false,
2078
                    'success' => false,
2142
                    'data' => 'ERROR_USER_NOT_FOUND'
2079
                    'data' => 'ERROR_USER_NOT_FOUND'
2143
                ]);
2080
                ]);
2144
            }
2081
            }
2145
            
2082
 
2146
            if($user->email_verified == User::EMAIL_VERIFIED_NO || $user->status != User::STATUS_ACTIVE) {
2083
            if ($user->email_verified == User::EMAIL_VERIFIED_NO || $user->status != User::STATUS_ACTIVE) {
2147
                return new JsonModel([
2084
                return new JsonModel([
2148
                    'success' => false,
2085
                    'success' => false,
2149
                    'data' => 'ERROR_USER_IS_INACTIVE'
2086
                    'data' => 'ERROR_USER_IS_INACTIVE'
2150
                ]);
2087
                ]);
2151
            }
2088
            }
2152
            
2089
 
2153
            if($user->network_id != $currentUser->network_id) {
2090
            if ($user->network_id != $currentUser->network_id) {
2154
                return new JsonModel([
2091
                return new JsonModel([
2155
                    'success' => false,
2092
                    'success' => false,
2156
                    'data' => 'ERROR_USER_IS_INACTIVE'
2093
                    'data' => 'ERROR_USER_IS_INACTIVE'
2157
                ]);
2094
                ]);
2158
            }
2095
            }
2159
            
2096
 
2160
            if($currentNetwork->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER)  {
2097
            if ($currentNetwork->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER) {
2161
                
2098
 
2162
                $connectionMapper = ConnectionMapper::getInstance($this->adapter);
2099
                $connectionMapper = ConnectionMapper::getInstance($this->adapter);
2163
                $connection = $connectionMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
2100
                $connection = $connectionMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
2164
                
2101
 
2165
                if(!$connection) {
2102
                if (!$connection) {
2166
                    return new JsonModel([
2103
                    return new JsonModel([
2167
                        'success' => false,
2104
                        'success' => false,
2168
                        'data' =>  'ERROR_CONNECTION_NOT_ACTIVE'
2105
                        'data' =>  'ERROR_CONNECTION_NOT_ACTIVE'
2169
                    ]);
2106
                    ]);
2170
                }
2107
                }
2171
            } 
2108
            }
2172
            
2109
 
2173
            $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
2110
            $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
2174
            $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
2111
            $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
2175
            if($chatUser) {
2112
            if ($chatUser) {
2176
                if($currentUser->id == $chatUser->user_id1) {
2113
                if ($currentUser->id == $chatUser->user_id1) {
2177
                    $chatUserMapper->markIsOpen1($chatUser->id);
2114
                    $chatUserMapper->markIsOpen1($chatUser->id);
2178
                } else {
2115
                } else {
2179
                    $chatUserMapper->markIsOpen2($chatUser->id);
2116
                    $chatUserMapper->markIsOpen2($chatUser->id);
2180
                }
2117
                }
2181
                
-
 
2182
            } else {
2118
            } else {
2183
                $chatUser = new ChatUser();
2119
                $chatUser = new ChatUser();
2184
                $chatUser->user_id1 = $currentUser->id;
2120
                $chatUser->user_id1 = $currentUser->id;
2185
                $chatUser->user_id2 = $user->id;
2121
                $chatUser->user_id2 = $user->id;
2186
                $chatUser->user_open1 = ChatUser::OPEN_YES;
2122
                $chatUser->user_open1 = ChatUser::OPEN_YES;
2187
                $chatUser->user_open2 = ChatUser::OPEN_NO;
2123
                $chatUser->user_open2 = ChatUser::OPEN_NO;
2188
                
2124
 
2189
                
2125
 
2190
                if(!$chatUserMapper->insert($chatUser)) {
2126
                if (!$chatUserMapper->insert($chatUser)) {
2191
                    return new JsonModel([
2127
                    return new JsonModel([
2192
                        'success' => false,
2128
                        'success' => false,
2193
                        'data' =>  $chatUserMapper->getError()
2129
                        'data' =>  $chatUserMapper->getError()
2194
                    ]);
2130
                    ]);
2195
                }
2131
                }
2196
                
-
 
2197
            }
2132
            }
2198
            
2133
 
2199
            $utilMapper = UtilMapper::getInstance($this->adapter);
2134
            $utilMapper = UtilMapper::getInstance($this->adapter);
2200
            $now = $utilMapper->getDatebaseNow();
2135
            $now = $utilMapper->getDatebaseNow();
2201
            
2136
 
2202
            $chatMessageMapper = ChatMessageMapper::getInstance($this->adapter);
2137
            $chatMessageMapper = ChatMessageMapper::getInstance($this->adapter);
2203
            $count_not_received_messages = $chatMessageMapper->countNotReceivedMessagesByChatIdAndToId($chatUser->id, $currentUser->id);
2138
            $count_not_received_messages = $chatMessageMapper->countNotReceivedMessagesByChatIdAndToId($chatUser->id, $currentUser->id);
2204
            $count_not_seen_messages = $chatMessageMapper->countNotSeenMessagesByChatIdAndToId($chatUser->id, $currentUser->id);
2139
            $count_not_seen_messages = $chatMessageMapper->countNotSeenMessagesByChatIdAndToId($chatUser->id, $currentUser->id);
2205
            $lastMessage = $chatMessageMapper->fetchLastMessage($chatUser->id, $currentUser->id);
2140
            $lastMessage = $chatMessageMapper->fetchLastMessage($chatUser->id, $currentUser->id);
2206
            
2141
 
2207
            if($lastMessage) {
2142
            if ($lastMessage) {
2208
                $lastMessage = Functions::timeAgo($lastMessage->added_on, $now);
2143
                $lastMessage = Functions::timeAgo($lastMessage->added_on, $now);
2209
            } else {
2144
            } else {
2210
                $lastMessage = '';
2145
                $lastMessage = '';
2211
            }
2146
            }
2212
            
2147
 
2213
            if($currentUser->id == $chatUser->user_id1) {
2148
            if ($currentUser->id == $chatUser->user_id1) {
2214
                $is_open = $chatUser->user_open1 == ChatUser::OPEN_YES;
2149
                $is_open = $chatUser->user_open1 == ChatUser::OPEN_YES;
2215
            } else {
2150
            } else {
2216
                $is_open = $chatUser->user_open2 == ChatUser::OPEN_YES;
2151
                $is_open = $chatUser->user_open2 == ChatUser::OPEN_YES;
2217
            }
2152
            }
2218
            
2153
 
2219
            
2154
 
2220
            $not_received_messages = $count_not_received_messages > 0;
2155
            $not_received_messages = $count_not_received_messages > 0;
2221
            $not_seen_messages = $count_not_seen_messages > 0;
2156
            $not_seen_messages = $count_not_seen_messages > 0;
2222
            
2157
 
2223
            $data = [ 
2158
            $data = [
2224
                'url_clear'                 => $this->url()->fromRoute('chat/clear', ['id' => $user->uuid]),
2159
                'url_clear'                 => $this->url()->fromRoute('chat/clear', ['id' => $user->uuid]),
2225
                'url_close'                 => $this->url()->fromRoute('chat/close', ['id' => $user->uuid]),
2160
                'url_close'                 => $this->url()->fromRoute('chat/close', ['id' => $user->uuid]),
2226
                'url_open'                  => $this->url()->fromRoute('chat/open', ['id' => $user->uuid]),
2161
                'url_open'                  => $this->url()->fromRoute('chat/open', ['id' => $user->uuid]),
2227
                'url_send'                  => $this->url()->fromRoute('chat/send', ['id' => $user->uuid]),
2162
                'url_send'                  => $this->url()->fromRoute('chat/send', ['id' => $user->uuid]),
2228
                'url_upload'                => $this->url()->fromRoute('chat/upload', ['id' => $user->uuid]),
2163
                'url_upload'                => $this->url()->fromRoute('chat/upload', ['id' => $user->uuid]),
Línea 2231... Línea 2166...
2231
                'url_get_all_messages'      => $this->url()->fromRoute('chat/get-all-messages', ['id' => $user->uuid]),
2166
                'url_get_all_messages'      => $this->url()->fromRoute('chat/get-all-messages', ['id' => $user->uuid]),
2232
                'url_zoom'                  => $this->url()->fromRoute('chat/zoom', ['id' => $user->uuid, 'type' => 'chat']),
2167
                'url_zoom'                  => $this->url()->fromRoute('chat/zoom', ['id' => $user->uuid, 'type' => 'chat']),
2233
                'id'                        => $user->uuid,
2168
                'id'                        => $user->uuid,
2234
                'name'                      => trim($user->first_name . ' ' . $user->last_name),
2169
                'name'                      => trim($user->first_name . ' ' . $user->last_name),
2235
                'image'                     => $this->url()->fromRoute('storage', ['code' => $user->uuid, 'type' => 'user', 'filename' => $user->image]),
2170
                'image'                     => $this->url()->fromRoute('storage', ['code' => $user->uuid, 'type' => 'user', 'filename' => $user->image]),
2236
                'profile'                   => $this->url()->fromRoute('profile/view', ['id' =>$user->uuid]),
2171
                'profile'                   => $this->url()->fromRoute('profile/view', ['id' => $user->uuid]),
2237
                'type'                      => 'user',
2172
                'type'                      => 'user',
2238
                'online'                    => $user->online ? 1 : 0,
2173
                'online'                    => $user->online ? 1 : 0,
2239
                'is_open'                   => $is_open ? 1 : 0,
2174
                'is_open'                   => $is_open ? 1 : 0,
2240
                'not_seen_messages'         => $not_seen_messages,
2175
                'not_seen_messages'         => $not_seen_messages,
2241
                'not_received_messages'     => $not_received_messages,
2176
                'not_received_messages'     => $not_received_messages,
2242
                'count_not_seen_messages'       => $count_not_seen_messages,
2177
                'count_not_seen_messages'       => $count_not_seen_messages,
2243
                'count_not_received_messages'   => $count_not_received_messages,
2178
                'count_not_received_messages'   => $count_not_received_messages,
2244
                'last_message'                  => $lastMessage 
2179
                'last_message'                  => $lastMessage
2245
           ];     
2180
            ];
2246
            
2181
 
2247
            
2182
 
2248
            
2183
 
2249
            $userMapper->updateLastActivity($currentUser->id);
2184
            $userMapper->updateLastActivity($currentUser->id);
2250
            
2185
 
2251
            return new JsonModel([
2186
            return new JsonModel([
2252
                'success' => true, 
2187
                'success' => true,
2253
                'data' => $data,
2188
                'data' => $data,
2254
            ]);
2189
            ]);
2255
        
-
 
2256
        } else {
2190
        } else {
2257
            return new JsonModel([
2191
            return new JsonModel([
2258
                'success' => false,
2192
                'success' => false,
2259
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
2193
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
2260
            ]);
2194
            ]);
2261
        }
2195
        }
2262
    }
2196
    }
2263
    
2197
 
2264
    
2198
 
2265
    /**
2199
    /**
2266
     * Marca como abierto el caht
2200
     * Marca como abierto el caht
2267
     * Es una petición POST el url que contiene el ID encriptado del chat (/chat/open/:id) y la cuál se recibe en la función heartBeat.
2201
     * Es una petición POST el url que contiene el ID encriptado del chat (/chat/open/:id) y la cuál se recibe en la función heartBeat.
2268
     * Parámetros del route
2202
     * Parámetros del route
2269
     * :id = id del usuario encriptado
2203
     * :id = id del usuario encriptado
Línea 2280... Línea 2214...
2280
     * @return \Laminas\View\Model\JsonModel
2214
     * @return \Laminas\View\Model\JsonModel
2281
     */
2215
     */
2282
    public function openAction()
2216
    public function openAction()
2283
    {
2217
    {
2284
        $request    = $this->getRequest();
2218
        $request    = $this->getRequest();
2285
        if($request->isPost()) {
2219
        if ($request->isPost()) {
2286
            $currentUserPlugin = $this->plugin('currentUserPlugin');
2220
            $currentUserPlugin = $this->plugin('currentUserPlugin');
2287
            $currentUser = $currentUserPlugin->getUser();
2221
            $currentUser = $currentUserPlugin->getUser();
2288
            
2222
 
2289
            $id = filter_var($this->params()->fromRoute('id'), FILTER_SANITIZE_STRING);
2223
            $id = filter_var($this->params()->fromRoute('id'), FILTER_SANITIZE_STRING);
2290
            
2224
 
2291
            if (!$id) {
2225
            if (!$id) {
2292
                return new JsonModel([
2226
                return new JsonModel([
2293
                    'success' => false,
2227
                    'success' => false,
2294
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
2228
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
2295
                ]);
2229
                ]);
2296
            }
2230
            }
2297
            
2231
 
2298
            
2232
 
2299
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
2233
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
2300
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
2234
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
2301
            if ($chatGroup) {
2235
            if ($chatGroup) {
2302
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
2236
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
2303
                $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
2237
                $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
2304
                
2238
 
2305
                if(!$chatGroupUser) {
2239
                if (!$chatGroupUser) {
2306
                    return new JsonModel([
2240
                    return new JsonModel([
2307
                        'success' => false,
2241
                        'success' => false,
2308
                        'data' =>  'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
2242
                        'data' =>  'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
2309
                    ]);
2243
                    ]);
2310
                }
2244
                }
2311
                
2245
 
2312
                $chatGroupUserMapper->markIsOpen($chatGroup->id, $currentUser->id);
2246
                $chatGroupUserMapper->markIsOpen($chatGroup->id, $currentUser->id);
2313
            } else {
2247
            } else {
2314
                
2248
 
2315
                $userMapper = UserMapper::getInstance($this->adapter);
2249
                $userMapper = UserMapper::getInstance($this->adapter);
2316
                $user = $userMapper->fetchOneByUuid($id);
2250
                $user = $userMapper->fetchOneByUuid($id);
2317
                if(!$user) {
2251
                if (!$user) {
2318
                    return new JsonModel([
2252
                    return new JsonModel([
2319
                        'success' => false,
2253
                        'success' => false,
2320
                        'data' => 'ERROR_USER_NOT_FOUND'
2254
                        'data' => 'ERROR_USER_NOT_FOUND'
2321
                    ]);
2255
                    ]);
2322
                }
2256
                }
2323
                
2257
 
2324
                
2258
 
2325
                $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
2259
                $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
2326
                $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
2260
                $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
2327
                if($chatUser) {
2261
                if ($chatUser) {
2328
                    if($currentUser->id == $chatUser->user_id1) {
2262
                    if ($currentUser->id == $chatUser->user_id1) {
2329
                        $chatUserMapper->markIsOpen1($chatUser->id);
2263
                        $chatUserMapper->markIsOpen1($chatUser->id);
2330
                    } else {
2264
                    } else {
2331
                        $chatUserMapper->markIsOpen2($chatUser->id);
2265
                        $chatUserMapper->markIsOpen2($chatUser->id);
2332
                    }
2266
                    }
2333
                    
-
 
2334
                }
2267
                }
2335
            }
2268
            }
2336
            
2269
 
2337
            
2270
 
2338
            $userMapper->updateLastActivity($currentUser->id);
2271
            $userMapper->updateLastActivity($currentUser->id);
2339
            
2272
 
2340
            return new JsonModel([
2273
            return new JsonModel([
2341
                'success' => true
2274
                'success' => true
2342
            ]);
2275
            ]);
2343
        } else {
2276
        } else {
2344
            return new JsonModel([
2277
            return new JsonModel([
2345
                'success' => false,
2278
                'success' => false,
2346
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
2279
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
2347
            ]);
2280
            ]);
2348
        }
2281
        }
2349
    }
2282
    }
2350
    
2283
 
2351
    public function uploadAction()
2284
    public function uploadAction()
2352
    {
2285
    {
2353
        $request    = $this->getRequest();
2286
        $request    = $this->getRequest();
2354
        if($request->isPost()) {
2287
        if ($request->isPost()) {
2355
            $currentUserPlugin = $this->plugin('currentUserPlugin');
2288
            $currentUserPlugin = $this->plugin('currentUserPlugin');
2356
            $currentUser = $currentUserPlugin->getUser();
2289
            $currentUser = $currentUserPlugin->getUser();
2357
            
2290
 
2358
            $id = filter_var($this->params()->fromRoute('id'), FILTER_SANITIZE_STRING);
2291
            $id = filter_var($this->params()->fromRoute('id'), FILTER_SANITIZE_STRING);
2359
            if (!$id) {
2292
            if (!$id) {
2360
                return new JsonModel([
2293
                return new JsonModel([
2361
                    'success' => false,
2294
                    'success' => false,
2362
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
2295
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
2363
                ]);
2296
                ]);
2364
            }
2297
            }
2365
            
2298
 
2366
            $files = $this->getRequest()->getFiles()->toArray();
2299
            $files = $this->getRequest()->getFiles()->toArray();
2367
            if(!isset($files['file']) || !empty($files['file']['error'])) {
2300
            if (!isset($files['file']) || !empty($files['file']['error'])) {
2368
                return new JsonModel([
2301
                return new JsonModel([
2369
                    'success' => false,
2302
                    'success' => false,
2370
                    'data' => 'ERROR_FILE_NOT_UPLOAD'
2303
                    'data' => 'ERROR_FILE_NOT_UPLOAD'
2371
                ]);
2304
                ]);
2372
            }
2305
            }
2373
            
2306
 
2374
            $tmp_filename   = $files['file']['tmp_name'];
2307
            $tmp_filename   = $files['file']['tmp_name'];
2375
            if(!$this->validMimeType($tmp_filename)) {
2308
            if (!$this->validMimeType($tmp_filename)) {
2376
                return new JsonModel([
2309
                return new JsonModel([
2377
                    'success' => false,
2310
                    'success' => false,
2378
                    'data' => 'ERROR_FILE_UPLODED_IS_NOT_VALID'
2311
                    'data' => 'ERROR_FILE_UPLODED_IS_NOT_VALID'
2379
                ]);
2312
                ]);
2380
            }
2313
            }
Línea 2381... Línea 2314...
2381
 
2314
 
2382
            
2315
 
2383
            $extensions     = explode('.', $files['file']['name']);
2316
            $extensions     = explode('.', $files['file']['name']);
2384
            $extension      = strtolower(trim($extensions[count($extensions) - 1]));
2317
            $extension      = strtolower(trim($extensions[count($extensions) - 1]));
2385
            $filename       = uniqid() . '.' . $extension;
2318
            $filename       = uniqid() . '.' . $extension;
Línea 2386... Línea 2319...
2386
           
2319
 
2387
 
2320
 
2388
            $mime_type = mime_content_type($tmp_filename);
2321
            $mime_type = mime_content_type($tmp_filename);
2389
            if($mime_type == 'image/jpg' || $mime_type == 'image/jpeg' || $mime_type == 'image/png') {
2322
            if ($mime_type == 'image/jpg' || $mime_type == 'image/jpeg' || $mime_type == 'image/png') {
2390
                $file_type = 'image';
2323
                $file_type = 'image';
2391
            } else if($mime_type == 'video/webm' || $mime_type == 'video/mpeg' || $mime_type == 'video/mpg' || $mime_type == 'video/mp4') {
2324
            } else if ($mime_type == 'video/webm' || $mime_type == 'video/mpeg' || $mime_type == 'video/mpg' || $mime_type == 'video/mp4') {
2392
                $file_type = 'video';
2325
                $file_type = 'video';
2393
            } else if($mime_type == 'application/pdf') {
2326
            } else if ($mime_type == 'application/pdf') {
2394
                $file_type = 'document';
2327
                $file_type = 'document';
2395
            }
2328
            }
2396
            
2329
 
2397
                
2330
 
2398
            $userMapper = UserMapper::getInstance($this->adapter);
2331
            $userMapper = UserMapper::getInstance($this->adapter);
2399
            $sender_result = $userMapper->fetchOne($currentUser->id);
2332
            $sender_result = $userMapper->fetchOne($currentUser->id);
2400
            $sender_from = trim($sender_result->first_name . ' ' . $sender_result->last_name);
2333
            $sender_from = trim($sender_result->first_name . ' ' . $sender_result->last_name);
2401
            $sender_pic = $this->url()->fromRoute('storage', [
2334
            $sender_pic = $this->url()->fromRoute('storage', [
2402
                'code' => $sender_result->uuid,
2335
                'code' => $sender_result->uuid,
2403
                'type' => 'user',
2336
                'type' => 'user',
2404
                'filename' => $sender_result->image
2337
                'filename' => $sender_result->image
2405
            ]);
2338
            ]);
2406
            
2339
 
2407
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
2340
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
2408
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
2341
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
2409
            if($chatGroup) {
2342
            if ($chatGroup) {
2410
                
2343
 
2411
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
2344
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
2412
                $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
2345
                $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
2413
                
2346
 
2414
                if(!$chatGroupUser) {
2347
                if (!$chatGroupUser) {
2415
                    return new JsonModel([
2348
                    return new JsonModel([
2416
                        'success' => false,
2349
                        'success' => false,
2417
                        'data' => 'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
2350
                        'data' => 'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
Línea 2418... Línea 2351...
2418
                    ]);
2351
                    ]);
2419
                }
2352
                }
2420
 
2353
 
2421
        
2354
 
2422
                $fullpath_chat = $this->config['leaderslinked.fullpath.chat'];
2355
                $fullpath_chat = $this->config['leaderslinked.fullpath.chat'];
2423
                $dirpath = $fullpath_chat . $chatGroup->uuid;
2356
                $dirpath = $fullpath_chat . $chatGroup->uuid;
2424
                if (! file_exists($dirpath)) {
2357
                if (!file_exists($dirpath)) {
2425
                    mkdir($dirpath, 0777, true);
2358
                    mkdir($dirpath, 0777, true);
2426
                    chmod($dirpath, 0777);
2359
                    chmod($dirpath, 0777);
2427
                }
2360
                }
2428
                    
2361
 
2429
                $full_filename = $dirpath . DIRECTORY_SEPARATOR . $filename;
2362
                $full_filename = $dirpath . DIRECTORY_SEPARATOR . $filename;
2430
                if(!move_uploaded_file($tmp_filename, $full_filename)) {
2363
                if (!move_uploaded_file($tmp_filename, $full_filename)) {
2431
                    return new JsonModel([
2364
                    return new JsonModel([
2432
                        'success' => false,
2365
                        'success' => false,
2433
                        'data' => 'ERROR_FILE_UPLOADED_NOT_MOVE'
2366
                        'data' => 'ERROR_FILE_UPLOADED_NOT_MOVE'
2434
                    ]);
2367
                    ]);
2435
                }
2368
                }
2436
                
2369
 
2437
                $chatGroupMessage = new ChatGroupMessage();
2370
                $chatGroupMessage = new ChatGroupMessage();
2438
                $chatGroupMessage->sender_id    = $currentUser->id;
2371
                $chatGroupMessage->sender_id    = $currentUser->id;
2439
                $chatGroupMessage->group_id     = $chatGroup->id;
2372
                $chatGroupMessage->group_id     = $chatGroup->id;
2440
                $chatGroupMessage->content      = $filename;
2373
                $chatGroupMessage->content      = $filename;
2441
                $chatGroupMessage->type         = $file_type;
2374
                $chatGroupMessage->type         = $file_type;
2442
                
2375
 
2443
                $chatGroupMessageMapper = ChatGroupMessageMapper::getInstance($this->adapter);
2376
                $chatGroupMessageMapper = ChatGroupMessageMapper::getInstance($this->adapter);
2444
                $result = $chatGroupMessageMapper->insert($chatGroupMessage);
2377
                $result = $chatGroupMessageMapper->insert($chatGroupMessage);
2445
                if(!$result) {
2378
                if (!$result) {
2446
                    return new JsonModel([
2379
                    return new JsonModel([
2447
                        'success' => false,
2380
                        'success' => false,
2448
                        'data' => $chatGroupMessageMapper->getError()
2381
                        'data' => $chatGroupMessageMapper->getError()
2449
                    ]);
2382
                    ]);
2450
                }
2383
                }
2451
                
2384
 
2452
                $chatGroupMessage = $chatGroupMessageMapper->fetchOne($chatGroupMessage->id);
2385
                $chatGroupMessage = $chatGroupMessageMapper->fetchOne($chatGroupMessage->id);
2453
                
2386
 
2454
                        
2387
 
2455
                $chatGroupUserMessage = new ChatGroupUserMessage();
2388
                $chatGroupUserMessage = new ChatGroupUserMessage();
2456
                $chatGroupUserMessage->group_id = $chatGroupMessage->group_id;
2389
                $chatGroupUserMessage->group_id = $chatGroupMessage->group_id;
2457
                $chatGroupUserMessage->message_id = $chatGroupMessage->id;
2390
                $chatGroupUserMessage->message_id = $chatGroupMessage->id;
2458
                $chatGroupUserMessage->receiver_id = $currentUser->id;
2391
                $chatGroupUserMessage->receiver_id = $currentUser->id;
2459
                $chatGroupUserMessage->recd = ChatGroupUserMessage::RECD_YES;
2392
                $chatGroupUserMessage->recd = ChatGroupUserMessage::RECD_YES;
2460
                $chatGroupUserMessage->seen = ChatGroupUserMessage::SEEN_YES;
2393
                $chatGroupUserMessage->seen = ChatGroupUserMessage::SEEN_YES;
2461
                
2394
 
2462
                            
2395
 
2463
                $chatGroupUserMessageMapper = ChatGroupUserMessageMapper::getInstance($this->adapter);
2396
                $chatGroupUserMessageMapper = ChatGroupUserMessageMapper::getInstance($this->adapter);
2464
                $result = $chatGroupUserMessageMapper->insert($chatGroupUserMessage);
2397
                $result = $chatGroupUserMessageMapper->insert($chatGroupUserMessage);
2465
                if(!$result) {
2398
                if (!$result) {
2466
                    return new JsonModel([
2399
                    return new JsonModel([
2467
                        'success' => false,
2400
                        'success' => false,
2468
                        'data' => $chatGroupUserMessageMapper->getError()
2401
                        'data' => $chatGroupUserMessageMapper->getError()
2469
                    ]);
2402
                    ]);
2470
                }
2403
                }
2471
                
2404
 
2472
          
2405
 
2473
                
2406
 
2474
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
2407
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
2475
                            
-
 
2476
                $results = $chatGroupUserMapper->fetchAllByGroupId($chatGroup->id);
2408
 
2477
                foreach ($results as $r) 
2409
                $results = $chatGroupUserMapper->fetchAllByGroupId($chatGroup->id);
2478
                {
2410
                foreach ($results as $r) {
2479
                    if ($r->user_id != $currentUser->id) {
2411
                    if ($r->user_id != $currentUser->id) {
2480
                        $chatGroupUserMessage = new ChatGroupUserMessage();
2412
                        $chatGroupUserMessage = new ChatGroupUserMessage();
2481
                        $chatGroupUserMessage->group_id = $chatGroupMessage->group_id;
2413
                        $chatGroupUserMessage->group_id = $chatGroupMessage->group_id;
2482
                        $chatGroupUserMessage->message_id = $chatGroupMessage->id;
2414
                        $chatGroupUserMessage->message_id = $chatGroupMessage->id;
2483
                        $chatGroupUserMessage->receiver_id= $r->user_id;
2415
                        $chatGroupUserMessage->receiver_id = $r->user_id;
2484
                        $chatGroupUserMessage->recd = ChatGroupUserMessage::RECD_NO;
2416
                        $chatGroupUserMessage->recd = ChatGroupUserMessage::RECD_NO;
2485
                        $chatGroupUserMessage->seen = ChatGroupUserMessage::SEEN_NO;
2417
                        $chatGroupUserMessage->seen = ChatGroupUserMessage::SEEN_NO;
2486
                                    
2418
 
2487
                        $result = $chatGroupUserMessageMapper->insert($chatGroupUserMessage);
2419
                        $result = $chatGroupUserMessageMapper->insert($chatGroupUserMessage);
2488
                        if(!$result) {
2420
                        if (!$result) {
2489
                            return new JsonModel([
2421
                            return new JsonModel([
2490
                                'success' => false,
2422
                                'success' => false,
2491
                                'data' => $chatGroupUserMessageMapper->getError()
-
 
2492
                            ]);
-
 
2493
                        }
2423
                                'data' => $chatGroupUserMessageMapper->getError()
2494
                        
2424
                            ]);
2495
             
2425
                        }
2496
                    }
2426
                    }
2497
                }
2427
                }
2498
                
2428
 
2499
  
2429
 
2500
                $userMapper->updateLastActivity($currentUser->id);
2430
                $userMapper->updateLastActivity($currentUser->id);
2501
                
2431
 
2502
                $utilMapper = UtilMapper::getInstance($this->adapter);
2432
                $utilMapper = UtilMapper::getInstance($this->adapter);
2503
                $now = $utilMapper->getDatebaseNow();
2433
                $now = $utilMapper->getDatebaseNow();
2504
                            
2434
 
2505
                $msgtime = Functions::timeAgo($now, $now);
2435
                $msgtime = Functions::timeAgo($now, $now);
2506
                return new JsonModel([
2436
                return new JsonModel([
Línea 2514... Línea 2444...
2514
                        'm'             => $this->url()->fromRoute('storage', ['code' => $chatGroup->uuid, 'type' => 'chat', 'filename' => $filename]),
2444
                        'm'             => $this->url()->fromRoute('storage', ['code' => $chatGroup->uuid, 'type' => 'chat', 'filename' => $filename]),
2515
                        'time'          => $msgtime,
2445
                        'time'          => $msgtime,
2516
                        'id'            => $chatGroupMessage->uuid
2446
                        'id'            => $chatGroupMessage->uuid
2517
                    ]
2447
                    ]
2518
                ]);
2448
                ]);
2519
 
-
 
2520
                
-
 
2521
            } else {
2449
            } else {
2522
                
2450
 
2523
                $user = $userMapper->fetchOneByUuid($id);
2451
                $user = $userMapper->fetchOneByUuid($id);
2524
                if(!$user) {
2452
                if (!$user) {
2525
                    return new JsonModel([
2453
                    return new JsonModel([
2526
                        'success' => false,
2454
                        'success' => false,
2527
                        'data' => 'ERROR_USER_NOT_FOUND'
2455
                        'data' => 'ERROR_USER_NOT_FOUND'
2528
                    ]);
2456
                    ]);
2529
                }
2457
                }
2530
                
2458
 
2531
                $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
2459
                $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
2532
                $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
2460
                $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
2533
                if(!$chatUser) {
2461
                if (!$chatUser) {
2534
                    return new JsonModel([
2462
                    return new JsonModel([
2535
                        'success' => false,
2463
                        'success' => false,
2536
                        'data' => 'ERROR_CHAT_NOT_FOUND'
2464
                        'data' => 'ERROR_CHAT_NOT_FOUND'
2537
                    ]);
2465
                    ]);
2538
                }
2466
                }
2539
                        
2467
 
2540
                $fullpath_chat = $this->config['leaderslinked.fullpath.chat'];
2468
                $fullpath_chat = $this->config['leaderslinked.fullpath.chat'];
2541
                $dirpath = $fullpath_chat . $chatUser->uuid;
2469
                $dirpath = $fullpath_chat . $chatUser->uuid;
2542
                        
2470
 
2543
                if (! file_exists($dirpath)) {
2471
                if (!file_exists($dirpath)) {
2544
                    mkdir($dirpath, 0777, true);
2472
                    mkdir($dirpath, 0777, true);
2545
                    chmod($dirpath, 0777);
2473
                    chmod($dirpath, 0777);
2546
                }
2474
                }
2547
                        
2475
 
2548
                $full_filename = $dirpath . DIRECTORY_SEPARATOR . $filename;
2476
                $full_filename = $dirpath . DIRECTORY_SEPARATOR . $filename;
2549
                if(!move_uploaded_file($tmp_filename, $full_filename)) {
2477
                if (!move_uploaded_file($tmp_filename, $full_filename)) {
2550
                    return new JsonModel([
2478
                    return new JsonModel([
2551
                        'success' => false,
2479
                        'success' => false,
2552
                        'data' => 'ERROR_FILE_UPLOADED_NOT_MOVE'
2480
                        'data' => 'ERROR_FILE_UPLOADED_NOT_MOVE'
2553
                    ]);
2481
                    ]);
2554
                }
2482
                }
Línea 2559... Línea 2487...
2559
                $chatMessage->to_id = $user->id;
2487
                $chatMessage->to_id = $user->id;
2560
                $chatMessage->content = $filename;
2488
                $chatMessage->content = $filename;
2561
                $chatMessage->type = $file_type;
2489
                $chatMessage->type = $file_type;
2562
                $chatMessage->recd = ChatMessage::RECD_NO;
2490
                $chatMessage->recd = ChatMessage::RECD_NO;
2563
                $chatMessage->seen = ChatMessage::SEEN_NO;
2491
                $chatMessage->seen = ChatMessage::SEEN_NO;
2564
                            
2492
 
2565
                            
2493
 
2566
                $chatMessageMapper = ChatMessageMapper::getInstance($this->adapter);
2494
                $chatMessageMapper = ChatMessageMapper::getInstance($this->adapter);
2567
                $result = $chatMessageMapper->insert($chatMessage);
2495
                $result = $chatMessageMapper->insert($chatMessage);
2568
                if(!$result) {
2496
                if (!$result) {
2569
                    return new JsonModel([
2497
                    return new JsonModel([
2570
                        'success' => false,
2498
                        'success' => false,
2571
                        'data' =>  $chatMessageMapper->getError()
2499
                        'data' =>  $chatMessageMapper->getError()
2572
                    ]);
2500
                    ]);
2573
                }
2501
                }
2574
                
2502
 
2575
                $chatMessage = $chatMessageMapper->fetchOne($chatMessage->id);
2503
                $chatMessage = $chatMessageMapper->fetchOne($chatMessage->id);
2576
                
2504
 
2577
                $userMapper->updateLastActivity($currentUser->id);
2505
                $userMapper->updateLastActivity($currentUser->id);
2578
                
2506
 
2579
                $utilMapper = UtilMapper::getInstance($this->adapter);
2507
                $utilMapper = UtilMapper::getInstance($this->adapter);
2580
                $now = $utilMapper->getDatebaseNow();
2508
                $now = $utilMapper->getDatebaseNow();
2581
                
2509
 
2582
                $msgtime = Functions::timeAgo($chatMessage->added_on, $now);
2510
                $msgtime = Functions::timeAgo($chatMessage->added_on, $now);
2583
                return new JsonModel([
2511
                return new JsonModel([
2584
                    'success' => true,
2512
                    'success' => true,
2585
                    'data' => [
2513
                    'data' => [
2586
                        'user_name' => $sender_from,
2514
                        'user_name' => $sender_from,
Línea 2591... Línea 2519...
2591
                        'm' => $this->url()->fromRoute('storage', ['code' => $currentUser->uuid, 'type' => 'chat', 'filename' => $filename]),
2519
                        'm' => $this->url()->fromRoute('storage', ['code' => $currentUser->uuid, 'type' => 'chat', 'filename' => $filename]),
2592
                        'time' => $msgtime,
2520
                        'time' => $msgtime,
2593
                        'id' => $chatMessage->uuid
2521
                        'id' => $chatMessage->uuid
2594
                    ]
2522
                    ]
2595
                ]);
2523
                ]);
2596
 
-
 
2597
            }
2524
            }
2598
        } else {
2525
        } else {
2599
            return new JsonModel([
2526
            return new JsonModel([
2600
                'success' => false,
2527
                'success' => false,
2601
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
2528
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
Línea 2604... Línea 2531...
2604
    }
2531
    }
Línea 2605... Línea 2532...
2605
 
2532
 
2606
    public function markSeenAction()
2533
    public function markSeenAction()
2607
    {
2534
    {
2608
        $request = $this->getRequest();
2535
        $request = $this->getRequest();
2609
        if($request->isPost()) { 
2536
        if ($request->isPost()) {
2610
            $currentUserPlugin = $this->plugin('currentUserPlugin');
2537
            $currentUserPlugin = $this->plugin('currentUserPlugin');
2611
            $currentUser = $currentUserPlugin->getUser();
2538
            $currentUser = $currentUserPlugin->getUser();
2612
            
2539
 
2613
            $id = $this->params()->fromRoute('id');
2540
            $id = $this->params()->fromRoute('id');
2614
            if (!$id) {
2541
            if (!$id) {
2615
                return new JsonModel([
2542
                return new JsonModel([
2616
                    'success' => false,
2543
                    'success' => false,
2617
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
2544
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
2618
                ]);
2545
                ]);
2619
            }
2546
            }
2620
            
2547
 
2621
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
2548
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
2622
            $chatGroup =  $chatGroupMapper->fetchOneByUuid($id);
2549
            $chatGroup =  $chatGroupMapper->fetchOneByUuid($id);
2623
            
2550
 
2624
            if($chatGroup) {
2551
            if ($chatGroup) {
2625
                
2552
 
2626
                $charGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
2553
                $charGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
2627
                $chatGroupUser = $charGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
2554
                $chatGroupUser = $charGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
2628
                
2555
 
2629
                if(!$chatGroupUser) {
2556
                if (!$chatGroupUser) {
2630
                    return new JsonModel([
2557
                    return new JsonModel([
2631
                        'success' => false,
2558
                        'success' => false,
2632
                        'data' =>  'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
2559
                        'data' =>  'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
2633
                    ]);
2560
                    ]);
2634
                }
2561
                }
2635
                
2562
 
2636
                $charGroupUserMessage = ChatGroupUserMessageMapper::getInstance($this->adapter);
2563
                $charGroupUserMessage = ChatGroupUserMessageMapper::getInstance($this->adapter);
2637
                $result = $charGroupUserMessage->markAsSeenByGroupIdAndUserId($chatGroup->id, $currentUser->id);
2564
                $result = $charGroupUserMessage->markAsSeenByGroupIdAndUserId($chatGroup->id, $currentUser->id);
2638
                if($result) {
2565
                if ($result) {
2639
                    return new JsonModel([
2566
                    return new JsonModel([
2640
                        'success' => true,
2567
                        'success' => true,
2641
                    ]);
2568
                    ]);
2642
                } else {
2569
                } else {
2643
                    return new JsonModel([
2570
                    return new JsonModel([
2644
                        'success' => false,
2571
                        'success' => false,
2645
                        'data' =>  $charGroupUserMessage->getError()
2572
                        'data' =>  $charGroupUserMessage->getError()
2646
                    ]);
2573
                    ]);
2647
                }
-
 
2648
                
-
 
2649
                
2574
                }
2650
            } else {
2575
            } else {
2651
                $userMapper = UserMapper::getInstance($this->adapter);
2576
                $userMapper = UserMapper::getInstance($this->adapter);
2652
                $user = $userMapper->fetchOneByUuid($id);
2577
                $user = $userMapper->fetchOneByUuid($id);
2653
                
2578
 
2654
                if(!$user) {
2579
                if (!$user) {
2655
                    return new JsonModel([
2580
                    return new JsonModel([
2656
                        'success' => false,
2581
                        'success' => false,
2657
                        'data' => 'ERROR_USER_NOT_FOUND'
2582
                        'data' => 'ERROR_USER_NOT_FOUND'
2658
                    ]);
2583
                    ]);
2659
                }
2584
                }
2660
                
2585
 
2661
                $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
2586
                $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
2662
                $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
2587
                $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
2663
                if(!$chatUser) {
2588
                if (!$chatUser) {
2664
                    return new JsonModel([
2589
                    return new JsonModel([
2665
                        'success' => false,
2590
                        'success' => false,
2666
                        'data' => 'ERROR_CHAT_NOT_FOUND'
2591
                        'data' => 'ERROR_CHAT_NOT_FOUND'
2667
                    ]);
2592
                    ]);
2668
                }
2593
                }
2669
                
2594
 
2670
                $chatMessageMapper = ChatMessageMapper::getInstance($this->adapter);
2595
                $chatMessageMapper = ChatMessageMapper::getInstance($this->adapter);
2671
                $result = $chatMessageMapper->markAsSeenByChatIdAndToId($chatUser->id, $currentUser->id);
2596
                $result = $chatMessageMapper->markAsSeenByChatIdAndToId($chatUser->id, $currentUser->id);
2672
                if($result) {
2597
                if ($result) {
2673
                    return new JsonModel([
2598
                    return new JsonModel([
2674
                        'success' => true,
2599
                        'success' => true,
2675
                    ]);
2600
                    ]);
2676
                } else {
2601
                } else {
2677
                    return new JsonModel([
2602
                    return new JsonModel([
2678
                        'success' => false,
2603
                        'success' => false,
2679
                        'data' =>  $charGroupUserMessage->getError()
2604
                        'data' =>  $charGroupUserMessage->getError()
2680
                    ]);
2605
                    ]);
2681
                }
-
 
2682
                
2606
                }
2683
            }
-
 
2684
 
-
 
2685
            
2607
            }
2686
        } else {
2608
        } else {
2687
            $response = [
2609
            $response = [
2688
                'success' => false,
2610
                'success' => false,
2689
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
2611
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
2690
            ];
2612
            ];
Línea 2691... Línea 2613...
2691
        }
2613
        }
2692
 
2614
 
2693
        return new JsonModel($response);
2615
        return new JsonModel($response);
2694
    }
2616
    }
2695
    
2617
 
2696
    
2618
 
2697
    public function markReceivedAction()
2619
    public function markReceivedAction()
2698
    {
2620
    {
2699
        $request = $this->getRequest();
2621
        $request = $this->getRequest();
2700
        if($request->isPost()) {
2622
        if ($request->isPost()) {
2701
            $currentUserPlugin = $this->plugin('currentUserPlugin');
2623
            $currentUserPlugin = $this->plugin('currentUserPlugin');
2702
            $currentUser = $currentUserPlugin->getUser();
2624
            $currentUser = $currentUserPlugin->getUser();
2703
            
2625
 
2704
            $id = $this->params()->fromRoute('id');
2626
            $id = $this->params()->fromRoute('id');
2705
            if (!$id) {
2627
            if (!$id) {
2706
                return new JsonModel([
2628
                return new JsonModel([
2707
                    'success' => false,
2629
                    'success' => false,
2708
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
2630
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
2709
                ]);
2631
                ]);
2710
            }
2632
            }
2711
            
2633
 
2712
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
2634
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
2713
            $chatGroup =  $chatGroupMapper->fetchOneByUuid($id);
2635
            $chatGroup =  $chatGroupMapper->fetchOneByUuid($id);
2714
            
2636
 
2715
            if($chatGroup) {
2637
            if ($chatGroup) {
2716
                
2638
 
2717
                $charGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
2639
                $charGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
2718
                $chatGroupUser = $charGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
2640
                $chatGroupUser = $charGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
2719
                
2641
 
2720
                if(!$chatGroupUser) {
2642
                if (!$chatGroupUser) {
2721
                    return new JsonModel([
2643
                    return new JsonModel([
2722
                        'success' => false,
2644
                        'success' => false,
2723
                        'data' =>  'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
2645
                        'data' =>  'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
2724
                    ]);
2646
                    ]);
2725
                }
2647
                }
2726
                
2648
 
2727
                $charGroupUserMessage = ChatGroupUserMessageMapper::getInstance($this->adapter);
2649
                $charGroupUserMessage = ChatGroupUserMessageMapper::getInstance($this->adapter);
2728
                $result = $charGroupUserMessage->markAsReceivedByGroupIdAndUserId($chatGroup->id, $currentUser->id);
2650
                $result = $charGroupUserMessage->markAsReceivedByGroupIdAndUserId($chatGroup->id, $currentUser->id);
2729
                if($result) {
2651
                if ($result) {
2730
                    return new JsonModel([
2652
                    return new JsonModel([
2731
                        'success' => true,
2653
                        'success' => true,
2732
                    ]);
2654
                    ]);
2733
                } else {
2655
                } else {
2734
                    return new JsonModel([
2656
                    return new JsonModel([
2735
                        'success' => false,
2657
                        'success' => false,
2736
                        'data' =>  $charGroupUserMessage->getError()
2658
                        'data' =>  $charGroupUserMessage->getError()
2737
                    ]);
-
 
2738
                }
-
 
2739
                
2659
                    ]);
2740
                
2660
                }
2741
            } else {
2661
            } else {
2742
                $userMapper = UserMapper::getInstance($this->adapter);
2662
                $userMapper = UserMapper::getInstance($this->adapter);
2743
                $user = $userMapper->fetchOneByUuid($id);
2663
                $user = $userMapper->fetchOneByUuid($id);
2744
                
2664
 
2745
                if(!$user) {
2665
                if (!$user) {
2746
                    return new JsonModel([
2666
                    return new JsonModel([
2747
                        'success' => false,
2667
                        'success' => false,
2748
                        'data' => 'ERROR_USER_NOT_FOUND'
2668
                        'data' => 'ERROR_USER_NOT_FOUND'
2749
                    ]);
2669
                    ]);
2750
                }
2670
                }
2751
                
2671
 
2752
                $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
2672
                $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
2753
                $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
2673
                $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
2754
                if(!$chatUser) {
2674
                if (!$chatUser) {
2755
                    return new JsonModel([
2675
                    return new JsonModel([
2756
                        'success' => false,
2676
                        'success' => false,
2757
                        'data' => 'ERROR_CHAT_NOT_FOUND'
2677
                        'data' => 'ERROR_CHAT_NOT_FOUND'
2758
                    ]);
2678
                    ]);
2759
                }
2679
                }
2760
                
2680
 
2761
                $chatMessageMapper = ChatMessageMapper::getInstance($this->adapter);
2681
                $chatMessageMapper = ChatMessageMapper::getInstance($this->adapter);
2762
                $result = $chatMessageMapper->markAsReceivedByChatIdAndToId($chatUser->id, $currentUser->id);
2682
                $result = $chatMessageMapper->markAsReceivedByChatIdAndToId($chatUser->id, $currentUser->id);
2763
                if($result) {
2683
                if ($result) {
2764
                    return new JsonModel([
2684
                    return new JsonModel([
2765
                        'success' => true,
2685
                        'success' => true,
2766
                    ]);
2686
                    ]);
2767
                } else {
2687
                } else {
2768
                    return new JsonModel([
2688
                    return new JsonModel([
2769
                        'success' => false,
2689
                        'success' => false,
2770
                        'data' =>  $charGroupUserMessage->getError()
2690
                        'data' =>  $charGroupUserMessage->getError()
2771
                    ]);
-
 
2772
                }
2691
                    ]);
2773
                
-
 
2774
            }
-
 
2775
            
2692
                }
2776
            
2693
            }
2777
        } else {
2694
        } else {
2778
            $response = [
2695
            $response = [
2779
                'success' => false,
2696
                'success' => false,
2780
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
2697
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
2781
            ];
2698
            ];
2782
        }
2699
        }
2783
        
2700
 
2784
        return new JsonModel($response);
2701
        return new JsonModel($response);
2785
    }
2702
    }
2786
    
2703
 
2787
    public function usersAction()
2704
    public function usersAction()
2788
    {
2705
    {
2789
        $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
2790
        $currentUser = $currentUserPlugin->getUser();
-
 
2791
        
-
 
2792
        $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
-
 
2793
        $currentNetwork = $currentNetworkPlugin->getNetwork();
-
 
2794
        
-
 
2795
        $request = $this->getRequest();
-
 
2796
        if($request->isGet()) {
-
 
2797
            
-
 
2798
            $items = [];
-
 
2799
            
-
 
2800
            $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
-
 
2801
            
-
 
2802
            
-
 
2803
            $search = trim(filter_var($this->params()->fromQuery('search', ''), FILTER_SANITIZE_STRING));
-
 
2804
            if(strlen($search) >= 3) {
-
 
2805
                $user_ids = [];
-
 
2806
                
-
 
2807
                $userMapper = UserMapper::getInstance($this->adapter);
-
 
2808
                
-
 
2809
                
-
 
2810
                if($currentNetwork->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER)  {
-
 
2811
                    
-
 
2812
                    $connectionMapper = ConnectionMapper::getInstance($this->adapter);
-
 
2813
                    $user_ids = $connectionMapper->fetchAllConnectionsByUserReturnIds($currentUser->id);   
-
 
2814
                    
-
 
2815
                    
-
 
2816
                    
-
 
2817
                    
-
 
2818
                } else {
-
 
2819
                    if($currentNetwork->default == Network::DEFAULT_YES) {
-
 
2820
                        $user_ids = $userMapper->fetchAllIdsByDefaultNetworkId($currentNetwork->id, $currentUser->id);
-
 
2821
                    } else {
-
 
2822
                        $user_ids = $userMapper->fetchAllIdsByNonDefaultNetworkId($currentNetwork->id, $currentUser->id);
-
 
2823
                    }
-
 
2824
                    
-
 
Línea -... Línea 2706...
-
 
2706
        // $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
2707
        // $currentUser = $currentUserPlugin->getUser();
2825
                }
2708
 
-
 
2709
        // $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
-
 
2710
        // $currentNetwork = $currentNetworkPlugin->getNetwork();
-
 
2711
 
2826
                
2712
        // $request = $this->getRequest();
-
 
2713
        // if ($request->isGet()) {
2827
 
2714
 
-
 
2715
        //     $items = [];
2828
                
2716
 
-
 
2717
        //     $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
2829
                $items = [];
2718
 
-
 
2719
 
-
 
2720
        //     $search = trim(filter_var($this->params()->fromQuery('search', ''), FILTER_SANITIZE_STRING));
-
 
2721
        //     if (strlen($search) >= 3) {
-
 
2722
        //         $user_ids = [];
-
 
2723
 
-
 
2724
        //         $userMapper = UserMapper::getInstance($this->adapter);
-
 
2725
 
-
 
2726
 
-
 
2727
        //         if ($currentNetwork->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER) {
2830
                $records = $userMapper->fetchAllByIdsAndSearch($user_ids, $search, $currentUser->id);
2728
 
-
 
2729
        //             $connectionMapper = ConnectionMapper::getInstance($this->adapter);
2831
                
2730
        //             $user_ids = $connectionMapper->fetchAllConnectionsByUserReturnIds($currentUser->id);
2832
                foreach($records as $record)
2731
        //         } else {
2833
                {
2732
        //             if ($currentNetwork->default == Network::DEFAULT_YES) {
-
 
2733
        //                 $user_ids = $userMapper->fetchAllIdsByDefaultNetworkId($currentNetwork->id, $currentUser->id);
-
 
2734
        //             } else {
-
 
2735
        //                 $user_ids = $userMapper->fetchAllIdsByNonDefaultNetworkId($currentNetwork->id, $currentUser->id);
-
 
2736
        //             }
2834
                    $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $record->id);
2737
        //         }
-
 
2738
 
-
 
2739
 
2835
                    if($chatUser) {
2740
 
-
 
2741
        //         $items = [];
-
 
2742
        //         $records = $userMapper->fetchAllByIdsAndSearch($user_ids, $search, $currentUser->id);
-
 
2743
 
-
 
2744
        //         foreach ($records as $record) {
2836
                        $link_send = $this->url()->fromRoute('chat/send', ['id' => $record->uuid]);
2745
        //             $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $record->id);
2837
                        
2746
        //             if ($chatUser) {
2838
                        
2747
        //                 $link_send = $this->url()->fromRoute('chat/send', ['id' => $record->uuid]);
2839
                    } else {
2748
        //             } else {
2840
                        $link_send = '';
2749
        //                 $link_send = '';
2841
                    }
2750
        //             }
2842
                    
2751
 
2843
                    $link_open_or_create = $this->url()->fromRoute('chat/open-or-create', ['id' => $record->uuid]);
2752
        //             $link_open_or_create = $this->url()->fromRoute('chat/open-or-create', ['id' => $record->uuid]);
2844
                    
2753
 
2845
                    
2754
 
2846
                    
2755
 
2847
                    
2756
 
2848
                    array_push($items, [
2757
        //             array_push($items, [
2849
                        'name'  => trim($record->first_name .  '  ' . $record->last_name) . ' (' . $record->email . ')',
2758
        //                 'name'  => trim($record->first_name .  '  ' . $record->last_name) . ' (' . $record->email . ')',
2850
                        'image' => $this->url()->fromRoute('storage', ['code' => $record->uuid, 'type' => 'user', 'filename' => $record->image]),
2759
        //                 'image' => $this->url()->fromRoute('storage', ['code' => $record->uuid, 'type' => 'user', 'filename' => $record->image]),
2851
                        'link_send' => $link_send,
2760
        //                 'link_send' => $link_send,
2852
                        'link_open_or_create' => $link_open_or_create,
-
 
2853
                    ]);    
-
 
2854
                }
-
 
2855
   
2761
        //                 'link_open_or_create' => $link_open_or_create,
2856
    
2762
        //             ]);
2857
                
2763
        //         }
2858
            }
2764
        //     }
2859
            
2765
 
2860
            $response = [
2766
        //     $response = [
2861
                'success' => true,
-
 
2862
                'data' => $items
-
 
2863
            ];
2767
        //         'success' => true,
2864
            
2768
        //         'data' => $items
2865
            
2769
        //     ];
2866
        } else {
2770
        // } else {
2867
            $response = [
2771
        //     $response = [
2868
                'success' => false,
2772
        //         'success' => false,
2869
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
2773
        //         'data' => 'ERROR_METHOD_NOT_ALLOWED'
2870
            ];
2774
        //     ];
2871
        }
2775
        // }
2872
        
2776
 
2873
        return new JsonModel($response);
2777
        // return new JsonModel($response);
2874
    }
2778
    }
2875
    
2779
 
2876
    
2780
 
2877
    public function zoomAction()
2781
    public function zoomAction()
2878
    {
2782
    {
2879
        $request = $this->getRequest();
2783
        $request = $this->getRequest();
2880
        if($request->isPost()) {
2784
        if ($request->isPost()) {
2881
            $currentUserPlugin = $this->plugin('currentUserPlugin');
2785
            $currentUserPlugin = $this->plugin('currentUserPlugin');
2882
            $currentUser = $currentUserPlugin->getUser();
2786
            $currentUser = $currentUserPlugin->getUser();
2883
            
2787
 
2884
            $id = $this->params()->fromRoute('id');
2788
            $id = $this->params()->fromRoute('id');
2885
            
2789
 
2886
            if (!$id) {
2790
            if (!$id) {
2887
                return new JsonModel([
2791
                return new JsonModel([
2888
                    'success' => false,
2792
                    'success' => false,
2889
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
2793
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
2890
                ]);
2794
                ]);
2891
            }
2795
            }
2892
            
2796
 
2893
            $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
2797
            $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
2894
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
2798
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
2895
            
2799
 
2896
            $chatUser = null;
2800
            $chatUser = null;
2897
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
2801
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
2898
            
2802
 
2899
            if($chatGroup) {
2803
            if ($chatGroup) {
2900
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
2804
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
2901
                $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
2805
                $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
2902
                
2806
 
2903
                if(!$chatGroupUser) {
2807
                if (!$chatGroupUser) {
2904
                    $data = [
2808
                    $data = [
2905
                        'success' => false,
2809
                        'success' => false,
2906
                        'data' =>  'ERROR_ZOOM_CHAT_UNAUTHORIZE'
2810
                        'data' =>  'ERROR_ZOOM_CHAT_UNAUTHORIZE'
2907
                    ];
2811
                    ];
2908
                    
2812
 
2909
                    
-
 
2910
                    return new JsonModel($data);
2813
 
2911
                }
2814
                    return new JsonModel($data);
2912
                
2815
                }
2913
            } else {
2816
            } else {
2914
            
2817
 
2915
                $userMapper = UserMapper::getInstance($this->adapter);
2818
                $userMapper = UserMapper::getInstance($this->adapter);
2916
                $user = $userMapper->fetchOneByUuid($id);
2819
                $user = $userMapper->fetchOneByUuid($id);
2917
                if(!$user) {
2820
                if (!$user) {
2918
                    return new JsonModel([
2821
                    return new JsonModel([
2919
                        'success' => false,
2822
                        'success' => false,
2920
                        'data' => 'ERROR_USER_NOT_FOUND'
2823
                        'data' => 'ERROR_USER_NOT_FOUND'
2921
                    ]);
2824
                    ]);
2922
                }
2825
                }
2923
                
2826
 
2924
                
2827
 
2925
                $connectionMapper = ConnectionMapper::getInstance($this->adapter);
2828
                $connectionMapper = ConnectionMapper::getInstance($this->adapter);
2926
                $connection = $connectionMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
2829
                $connection = $connectionMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
2927
                if(!$connection || $connection->status != Connection::STATUS_ACCEPTED) {
2830
                if (!$connection || $connection->status != Connection::STATUS_ACCEPTED) {
2928
                    
2831
 
2929
                    return new JsonModel([
2832
                    return new JsonModel([
2930
                        'success' => false,
-
 
2931
                        'data' => 'ERROR_THIS_USER_IS_NOT_A_CONNECTION'
2833
                        'success' => false,
2932
                    ]);
2834
                        'data' => 'ERROR_THIS_USER_IS_NOT_A_CONNECTION'
2933
                    
2835
                    ]);
2934
                }
2836
                }
2935
                $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
2837
                $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
2936
                $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
2838
                $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
2937
                if(!$chatUser) {
2839
                if (!$chatUser) {
2938
                    $chatUser = new ChatUser();
2840
                    $chatUser = new ChatUser();
2939
                    $chatUser->user_id1 = $currentUser->id;
2841
                    $chatUser->user_id1 = $currentUser->id;
2940
                    $chatUser->user_id2 = $user->id;
2842
                    $chatUser->user_id2 = $user->id;
2941
                    
2843
 
2942
                    $response = $chatUserMapper->insert($chatUser);
2844
                    $response = $chatUserMapper->insert($chatUser);
2943
                    if(!$response) {
2845
                    if (!$response) {
2944
                        return new JsonModel([
2846
                        return new JsonModel([
2945
                            'success' => false,
2847
                            'success' => false,
2946
                            'data' => $chatUserMapper->getError()
2848
                            'data' => $chatUserMapper->getError()
2947
                        ]);
2849
                        ]);
2948
                    }
2850
                    }
2949
                    
2851
 
2950
                    $chatUser = $chatUserMapper->fetchOne($chatUser->id);
2852
                    $chatUser = $chatUserMapper->fetchOne($chatUser->id);
2951
                    $fullpath_chat = $this->config['leaderslinked.fullpath.chat'];
2853
                    $fullpath_chat = $this->config['leaderslinked.fullpath.chat'];
2952
                    $dirpath = $fullpath_chat . $chatUser->uuid;
2854
                    $dirpath = $fullpath_chat . $chatUser->uuid;
2953
                    if (! file_exists($dirpath)) {
2855
                    if (!file_exists($dirpath)) {
2954
                        mkdir($dirpath, 0777, true);
-
 
2955
                        chmod($dirpath, 0777);
2856
                        mkdir($dirpath, 0777, true);
2956
                    }
-
 
2957
                    
2857
                        chmod($dirpath, 0777);
2958
                }
2858
                    }
2959
                
2859
                }
2960
            }
2860
            }
2961
            
2861
 
2962
            
2862
 
2963
            
2863
 
2964
            
2864
 
2965
            
2865
 
2966
            if(!$chatUser && !$chatGroup) {
2866
            if (!$chatUser && !$chatGroup) {
2967
                $data = [
2867
                $data = [
2968
                    'success' => false,
2868
                    'success' => false,
2969
                    'data' => 'ERROR_ZOOM_CHAT_NOT_FOUND'
2869
                    'data' => 'ERROR_ZOOM_CHAT_NOT_FOUND'
2970
                ];
2870
                ];
2971
                
2871
 
2972
                
2872
 
2973
                return new JsonModel($data);
2873
                return new JsonModel($data);
2974
            }
2874
            }
2975
            
2875
 
2976
            $dataPost = $request->getPost()->toArray();
2876
            $dataPost = $request->getPost()->toArray();
2977
            $form = new ZoomAddForm();
2877
            $form = new ZoomAddForm();
2978
            $form->setData($dataPost);
2878
            $form->setData($dataPost);
Línea 2979... Línea 2879...
2979
            if($form->isValid()) {
2879
            if ($form->isValid()) {
2980
                
2880
 
2981
                $dataPost = (array) $form->getData();
2881
                $dataPost = (array) $form->getData();
2982
 
2882
 
2983
              
2883
 
2984
                $dtStart = \DateTime::createFromFormat('Y-m-d H:i:s',$dataPost['date'] . ' ' . $dataPost['time']);
2884
                $dtStart = \DateTime::createFromFormat('Y-m-d H:i:s', $dataPost['date'] . ' ' . $dataPost['time']);
2985
                if(!$dtStart) {
2885
                if (!$dtStart) {
2986
                    return new JsonModel([
2886
                    return new JsonModel([
2987
                        'success' => false,
2887
                        'success' => false,
2988
                        'data' => 'ERROR_PARAMETERS_ARE_INVALID'
2888
                        'data' => 'ERROR_PARAMETERS_ARE_INVALID'
2989
                    ]);
2889
                    ]);
2990
                }
2890
                }
2991
                
2891
 
2992
        
2892
 
2993
                
2893
 
2994
                $dtEnd = \DateTime::createFromFormat('Y-m-d H:i:s',$dataPost['date'] . ' ' . $dataPost['time']);
2894
                $dtEnd = \DateTime::createFromFormat('Y-m-d H:i:s', $dataPost['date'] . ' ' . $dataPost['time']);
Línea 2995... Línea 2895...
2995
                $dtEnd->add(new \DateInterval('PT' . $dataPost['duration'] . 'M'));
2895
                $dtEnd->add(new \DateInterval('PT' . $dataPost['duration'] . 'M'));
2996
                
2896
 
2997
                $start_time = $dtStart->format('Y-m-d\TH:i:s');
2897
                $start_time = $dtStart->format('Y-m-d\TH:i:s');
2998
                $zoom = new Zoom($this->adapter, $this->config, $this->cache);
2898
                $zoom = new Zoom($this->adapter, $this->config, $this->cache);
2999
 
2899
 
3000
                $response =  $zoom->getOAuthAccessToken();
2900
                $response =  $zoom->getOAuthAccessToken();
3001
                if($response['success']) {
2901
                if ($response['success']) {
3002
                    $access_token = $response['data'];
2902
                    $access_token = $response['data'];
3003
                    $result = $zoom->addMeeting($access_token, $dataPost['title'], $dataPost['description'], $dataPost['type'], $start_time, $dataPost['duration'], $dataPost['timezone'], $dataPost['password']);
2903
                    $result = $zoom->addMeeting($access_token, $dataPost['title'], $dataPost['description'], $dataPost['type'], $start_time, $dataPost['duration'], $dataPost['timezone'], $dataPost['password']);
3004
                } else {
2904
                } else {
3005
                    return new JsonModel([
-
 
3006
                        'success' => false,
-
 
3007
                        'data' => 'ERROR_ZOOM_CREATING_NEW_MEETING'
-
 
3008
                    ]);
-
 
3009
                }
-
 
3010
 
-
 
Línea -... Línea 2905...
-
 
2905
                    return new JsonModel([
-
 
2906
                        'success' => false,
-
 
2907
                        'data' => 'ERROR_ZOOM_CREATING_NEW_MEETING'
-
 
2908
                    ]);
-
 
2909
                }
-
 
2910
 
3011
                
2911
 
3012
                
2912
 
3013
                
2913
 
3014
                
2914
 
3015
                
2915
 
3016
 
2916
 
3017
 
2917
 
3018
                if($result['success']) {
2918
                if ($result['success']) {
3019
                    
2919
 
3020
                    
2920
 
3021
                    $zoomMeetingMapper = ZoomMeetingMapper::getInstance($this->adapter);
2921
                    $zoomMeetingMapper = ZoomMeetingMapper::getInstance($this->adapter);
3022
                    $zoomMeeting = $zoomMeetingMapper->fetchOne($result['data']['id']);
2922
                    $zoomMeeting = $zoomMeetingMapper->fetchOne($result['data']['id']);
3023
                    
2923
 
3024
                    if(!$zoomMeeting) {
2924
                    if (!$zoomMeeting) {
3025
                    
2925
 
3026
                    
2926
 
3027
                        $zoomMeeting = new ZoomMeeting();
2927
                        $zoomMeeting = new ZoomMeeting();
3028
                        $zoomMeeting->id = $result['data']['id'];
2928
                        $zoomMeeting->id = $result['data']['id'];
3029
                        $zoomMeeting->topic = $dataPost['title'];
2929
                        $zoomMeeting->topic = $dataPost['title'];
3030
                        $zoomMeeting->agenda =$dataPost['description'];
2930
                        $zoomMeeting->agenda = $dataPost['description'];
3031
                        $zoomMeeting->duration = $dataPost['duration'];
2931
                        $zoomMeeting->duration = $dataPost['duration'];
3032
                        $zoomMeeting->join_url = $result['data']['join_url'];
2932
                        $zoomMeeting->join_url = $result['data']['join_url'];
3033
                        $zoomMeeting->start_time = $dtStart->format('Y-m-d H:i:s');
2933
                        $zoomMeeting->start_time = $dtStart->format('Y-m-d H:i:s');
3034
                        $zoomMeeting->end_time = $dtEnd->format('Y-m-d H:i:s');
2934
                        $zoomMeeting->end_time = $dtEnd->format('Y-m-d H:i:s');
3035
                        $zoomMeeting->timezone = $dataPost['timezone'];
2935
                        $zoomMeeting->timezone = $dataPost['timezone'];
3036
                        $zoomMeeting->type = $dataPost['type'];
2936
                        $zoomMeeting->type = $dataPost['type'];
3037
                        $zoomMeeting->uuid = $result['data'][ 'uuid'];
2937
                        $zoomMeeting->uuid = $result['data']['uuid'];
3038
                        $zoomMeeting->password = $dataPost['password'];
2938
                        $zoomMeeting->password = $dataPost['password'];
3039
                        
2939
 
3040
                       
-
 
3041
                        if(!$zoomMeetingMapper->insert($zoomMeeting)) {
2940
 
3042
                            return new JsonModel([
2941
                        if (!$zoomMeetingMapper->insert($zoomMeeting)) {
3043
                                'success' => false,
2942
                            return new JsonModel([
3044
                                'data' => $zoomMeetingMapper->getError()
2943
                                'success' => false,
3045
                            ]);
2944
                                'data' => $zoomMeetingMapper->getError()
3046
                        }
2945
                            ]);
3047
                        
2946
                        }
3048
                    }
2947
                    }
3049
      
2948
 
3050
                    
2949
 
3051
                   
2950
 
3052
    
2951
 
3053
                    
2952
 
3054
                    $chatMessageContent = "LABEL_ZOOM_MEETING \r\n" . 
2953
                    $chatMessageContent = "LABEL_ZOOM_MEETING \r\n" .
3055
                        " LABEL_ZOOM_MEETING_START_DATE : " . $dtStart->format('Y-m-d') . "\r\n" . 
2954
                        " LABEL_ZOOM_MEETING_START_DATE : " . $dtStart->format('Y-m-d') . "\r\n" .
3056
                        " LABEL_ZOOM_MEETING_START_TIME : " . $dtStart->format('H:i a') . "\r\n" .
2955
                        " LABEL_ZOOM_MEETING_START_TIME : " . $dtStart->format('H:i a') . "\r\n" .
3057
                        " LABEL_ZOOM_MEETING_TIMEZONE : " . $zoomMeeting->timezone . "\r\n" .
2956
                        " LABEL_ZOOM_MEETING_TIMEZONE : " . $zoomMeeting->timezone . "\r\n" .
3058
                        " LABEL_ZOOM_MEETING_TITLE :  " . $zoomMeeting->topic  . "\r\n" . 
2957
                        " LABEL_ZOOM_MEETING_TITLE :  " . $zoomMeeting->topic  . "\r\n" .
3059
                        " LABEL_ZOOM_MEETING_URL : " . $zoomMeeting->join_url . "\r\n" . 
2958
                        " LABEL_ZOOM_MEETING_URL : " . $zoomMeeting->join_url . "\r\n" .
3060
                        " LABEL_ZOOM_MEETING_PASSWORD : " . $zoomMeeting->password . "\r\n" ;
2959
                        " LABEL_ZOOM_MEETING_PASSWORD : " . $zoomMeeting->password . "\r\n";
3061
                        
2960
 
3062
                    
2961
 
3063
                    $zoomMeetingUserMapper = ZoomMeetingUserMapper::getInstance($this->adapter);
2962
                    $zoomMeetingUserMapper = ZoomMeetingUserMapper::getInstance($this->adapter);
3064
                    $zoomMeetingUser = $zoomMeetingUserMapper->fetchOneByZoomMeetingIdAndUserId($zoomMeeting->id, $currentUser->id);
2963
                    $zoomMeetingUser = $zoomMeetingUserMapper->fetchOneByZoomMeetingIdAndUserId($zoomMeeting->id, $currentUser->id);
3065
                    
2964
 
3066
                    if(!$zoomMeetingUser) {
2965
                    if (!$zoomMeetingUser) {
3067
                    
2966
 
3068
                        $zoomMeetingUser = new ZoomMeetingUser();
2967
                        $zoomMeetingUser = new ZoomMeetingUser();
3069
                        $zoomMeetingUser->zoom_meeting_id = $zoomMeeting->id;
2968
                        $zoomMeetingUser->zoom_meeting_id = $zoomMeeting->id;
3070
                        $zoomMeetingUser->user_id = $currentUser->id;
2969
                        $zoomMeetingUser->user_id = $currentUser->id;
3071
                        $zoomMeetingUser->type = ZoomMeetingUser::TYPE_CREATOR;
2970
                        $zoomMeetingUser->type = ZoomMeetingUser::TYPE_CREATOR;
3072
                        $zoomMeetingUserMapper->insert($zoomMeetingUser);
2971
                        $zoomMeetingUserMapper->insert($zoomMeetingUser);
3073
                    }
2972
                    }
3074
                    
2973
 
3075
   
2974
 
3076
                    
2975
 
3077
                    
2976
 
3078
                   
2977
 
3079
                    
2978
 
3080
                    if($chatUser) {
2979
                    if ($chatUser) {
3081
                        
2980
 
3082
                        if($chatUser->user_id1 == $currentUser->id) {
2981
                        if ($chatUser->user_id1 == $currentUser->id) {
3083
                            
2982
 
3084
                            $zoomMeetingUser = $zoomMeetingUserMapper->fetchOneByZoomMeetingIdAndUserId($zoomMeeting->id, $chatUser->user_id2);
2983
                            $zoomMeetingUser = $zoomMeetingUserMapper->fetchOneByZoomMeetingIdAndUserId($zoomMeeting->id, $chatUser->user_id2);
3085
                            if(!$zoomMeetingUser) {
-
 
3086
                                $zoomMeetingUser = new ZoomMeetingUser();
2984
                            if (!$zoomMeetingUser) {
3087
                                $zoomMeetingUser->zoom_meeting_id = $zoomMeeting->id;
2985
                                $zoomMeetingUser = new ZoomMeetingUser();
3088
                                $zoomMeetingUser->user_id = $chatUser->user_id2;
2986
                                $zoomMeetingUser->zoom_meeting_id = $zoomMeeting->id;
3089
                                $zoomMeetingUser->type = ZoomMeetingUser::TYPE_CREATOR;
2987
                                $zoomMeetingUser->user_id = $chatUser->user_id2;
3090
                                $zoomMeetingUserMapper->insert($zoomMeetingUser);
2988
                                $zoomMeetingUser->type = ZoomMeetingUser::TYPE_CREATOR;
3091
                            }
2989
                                $zoomMeetingUserMapper->insert($zoomMeetingUser);
3092
                            
2990
                            }
3093
                        } else {
2991
                        } else {
3094
                            $zoomMeetingUser = $zoomMeetingUserMapper->fetchOneByZoomMeetingIdAndUserId($zoomMeeting->id, $chatUser->user_id1);
2992
                            $zoomMeetingUser = $zoomMeetingUserMapper->fetchOneByZoomMeetingIdAndUserId($zoomMeeting->id, $chatUser->user_id1);
3095
                            if(!$zoomMeetingUser) {
2993
                            if (!$zoomMeetingUser) {
3096
                                $zoomMeetingUser = new ZoomMeetingUser();
2994
                                $zoomMeetingUser = new ZoomMeetingUser();
3097
                                $zoomMeetingUser->zoom_meeting_id = $zoomMeeting->id;
2995
                                $zoomMeetingUser->zoom_meeting_id = $zoomMeeting->id;
3098
                                $zoomMeetingUser->user_id = $chatUser->user_id1;
2996
                                $zoomMeetingUser->user_id = $chatUser->user_id1;
3099
                                $zoomMeetingUser->type = ZoomMeetingUser::TYPE_CREATOR;
2997
                                $zoomMeetingUser->type = ZoomMeetingUser::TYPE_CREATOR;
3100
                                $zoomMeetingUserMapper->insert($zoomMeetingUser);
2998
                                $zoomMeetingUserMapper->insert($zoomMeetingUser);
3101
                            }
2999
                            }
3102
                        }
3000
                        }
3103
                        
3001
 
3104
                        $chatMessage = new ChatMessage();
3002
                        $chatMessage = new ChatMessage();
3105
                        $chatMessage->recd = ChatMessage::RECD_NO;
3003
                        $chatMessage->recd = ChatMessage::RECD_NO;
3106
                        $chatMessage->seen = ChatMessage::SEEN_NO;
3004
                        $chatMessage->seen = ChatMessage::SEEN_NO;
3107
                        $chatMessage->type = ChatMessage::TYPE_TEXT;
3005
                        $chatMessage->type = ChatMessage::TYPE_TEXT;
3108
                        $chatMessage->content = $chatMessageContent;
3006
                        $chatMessage->content = $chatMessageContent;
3109
                        $chatMessage->from_id = $currentUser->id;
3007
                        $chatMessage->from_id = $currentUser->id;
3110
                        $chatMessage->to_id = $chatUser->user_id1 == $currentUser->id ? $chatUser->user_id2 : $chatUser->user_id1;
3008
                        $chatMessage->to_id = $chatUser->user_id1 == $currentUser->id ? $chatUser->user_id2 : $chatUser->user_id1;
3111
                        $chatMessage->chat_id = $chatUser->id;
3009
                        $chatMessage->chat_id = $chatUser->id;
3112
                        
3010
 
3113
                        
-
 
3114
                        $chatMessageMapper = ChatMessageMapper::getInstance($this->adapter);
-
 
3115
                        $chatMessageMapper->insert($chatMessage);
-
 
3116
                        
-
 
3117
                        
-
 
3118
                        $chatUserMapper->markIsOpen1($chatUser->id);
-
 
3119
                        $chatUserMapper->markIsOpen2($chatUser->id);
-
 
3120
                        
-
 
3121
                        
-
 
3122
                        
3011
 
3123
                        
-
 
3124
                        
3012
                        $chatMessageMapper = ChatMessageMapper::getInstance($this->adapter);
3125
                        
3013
                        $chatMessageMapper->insert($chatMessage);
3126
                        
3014
 
3127
                        
3015
 
3128
                        
3016
                        $chatUserMapper->markIsOpen1($chatUser->id);
3129
                    } else if($chatGroup)
3017
                        $chatUserMapper->markIsOpen2($chatUser->id);
3130
                    {
3018
                    } else if ($chatGroup) {
3131
                        
3019
 
3132
                        $chatGroupMessage = new ChatGroupMessage();
3020
                        $chatGroupMessage = new ChatGroupMessage();
3133
                        $chatGroupMessage->group_id = $chatGroup->id;
3021
                        $chatGroupMessage->group_id = $chatGroup->id;
3134
                        $chatGroupMessage->content = $chatMessageContent;
3022
                        $chatGroupMessage->content = $chatMessageContent;
3135
                        $chatGroupMessage->sender_id = $currentUser->id;
3023
                        $chatGroupMessage->sender_id = $currentUser->id;
3136
                        $chatGroupMessage->type = ChatGroupMessage::TYPE_TEXT;
3024
                        $chatGroupMessage->type = ChatGroupMessage::TYPE_TEXT;
3137
                        $chatGroupMessageMapper = ChatGroupMessageMapper::getInstance($this->adapter);
3025
                        $chatGroupMessageMapper = ChatGroupMessageMapper::getInstance($this->adapter);
3138
                        if($chatGroupMessageMapper->insert($chatGroupMessage)) { 
3026
                        if ($chatGroupMessageMapper->insert($chatGroupMessage)) {
3139
                        
-
 
3140
                            $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
3027
 
3141
                            $groupUsers =   $chatGroupUserMapper->fetchAllByGroupId($chatGroup->id);
3028
                            $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
3142
                            
3029
                            $groupUsers =   $chatGroupUserMapper->fetchAllByGroupId($chatGroup->id);
3143
                            
3030
 
3144
                            $chatGroupUserMessageMapper = ChatGroupUserMessageMapper::getInstance($this->adapter);
3031
 
3145
                            foreach($groupUsers as $groupUser)
3032
                            $chatGroupUserMessageMapper = ChatGroupUserMessageMapper::getInstance($this->adapter);
3146
                            {
3033
                            foreach ($groupUsers as $groupUser) {
3147
                               
3034
 
3148
                                if($groupUser->user_id != $currentUser->id) {
3035
                                if ($groupUser->user_id != $currentUser->id) {
3149
                                    $zoomMeetingUser = $zoomMeetingUserMapper->fetchOneByZoomMeetingIdAndUserId($zoomMeeting->id, $groupUser->user_id);
3036
                                    $zoomMeetingUser = $zoomMeetingUserMapper->fetchOneByZoomMeetingIdAndUserId($zoomMeeting->id, $groupUser->user_id);
3150
                                    
3037
 
3151
                                    if(!$zoomMeetingUser) {
3038
                                    if (!$zoomMeetingUser) {
3152
                                        $zoomMeetingUser = new ZoomMeetingUser();
3039
                                        $zoomMeetingUser = new ZoomMeetingUser();
3153
                                        $zoomMeetingUser->zoom_meeting_id = $zoomMeeting->id;
3040
                                        $zoomMeetingUser->zoom_meeting_id = $zoomMeeting->id;
3154
                                        $zoomMeetingUser->user_id = $groupUser->user_id;
3041
                                        $zoomMeetingUser->user_id = $groupUser->user_id;
3155
                                        $zoomMeetingUser->type = ZoomMeetingUser::TYPE_CREATOR;
3042
                                        $zoomMeetingUser->type = ZoomMeetingUser::TYPE_CREATOR;
3156
                                        $zoomMeetingUserMapper->insert($zoomMeetingUser);
3043
                                        $zoomMeetingUserMapper->insert($zoomMeetingUser);
3157
                                    }
3044
                                    }
3158
                                }
3045
                                }
3159
                                
3046
 
3160
                                
3047
 
3161
                                $chatGroupUserMessage = new ChatGroupUserMessage();
3048
                                $chatGroupUserMessage = new ChatGroupUserMessage();
3162
                                $chatGroupUserMessage->group_id = $chatGroup->id;
3049
                                $chatGroupUserMessage->group_id = $chatGroup->id;
3163
                                $chatGroupUserMessage->message_id = $chatGroupMessage->id;
3050
                                $chatGroupUserMessage->message_id = $chatGroupMessage->id;
3164
                                $chatGroupUserMessage->receiver_id = $groupUser->user_id;
3051
                                $chatGroupUserMessage->receiver_id = $groupUser->user_id;
3165
                                $chatGroupUserMessage->recd = ChatGroupUserMessage::RECD_NO;
3052
                                $chatGroupUserMessage->recd = ChatGroupUserMessage::RECD_NO;
3166
                                $chatGroupUserMessage->seen = ChatGroupUserMessage::SEEN_NO;
3053
                                $chatGroupUserMessage->seen = ChatGroupUserMessage::SEEN_NO;
3167
                                $chatGroupUserMessageMapper->insert($chatGroupUserMessage);
3054
                                $chatGroupUserMessageMapper->insert($chatGroupUserMessage);
3168
                                
3055
 
3169
                                $chatGroupUserMapper->markIsOpen($groupUser->group_id, $groupUser->user_id);
3056
                                $chatGroupUserMapper->markIsOpen($groupUser->group_id, $groupUser->user_id);
3170
                            }
3057
                            }
3171
                        }
-
 
3172
                    }
-
 
3173
                    
3058
                        }
3174
                    return new JsonModel([
3059
                    }
3175
                        'success' => true,
3060
 
3176
                        'data' => 'LABEL_ZOOM_NEW_MEETING_SUCCESSFULLY'
3061
                    return new JsonModel([
3177
                    ]);
3062
                        'success' => true,
3178
                    
3063
                        'data' => 'LABEL_ZOOM_NEW_MEETING_SUCCESSFULLY'
3179
                    
-
 
3180
                } else {
-
 
3181
                    return new JsonModel([
-
 
3182
                        'success' => false,
-
 
3183
                        'data' => 'ERROR_ZOOM_CREATING_NEW_MEETING'
3064
                    ]);
3184
                    ]);
3065
                } else {
3185
                }
3066
                    return new JsonModel([
3186
                
3067
                        'success' => false,
3187
                
3068
                        'data' => 'ERROR_ZOOM_CREATING_NEW_MEETING'
3188
                
3069
                    ]);
3189
                
3070
                }
3190
            } else {
-
 
3191
                
3071
            } else {
3192
             
3072
 
3193
                
3073
 
3194
                $messages = [];
3074
 
3195
                $form_messages = (array) $form->getMessages();
3075
                $messages = [];
3196
                foreach($form_messages  as $fieldname => $field_messages)
3076
                $form_messages = (array) $form->getMessages();
3197
                {
3077
                foreach ($form_messages  as $fieldname => $field_messages) {
3198
                    
3078
 
Línea 3199... Línea 3079...
3199
                    $messages[$fieldname] = array_values($field_messages);
3079
                    $messages[$fieldname] = array_values($field_messages);
3200
                }
3080
                }
3201
                
3081
 
3202
                return new JsonModel([
-
 
3203
                    'success'   => false,
-
 
3204
                    'data'   => $messages
-
 
3205
                ]);
-
 
3206
 
-
 
3207
                
-
 
3208
                return new JsonModel($response);
3082
                return new JsonModel([
3209
            }
3083
                    'success'   => false,
3210
            
3084
                    'data'   => $messages
3211
            
3085
                ]);
3212
          
3086
 
3213
            
3087
 
3214
            
3088
                return new JsonModel($response);
3215
            
3089
            }
3216
        } else {
3090
        } else {
Línea 3217... Línea 3091...
3217
            $response = [
3091
            $response = [
3218
                'success' => false,
3092
                'success' => false,
3219
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
3093
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
3220
            ];
3094
            ];
3221
        }
3095
        }
3222
        
3096
 
Línea 3293... Línea 3167...
3293
     * @param string $now
3167
     * @param string $now
3294
     * @return string
3168
     * @return string
3295
     */
3169
     */
3296
    private function timeAgo($timestamp, $now = '')
3170
    private function timeAgo($timestamp, $now = '')
3297
    {
3171
    {
3298
    
3172
 
3299
        if($now) {
3173
        if ($now) {
3300
            $datetime1 = \DateTime::createFromFormat('Y-m-d H:i:s', $now); 
3174
            $datetime1 = \DateTime::createFromFormat('Y-m-d H:i:s', $now);
3301
        } else {
3175
        } else {
3302
            $now = date('Y-m-d H:i:s');
3176
            $now = date('Y-m-d H:i:s');
3303
            $datetime1 = date_create($now);
3177
            $datetime1 = date_create($now);
3304
        }
3178
        }
3305
        $datetime2 = date_create($timestamp);
3179
        $datetime2 = date_create($timestamp);
Línea 3333... Línea 3207...
3333
     * @param string $now
3207
     * @param string $now
3334
     * @return boolean
3208
     * @return boolean
3335
     */
3209
     */
3336
    private function isInactiveConnection($timestamp, $now = '')
3210
    private function isInactiveConnection($timestamp, $now = '')
3337
    {
3211
    {
3338
        if($now) {
3212
        if ($now) {
3339
            $datetime1 = \DateTime::createFromFormat('Y-m-d H:i:s', $now);
3213
            $datetime1 = \DateTime::createFromFormat('Y-m-d H:i:s', $now);
3340
        } else {
3214
        } else {
3341
            $now = date('Y-m-d H:i:s');
3215
            $now = date('Y-m-d H:i:s');
3342
            $datetime1 = date_create($now);
3216
            $datetime1 = date_create($now);
3343
        }
3217
        }
3344
        
3218
 
3345
        
3219
 
3346
        if (empty($timestamp)) {
3220
        if (empty($timestamp)) {
3347
            return true;
3221
            return true;
3348
        }
3222
        }
Línea 3349... Línea 3223...
3349
 
3223
 
3350
      
3224
 
3351
        $datetime2 = date_create($timestamp);
3225
        $datetime2 = date_create($timestamp);
Línea 3352... Línea 3226...
3352
        $diff = date_diff($datetime1, $datetime2);
3226
        $diff = date_diff($datetime1, $datetime2);
3353
 
3227