Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev 14688 Rev 14692
Línea 152... Línea 152...
152
     *       'url_delete'                               => 'url para borrar el grupo si es el propietario',
152
     *       'url_delete'                               => 'url para borrar el grupo si es el propietario',
153
     *       'url_add_user_to_group'                    => 'url para agregar un usuario al grupo si es el propietario',
153
     *       'url_add_user_to_group'                    => 'url para agregar un usuario al grupo si es el propietario',
154
     *       'url_get_contacts_availables_for_group'    => 'url para obtener los usuarios disponibles para agregarlos al grupo',
154
     *       'url_get_contacts_availables_for_group'    => 'url para obtener los usuarios disponibles para agregarlos al grupo',
155
     *       'url_get_contact_group_list'               => 'url para obtener los usuarios del grupo si es el propietario',
155
     *       'url_get_contact_group_list'               => 'url para obtener los usuarios del grupo si es el propietario',
156
     *       'url_clear'                                => 'url para limpiar los mensajes del grupo',
156
     *       'url_clear'                                => 'url para limpiar los mensajes del grupo',
157
     *       'url_close'                                => 'url para cerrar el chat',
157
     *       'url_close'                                => 'url para marcar como cerrado el chat',
-
 
158
     *       'url_open'                                 => 'url para marcar como abierto el chat',
158
     *       'url_send'                                 => 'url para enviar un mensaje',
159
     *       'url_send'                                 => 'url para enviar un mensaje',
159
     *       'url_upload'                               => 'url para subir un archivo, imagen o video',
160
     *       'url_upload'                               => 'url para subir un archivo, imagen o video',
160
     *       'url_get_all_messages'                     => 'url para para obtener los mensajes',
161
     *       'url_get_all_messages'                     => 'url para para obtener los mensajes',
161
     *       'url_mark_seen'                            => 'url para marcar los mensajes como vistos'
162
     *       'url_mark_seen'                            => 'url para marcar los mensajes como vistos'
162
     *       'url_mark_received'                        => 'url para marcar los mensajes como recibios'
163
     *       'url_mark_received'                        => 'url para marcar los mensajes como recibios'
Línea 167... Línea 168...
167
     *       'unsee_messages'                           => 'true/false',
168
     *       'unsee_messages'                           => 'true/false',
168
     *       'unread_messages'                          => 'true/false'
169
     *       'unread_messages'                          => 'true/false'
169
     *      ],
170
     *      ],
170
     *      [
171
     *      [
171
     *        'url_clear'               => 'url para limpiar los mensajes del grupo',
172
     *        'url_clear'               => 'url para limpiar los mensajes del grupo',
172
     *        'url_close'               => 'url para cerrar el chat',
173
     *        'url_close'               => 'url para marcar como cerrado el chat',
-
 
174
     *        'url_open'                => 'url para marcar como abierto el chat',
173
     *        'url_send'                => 'url para enviar un mensaje',
175
     *        'url_send'                => 'url para enviar un mensaje',
174
     *        'url_upload'              => 'url para subir un archivo, imagen o video',
176
     *        'url_upload'              => 'url para subir un archivo, imagen o video',
175
     *        'url_get_all_messages'    => 'url para para obtener los mensajes',
177
     *        'url_get_all_messages'    => 'url para para obtener los mensajes',
176
     *        'url_mark_seen'                            => 'url para marcar los mensajes como vistos'
178
     *        'url_mark_seen'           => 'url para marcar los mensajes como vistos'
177
     *        'url_mark_received'                        => 'url para marcar los mensajes como recibios'
179
     *        'url_mark_received'       => 'url para marcar los mensajes como recibios'
178
     *        'id'                      => 'id del usuario encriptado',
180
     *        'id'                      => 'id del usuario encriptado',
179
     *        'name'                    => 'nombre del usuario',
181
     *        'name'                    => 'nombre del usuario',
180
     *        'image'                   => 'imagen del usuario',
182
     *        'image'                   => 'imagen del usuario',
181
     *        'type'                    => 'user' //fixed,
183
     *        'type'                    => 'user' //fixed,
182
     *        'profile'                 => 'url del profile',
184
     *        'profile'                 => 'url del profile',
Línea 243... Línea 245...
243
                            'url_add_user_to_group'                 => '',
245
                            'url_add_user_to_group'                 => '',
244
                            'url_get_contact_group_list'            => '',
246
                            'url_get_contact_group_list'            => '',
245
                            'url_get_contacts_availables_for_group' => '',
247
                            'url_get_contacts_availables_for_group' => '',
246
                            'url_clear'                             => $this->url()->fromRoute('chat/clear', ['id' => $chatGroup->uuid]),
248
                            'url_clear'                             => $this->url()->fromRoute('chat/clear', ['id' => $chatGroup->uuid]),
247
                            'url_close'                             => $this->url()->fromRoute('chat/close', ['id' => $chatGroup->uuid]),
249
                            'url_close'                             => $this->url()->fromRoute('chat/close', ['id' => $chatGroup->uuid]),
-
 
250
                            'url_open'                              => $this->url()->fromRoute('chat/open', ['id' => $chatGroup->uuid]),
248
                            'url_send'                              => $this->url()->fromRoute('chat/send', ['id' => $chatGroup->uuid]),
251
                            'url_send'                              => $this->url()->fromRoute('chat/send', ['id' => $chatGroup->uuid]),
249
                            'url_upload'                            => $this->url()->fromRoute('chat/upload', ['id' => $chatGroup->uuid]),
252
                            'url_upload'                            => $this->url()->fromRoute('chat/upload', ['id' => $chatGroup->uuid]),
250
                            'url_get_all_messages'                  => $this->url()->fromRoute('chat/get-all-messages', ['id' => $chatGroup->uuid]),
253
                            'url_get_all_messages'                  => $this->url()->fromRoute('chat/get-all-messages', ['id' => $chatGroup->uuid]),
251
                            'url_mark_seen'                         => $this->url()->fromRoute('chat/mark-seen', ['id' => $chatGroup->uuid]),
254
                            'url_mark_seen'                         => $this->url()->fromRoute('chat/mark-seen', ['id' => $chatGroup->uuid]),
252
                            'url_mark_received'                     => $this->url()->fromRoute('chat/mark-received', ['id' => $chatGroup->uuid]),
255
                            'url_mark_received'                     => $this->url()->fromRoute('chat/mark-received', ['id' => $chatGroup->uuid]),
Línea 267... Línea 270...
267
                                'url_add_user_to_group'                 => $this->url()->fromRoute('chat/add-user-to-group', ['group_id' => $chatGroup->uuid]),
270
                                'url_add_user_to_group'                 => $this->url()->fromRoute('chat/add-user-to-group', ['group_id' => $chatGroup->uuid]),
268
                                'url_get_contact_group_list'            => $this->url()->fromRoute('chat/get-contact-group-list', ['group_id' => $chatGroup->uuid]),
271
                                'url_get_contact_group_list'            => $this->url()->fromRoute('chat/get-contact-group-list', ['group_id' => $chatGroup->uuid]),
269
                                'url_get_contacts_availables_for_group' => $this->url()->fromRoute('chat/get-contacts-availables-for-group', ['group_id' => $chatGroup->uuid]),
272
                                'url_get_contacts_availables_for_group' => $this->url()->fromRoute('chat/get-contacts-availables-for-group', ['group_id' => $chatGroup->uuid]),
270
                                'url_clear'                             => $this->url()->fromRoute('chat/clear', ['id' => $chatGroup->uuid]),
273
                                'url_clear'                             => $this->url()->fromRoute('chat/clear', ['id' => $chatGroup->uuid]),
271
                                'url_close'                             => $this->url()->fromRoute('chat/close', ['id' => $chatGroup->uuid]),
274
                                'url_close'                             => $this->url()->fromRoute('chat/close', ['id' => $chatGroup->uuid]),
-
 
275
                                'url_open'                              => $this->url()->fromRoute('chat/open', ['id' => $chatGroup->uuid]),
272
                                'url_send'                              => $this->url()->fromRoute('chat/send', ['id' => $chatGroup->uuid]),
276
                                'url_send'                              => $this->url()->fromRoute('chat/send', ['id' => $chatGroup->uuid]),
273
                                'url_upload'                            => $this->url()->fromRoute('chat/upload', ['id' => $chatGroup->uuid]),
277
                                'url_upload'                            => $this->url()->fromRoute('chat/upload', ['id' => $chatGroup->uuid]),
274
                                'url_get_all_messages'                  => $this->url()->fromRoute('chat/get-all-messages', ['id' => $chatGroup->uuid]),
278
                                'url_get_all_messages'                  => $this->url()->fromRoute('chat/get-all-messages', ['id' => $chatGroup->uuid]),
275
                                'url_mark_seen'                         => $this->url()->fromRoute('chat/mark-seen', ['id' => $chatGroup->uuid]),
279
                                'url_mark_seen'                         => $this->url()->fromRoute('chat/mark-seen', ['id' => $chatGroup->uuid]),
276
                                'url_mark_received'                     => $this->url()->fromRoute('chat/mark-received', ['id' => $chatGroup->uuid]),
280
                                'url_mark_received'                     => $this->url()->fromRoute('chat/mark-received', ['id' => $chatGroup->uuid]),
Línea 289... Línea 293...
289
                                'url_add_user_to_group'         => '',
293
                                'url_add_user_to_group'         => '',
290
                                'url_get_contact_group_list'    => $this->url()->fromRoute('chat/get-contact-group-list', ['group_id' => $chatGroup->uuid]),
294
                                'url_get_contact_group_list'    => $this->url()->fromRoute('chat/get-contact-group-list', ['group_id' => $chatGroup->uuid]),
291
                                'url_leave'                     => $this->url()->fromRoute('chat/leave-group', ['group_id' => $chatGroup->uuid]),
295
                                'url_leave'                     => $this->url()->fromRoute('chat/leave-group', ['group_id' => $chatGroup->uuid]),
292
                                'url_clear'                     => $this->url()->fromRoute('chat/clear', ['id' => $chatGroup->uuid]),
296
                                'url_clear'                     => $this->url()->fromRoute('chat/clear', ['id' => $chatGroup->uuid]),
293
                                'url_close'                     => $this->url()->fromRoute('chat/close', ['id' => $chatGroup->uuid]),
297
                                'url_close'                     => $this->url()->fromRoute('chat/close', ['id' => $chatGroup->uuid]),
-
 
298
                                'url_open'                      => $this->url()->fromRoute('chat/open', ['id' => $chatGroup->uuid]),
294
                                'url_send'                      => $this->url()->fromRoute('chat/send', ['id' => $chatGroup->uuid]),
299
                                'url_send'                      => $this->url()->fromRoute('chat/send', ['id' => $chatGroup->uuid]),
295
                                'url_upload'                    => $this->url()->fromRoute('chat/upload', ['id' => $chatGroup->uuid]),
300
                                'url_upload'                    => $this->url()->fromRoute('chat/upload', ['id' => $chatGroup->uuid]),
296
                                'url_get_all_messages'          => $this->url()->fromRoute('chat/get-all-messages', ['id' => $chatGroup->uuid]),
301
                                'url_get_all_messages'          => $this->url()->fromRoute('chat/get-all-messages', ['id' => $chatGroup->uuid]),
297
                                'url_mark_seen'                 => $this->url()->fromRoute('chat/mark-seen', ['id' => $chatGroup->uuid]),
302
                                'url_mark_seen'                 => $this->url()->fromRoute('chat/mark-seen', ['id' => $chatGroup->uuid]),
298
                                'url_mark_received'             => $this->url()->fromRoute('chat/mark-received', ['id' => $chatGroup->uuid]),
303
                                'url_mark_received'             => $this->url()->fromRoute('chat/mark-received', ['id' => $chatGroup->uuid]),
Línea 349... Línea 354...
349
                   
354
                   
350
                    
355
                    
351
                    $chat = [
356
                    $chat = [
-
 
357
                        'url_clear'                 => $this->url()->fromRoute('chat/clear', ['id' => $user->uuid]),
352
                        'url_clear'                 => $this->url()->fromRoute('chat/clear', ['id' => $user->uuid]),
358
                        'url_close'                 => $this->url()->fromRoute('chat/close', ['id' => $user->uuid]),
353
                        'url_close'                 => $this->url()->fromRoute('chat/close', ['id' => $user->uuid]),
359
                        'url_open'                  => $this->url()->fromRoute('chat/open', ['id' => $user->uuid]),
354
                        'url_send'                  => $this->url()->fromRoute('chat/send', ['id' => $user->uuid]),
360
                        'url_send'                  => $this->url()->fromRoute('chat/send', ['id' => $user->uuid]),
355
                        'url_upload'                => $this->url()->fromRoute('chat/upload', ['id' => $user->uuid]),
361
                        'url_upload'                => $this->url()->fromRoute('chat/upload', ['id' => $user->uuid]),
356
                        'url_mark_seen'             => $this->url()->fromRoute('chat/mark-seen', ['id' => $user->uuid]),
362
                        'url_mark_seen'             => $this->url()->fromRoute('chat/mark-seen', ['id' => $user->uuid]),
Línea 867... Línea 873...
867
            return [
873
            return [
868
                'success' => false,
874
                'success' => false,
869
                'data' => 'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
875
                'data' => 'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
870
            ];
876
            ];
871
        }
877
        }
872
        
878
 
873
        $chatGroupUserMapper->markIsOpen($chatGroupUser->group_id, $chatGroupUser->user_id);
-
 
874
    
-
 
875
        
-
 
876
        $chatGroupMessageMapper = ChatGroupMessageMapper::getInstance($this->adapter);
879
        $chatGroupMessageMapper = ChatGroupMessageMapper::getInstance($this->adapter);
877
        $paginator = $chatGroupMessageMapper->getPaginatorByGroupId($chatGroup->id, $page);
880
        $paginator = $chatGroupMessageMapper->getPaginatorByGroupId($chatGroup->id, $page);
Línea 878... Línea 881...
878
        
881
        
879
        $pages = $paginator->count();
882
        $pages = $paginator->count();
Línea 941... Línea 944...
941
     */
944
     */
942
    private function getAllMessagesForChatUser($chatUser, $page = 0)
945
    private function getAllMessagesForChatUser($chatUser, $page = 0)
943
    {
946
    {
944
        $currentUserPlugin = $this->plugin('currentUserPlugin');
947
        $currentUserPlugin = $this->plugin('currentUserPlugin');
945
        $currentUser = $currentUserPlugin->getUser();
948
        $currentUser = $currentUserPlugin->getUser();
946
        $chatUserMapper = ChatUserMapper::getInstance($this->adapter)  ;
-
 
947
        
949
 
948
        if($currentUser->id == $chatUser->user_id1) {
-
 
949
            $chatUserMapper->markIsOpen1($currentUser->id);
-
 
950
        } else {
-
 
951
            $chatUserMapper->markIsOpen2($currentUser->id);
-
 
952
        }
-
 
953
        
950
 
954
        $chatMessageMapper = ChatMessageMapper::getInstance($this->adapter);
951
        $chatMessageMapper = ChatMessageMapper::getInstance($this->adapter);
955
        $paginator = $chatMessageMapper->getAllMessagesPaginatorByChatId($chatUser->id, $page);
952
        $paginator = $chatMessageMapper->getAllMessagesPaginatorByChatId($chatUser->id, $page);
956
        $pages = $paginator->count();
953
        $pages = $paginator->count();
957
        $page = $paginator->getCurrentPageNumber();
954
        $page = $paginator->getCurrentPageNumber();
Línea 1790... Línea 1787...
1790
            
1787
            
1791
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
1788
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
1792
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
1789
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
1793
            if ($chatGroup) {
1790
            if ($chatGroup) {
-
 
1791
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
-
 
1792
                $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
-
 
1793
                
-
 
1794
                if(!$chatGroupUser) {
-
 
1795
                    return new JsonModel([
-
 
1796
                        'success' => false,
-
 
1797
                        'data' =>  'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
-
 
1798
                    ]);
-
 
1799
                }
1794
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
1800
                
1795
                $chatGroupUserMapper->markIsClose($chatGroup->id, $currentUser->id);
1801
                $chatGroupUserMapper->markIsClose($chatGroup->id, $currentUser->id);
Línea 1796... Línea 1802...
1796
            } else {
1802
            } else {
1797
                
1803
                
Línea 1869... Línea 1875...
1869
            
1875
            
1870
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
1876
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
1871
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
1877
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
1872
            if ($chatGroup) {
1878
            if ($chatGroup) {
-
 
1879
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
-
 
1880
                $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
-
 
1881
                
-
 
1882
                if(!$chatGroupUser) {
-
 
1883
                    return new JsonModel([
-
 
1884
                        'success' => false,
-
 
1885
                        'data' =>  'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
-
 
1886
                    ]);
-
 
1887
                }
1873
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
1888
                
1874
                $chatGroupUserMapper->markIsClose($chatGroup->id, $currentUser->id);
1889
                $chatGroupUserMapper->markIsClose($chatGroup->id, $currentUser->id);
Línea 1875... Línea 1890...
1875
            } else {
1890
            } else {
1876
                
1891
                
Línea 1907... Línea 1922...
1907
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1922
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1908
            ]);
1923
            ]);
1909
        }
1924
        }
1910
    }
1925
    }
Línea -... Línea 1926...
-
 
1926
    
-
 
1927
    /**
-
 
1928
     * Marca como abierto el caht
-
 
1929
     * 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.
-
 
1930
     * Parámetros del route
-
 
1931
     * :id = id del usuario encriptado
-
 
1932
     * En caso de una respuesta positiva
-
 
1933
     * [
-
 
1934
     *      'success' => true,
-
 
1935
     *      'data'=> (int) registros_borrados
-
 
1936
     * ]
-
 
1937
     * En caso de un respuesta negativa
-
 
1938
     * [
-
 
1939
     *      'success' => false,
-
 
1940
     *      'data' => (string) 'mensaje_de_error'
-
 
1941
     * ]
-
 
1942
     * @return \Laminas\View\Model\JsonModel
-
 
1943
     */
-
 
1944
    public function openAction()
-
 
1945
    {
-
 
1946
        $request    = $this->getRequest();
-
 
1947
        if($request->isPost()) {
-
 
1948
            $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
1949
            $currentUser = $currentUserPlugin->getUser();
-
 
1950
            
-
 
1951
            $id = filter_var($this->params()->fromRoute('id'), FILTER_SANITIZE_STRING);
-
 
1952
            
-
 
1953
            if (!$id) {
-
 
1954
                return new JsonModel([
-
 
1955
                    'success' => false,
-
 
1956
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
-
 
1957
                ]);
-
 
1958
            }
-
 
1959
            
-
 
1960
            
-
 
1961
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
-
 
1962
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
-
 
1963
            if ($chatGroup) {
-
 
1964
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
-
 
1965
                $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
-
 
1966
                
-
 
1967
                if(!$chatGroupUser) {
-
 
1968
                    return new JsonModel([
-
 
1969
                        'success' => false,
-
 
1970
                        'data' =>  'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
-
 
1971
                    ]);
-
 
1972
                }
-
 
1973
                
-
 
1974
                $chatGroupUserMapper->markIsOpen($chatGroup->id, $currentUser->id);
-
 
1975
            } else {
-
 
1976
                
-
 
1977
                $userMapper = UserMapper::getInstance($this->adapter);
-
 
1978
                $user = $userMapper->fetchOneByUuid($id);
-
 
1979
                if(!$user) {
-
 
1980
                    return new JsonModel([
-
 
1981
                        'success' => false,
-
 
1982
                        'data' => 'ERROR_USER_NOT_FOUND'
-
 
1983
                    ]);
-
 
1984
                }
-
 
1985
                
-
 
1986
                
-
 
1987
                $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
-
 
1988
                $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
-
 
1989
                if($chatUser) {
-
 
1990
                    if($currentUser->id == $chatUser->user_id1) {
-
 
1991
                        $chatUserMapper->markIsOpen1($chatUser->id);
-
 
1992
                    } else {
-
 
1993
                        $chatUserMapper->markIsOpen2($chatUser->id);
-
 
1994
                    }
-
 
1995
                    
-
 
1996
                }
-
 
1997
            }
-
 
1998
            
-
 
1999
            
-
 
2000
            $userMapper->updateLastActivity($currentUser->id);
-
 
2001
            
-
 
2002
            return new JsonModel([
-
 
2003
                'success' => true
-
 
2004
            ]);
-
 
2005
        } else {
-
 
2006
            return new JsonModel([
-
 
2007
                'success' => false,
-
 
2008
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
2009
            ]);
-
 
2010
        }
-
 
2011
    }
1911
    
2012
    
1912
    public function uploadAction()
2013
    public function uploadAction()
1913
    {
2014
    {
1914
        $request    = $this->getRequest();
2015
        $request    = $this->getRequest();
1915
        if($request->isPost()) {
2016
        if($request->isPost()) {
Línea 2470... Línea 2571...
2470
        }
2571
        }
Línea 2471... Línea 2572...
2471
 
2572
 
2472
        return ($diff->s) > 15 ? true : false;
2573
        return ($diff->s) > 15 ? true : false;
Línea 2473... Línea -...
2473
    }
-
 
2474
    
-
 
2475
    public function csrfAction()
-
 
2476
    {
-
 
2477
        $request = $this->getRequest();
-
 
2478
        if($request->isGet()) {
-
 
2479
            
-
 
2480
            $token = md5(uniqid('CSFR-' . mt_rand(), true));
2574
    }
2481
            $_SESSION['token'] = $token;
-
 
2482
            
-
 
2483
            
-
 
2484
            return new JsonModel([
-
 
2485
                'success' => true,
-
 
2486
                'data' => $token
-
 
2487
            ]);
-
 
2488
        
-
 
2489
        
-
 
2490
        } else {
-
 
2491
            return new JsonModel([
-
 
2492
                'success' => false,
-
 
2493
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
2494
            ]);
-
 
2495
        }
-
 
2496
        
-
 
2497
        
2575