Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev 3117 Rev 3121
Línea 155... Línea 155...
155
     *       'url_delete'                               => 'url para borrar el grupo si es el propietario',
155
     *       'url_delete'                               => 'url para borrar el grupo si es el propietario',
156
     *       'url_add_user_to_group'                    => 'url para agregar un usuario al grupo si es el propietario',
156
     *       'url_add_user_to_group'                    => 'url para agregar un usuario al grupo si es el propietario',
157
     *       'url_get_contacts_availables_for_group'    => 'url para obtener los usuarios disponibles para agregarlos al grupo',
157
     *       'url_get_contacts_availables_for_group'    => 'url para obtener los usuarios disponibles para agregarlos al grupo',
158
     *       'url_get_contact_group_list'               => 'url para obtener los usuarios del grupo si es el propietario',
158
     *       'url_get_contact_group_list'               => 'url para obtener los usuarios del grupo si es el propietario',
159
     *       'url_clear'                                => 'url para limpiar los mensajes del grupo',
159
     *       'url_clear'                                => 'url para limpiar los mensajes del grupo',
160
     *       'url_close'                                => 'url para cerrar el chat',
160
     *       'url_close'                                => 'url para marcar como cerrado el chat',
-
 
161
     *       'url_open'                                 => 'url para marcar como abierto el chat',
161
     *       'url_send'                                 => 'url para enviar un mensaje',
162
     *       'url_send'                                 => 'url para enviar un mensaje',
162
     *       'url_upload'                               => 'url para subir un archivo, imagen o video',
163
     *       'url_upload'                               => 'url para subir un archivo, imagen o video',
163
     *       'url_get_all_messages'                     => 'url para para obtener los mensajes',
164
     *       'url_get_all_messages'                     => 'url para para obtener los mensajes',
164
     *       'url_mark_seen'                            => 'url para marcar los mensajes como vistos'
165
     *       'url_mark_seen'                            => 'url para marcar los mensajes como vistos'
165
     *       'url_mark_received'                        => 'url para marcar los mensajes como recibios'
166
     *       'url_mark_received'                        => 'url para marcar los mensajes como recibios'
Línea 173... Línea 174...
173
     *       'count_not_received_messages' => 'cantidad de mensajes no recibidos',
174
     *       'count_not_received_messages' => 'cantidad de mensajes no recibidos',
174
     *       'last_message'                => 'tiempo desde el ultimo mensaje',
175
     *       'last_message'                => 'tiempo desde el ultimo mensaje',
175
     *      ],
176
     *      ],
176
     *      [
177
     *      [
177
     *        'url_clear'               => 'url para limpiar los mensajes del grupo',
178
     *        'url_clear'               => 'url para limpiar los mensajes del grupo',
178
     *        'url_close'               => 'url para cerrar el chat',
179
     *        'url_close'               => 'url para marcar como cerrado el chat',
-
 
180
     *        'url_open'                => 'url para marcar como abierto el chat',
179
     *        'url_send'                => 'url para enviar un mensaje',
181
     *        'url_send'                => 'url para enviar un mensaje',
180
     *        'url_upload'              => 'url para subir un archivo, imagen o video',
182
     *        'url_upload'              => 'url para subir un archivo, imagen o video',
181
     *        'url_get_all_messages'    => 'url para para obtener los mensajes',
183
     *        'url_get_all_messages'    => 'url para para obtener los mensajes',
182
     *        'url_mark_seen'                            => 'url para marcar los mensajes como vistos'
184
     *        'url_mark_seen'           => 'url para marcar los mensajes como vistos'
183
     *        'url_mark_received'                        => 'url para marcar los mensajes como recibios'
185
     *        'url_mark_received'       => 'url para marcar los mensajes como recibios'
184
     *        'id'                      => 'id del usuario encriptado',
186
     *        'id'                      => 'id del usuario encriptado',
185
     *        'name'                    => 'nombre del usuario',
187
     *        'name'                    => 'nombre del usuario',
186
     *        'image'                   => 'imagen del usuario',
188
     *        'image'                   => 'imagen del usuario',
187
     *        'type'                    => 'user' //fixed,
189
     *        'type'                    => 'user' //fixed,
188
     *        'profile'                 => 'url del profile',
190
     *        'profile'                 => 'url del profile',
Línea 271... Línea 273...
271
                            'url_add_user_to_group'                 => $this->url()->fromRoute('chat/add-user-to-group', ['group_id' => $chatGroup->uuid]),
273
                            'url_add_user_to_group'                 => $this->url()->fromRoute('chat/add-user-to-group', ['group_id' => $chatGroup->uuid]),
272
                            'url_get_contact_group_list'            => $this->url()->fromRoute('chat/get-contact-group-list', ['group_id' => $chatGroup->uuid]),
274
                            'url_get_contact_group_list'            => $this->url()->fromRoute('chat/get-contact-group-list', ['group_id' => $chatGroup->uuid]),
273
                            'url_get_contacts_availables_for_group' => $this->url()->fromRoute('chat/get-contacts-availables-for-group', ['group_id' => $chatGroup->uuid]),
275
                            'url_get_contacts_availables_for_group' => $this->url()->fromRoute('chat/get-contacts-availables-for-group', ['group_id' => $chatGroup->uuid]),
274
                            'url_clear'                             => $this->url()->fromRoute('chat/clear', ['id' => $chatGroup->uuid]),
276
                            'url_clear'                             => $this->url()->fromRoute('chat/clear', ['id' => $chatGroup->uuid]),
275
                            'url_close'                             => $this->url()->fromRoute('chat/close', ['id' => $chatGroup->uuid]),
277
                            'url_close'                             => $this->url()->fromRoute('chat/close', ['id' => $chatGroup->uuid]),
-
 
278
                            'url_open'                              => $this->url()->fromRoute('chat/open', ['id' => $chatGroup->uuid]),
276
                            'url_send'                              => $this->url()->fromRoute('chat/send', ['id' => $chatGroup->uuid]),
279
                            'url_send'                              => $this->url()->fromRoute('chat/send', ['id' => $chatGroup->uuid]),
277
                            'url_upload'                            => $this->url()->fromRoute('chat/upload', ['id' => $chatGroup->uuid]),
280
                            'url_upload'                            => $this->url()->fromRoute('chat/upload', ['id' => $chatGroup->uuid]),
278
                            'url_get_all_messages'                  => $this->url()->fromRoute('chat/get-all-messages', ['id' => $chatGroup->uuid]),
281
                            'url_get_all_messages'                  => $this->url()->fromRoute('chat/get-all-messages', ['id' => $chatGroup->uuid]),
279
                            'url_mark_seen'                         => $this->url()->fromRoute('chat/mark-seen', ['id' => $chatGroup->uuid]),
282
                            'url_mark_seen'                         => $this->url()->fromRoute('chat/mark-seen', ['id' => $chatGroup->uuid]),
280
                            'url_mark_received'                     => $this->url()->fromRoute('chat/mark-received', ['id' => $chatGroup->uuid]),
283
                            'url_mark_received'                     => $this->url()->fromRoute('chat/mark-received', ['id' => $chatGroup->uuid]),
Línea 296... Línea 299...
296
                            'url_add_user_to_group'         => '',
299
                            'url_add_user_to_group'         => '',
297
                            'url_get_contact_group_list'    => $this->url()->fromRoute('chat/get-contact-group-list', ['group_id' => $chatGroup->uuid]),
300
                            'url_get_contact_group_list'    => $this->url()->fromRoute('chat/get-contact-group-list', ['group_id' => $chatGroup->uuid]),
298
                            'url_leave'                     => $this->url()->fromRoute('chat/leave-group', ['group_id' => $chatGroup->uuid]),
301
                            'url_leave'                     => $this->url()->fromRoute('chat/leave-group', ['group_id' => $chatGroup->uuid]),
299
                            'url_clear'                     => $this->url()->fromRoute('chat/clear', ['id' => $chatGroup->uuid]),
302
                            'url_clear'                     => $this->url()->fromRoute('chat/clear', ['id' => $chatGroup->uuid]),
300
                            'url_close'                     => $this->url()->fromRoute('chat/close', ['id' => $chatGroup->uuid]),
303
                            'url_close'                     => $this->url()->fromRoute('chat/close', ['id' => $chatGroup->uuid]),
-
 
304
                            'url_open'                      => $this->url()->fromRoute('chat/open', ['id' => $chatGroup->uuid]),
301
                            'url_send'                      => $this->url()->fromRoute('chat/send', ['id' => $chatGroup->uuid]),
305
                            'url_send'                      => $this->url()->fromRoute('chat/send', ['id' => $chatGroup->uuid]),
302
                            'url_upload'                    => $this->url()->fromRoute('chat/upload', ['id' => $chatGroup->uuid]),
306
                            'url_upload'                    => $this->url()->fromRoute('chat/upload', ['id' => $chatGroup->uuid]),
303
                            'url_get_all_messages'          => $this->url()->fromRoute('chat/get-all-messages', ['id' => $chatGroup->uuid]),
307
                            'url_get_all_messages'          => $this->url()->fromRoute('chat/get-all-messages', ['id' => $chatGroup->uuid]),
304
                            'url_mark_seen'                 => $this->url()->fromRoute('chat/mark-seen', ['id' => $chatGroup->uuid]),
308
                            'url_mark_seen'                 => $this->url()->fromRoute('chat/mark-seen', ['id' => $chatGroup->uuid]),
305
                            'url_mark_received'             => $this->url()->fromRoute('chat/mark-received', ['id' => $chatGroup->uuid]),
309
                            'url_mark_received'             => $this->url()->fromRoute('chat/mark-received', ['id' => $chatGroup->uuid]),
Línea 373... Línea 377...
373
 
377
 
374
                    
378
                    
375
                    $chat = [
379
                    $chat = [
-
 
380
                        'url_clear'                 => $this->url()->fromRoute('chat/clear', ['id' => $user->uuid]),
376
                        'url_clear'                 => $this->url()->fromRoute('chat/clear', ['id' => $user->uuid]),
381
                        'url_close'                 => $this->url()->fromRoute('chat/close', ['id' => $user->uuid]),
377
                        'url_close'                 => $this->url()->fromRoute('chat/close', ['id' => $user->uuid]),
382
                        'url_open'                  => $this->url()->fromRoute('chat/open', ['id' => $user->uuid]),
378
                        'url_send'                  => $this->url()->fromRoute('chat/send', ['id' => $user->uuid]),
383
                        'url_send'                  => $this->url()->fromRoute('chat/send', ['id' => $user->uuid]),
379
                        'url_upload'                => $this->url()->fromRoute('chat/upload', ['id' => $user->uuid]),
384
                        'url_upload'                => $this->url()->fromRoute('chat/upload', ['id' => $user->uuid]),
380
                        'url_mark_seen'             => $this->url()->fromRoute('chat/mark-seen', ['id' => $user->uuid]),
385
                        'url_mark_seen'             => $this->url()->fromRoute('chat/mark-seen', ['id' => $user->uuid]),
Línea 892... Línea 897...
892
                'success' => false,
897
                'success' => false,
893
                'data' => 'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
898
                'data' => 'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
894
            ];
899
            ];
895
        }
900
        }
Línea 896... Línea -...
896
        
-
 
897
        $chatGroupUserMapper->markIsOpen($chatGroupUser->group_id, $chatGroupUser->user_id);
901
        
Línea 898... Línea 902...
898
        
902
 
899
        
903
        
Línea 900... Línea 904...
900
        $chatGroupMessageMapper = ChatGroupMessageMapper::getInstance($this->adapter);
904
        $chatGroupMessageMapper = ChatGroupMessageMapper::getInstance($this->adapter);
Línea 968... Línea 972...
968
    private function getAllMessagesForChatUser($chatUser, $page = 0)
972
    private function getAllMessagesForChatUser($chatUser, $page = 0)
969
    {
973
    {
970
        $currentUserPlugin = $this->plugin('currentUserPlugin');
974
        $currentUserPlugin = $this->plugin('currentUserPlugin');
971
        $currentUser = $currentUserPlugin->getUser();
975
        $currentUser = $currentUserPlugin->getUser();
Línea 972... Línea -...
972
        
-
 
973
        $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
-
 
974
        if($currentUser->id == $chatUser->user_id1) {
-
 
975
            $chatUserMapper->markIsOpen1($chatUser->id);
-
 
976
        } else {
-
 
977
            $chatUserMapper->markIsOpen2($chatUser->id);
-
 
Línea 978... Línea 976...
978
        }
976
        
979
 
977
 
980
        $chatMessageMapper = ChatMessageMapper::getInstance($this->adapter);
978
        $chatMessageMapper = ChatMessageMapper::getInstance($this->adapter);
981
        $paginator = $chatMessageMapper->getAllMessagesPaginatorByChatId($chatUser->id, $page);
979
        $paginator = $chatMessageMapper->getAllMessagesPaginatorByChatId($chatUser->id, $page);
Línea 1176... Línea 1174...
1176
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1174
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1177
            ]);
1175
            ]);
1178
        }
1176
        }
Línea 1179... Línea 1177...
1179
 
1177
 
-
 
1178
    }
-
 
1179
    
Línea 1180... Línea 1180...
1180
    }
1180
 
1181
 
1181
 
1182
    /**
1182
    /**
1183
     * Envia un mensaje a un chat individual o grupal
1183
     * Envia un mensaje a un chat individual o grupal
Línea 1407... Línea 1407...
1407
                 ]); 
1407
                 ]); 
Línea 1408... Línea 1408...
1408
 
1408
 
Línea 1409... Línea -...
1409
                
-
 
1410
            }
-
 
1411
            
-
 
1412
            if($currentUser->id == $chatUser->user_id1) {
-
 
1413
                $chatUserMapper->markIsOpen2($chatUser->id);
1409
                
Línea 1414... Línea 1410...
1414
            } else {
1410
            }
Línea 1415... Línea 1411...
1415
                $chatUserMapper->markIsOpen1($chatUser->id);
1411
            
Línea 1821... Línea 1817...
1821
            
1817
            
1822
            
1818
            
1823
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
1819
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
1824
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
-
 
1825
            if ($chatGroup) {
1820
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
-
 
1821
            if ($chatGroup) {
-
 
1822
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
-
 
1823
                $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
-
 
1824
                
-
 
1825
                if(!$chatGroupUser) {
-
 
1826
                    return new JsonModel([
-
 
1827
                        'success' => false,
-
 
1828
                        'data' =>  'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
-
 
1829
                    ]);
1826
                
1830
                }
Línea 1827... Línea 1831...
1827
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
1831
                
Línea 1898... Línea 1902...
1898
                return new JsonModel([
1902
                return new JsonModel([
1899
                    'success' => false,
1903
                    'success' => false,
1900
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
1904
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
1901
                ]);
1905
                ]);
1902
            }
1906
            }
1903
            
1907
  
1904
            $uuid = '';
-
 
Línea 1905... Línea 1908...
1905
            
1908
            
1906
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
1909
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
1907
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
1910
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
1908
            if ($chatGroup) {
1911
            if ($chatGroup) {
-
 
1912
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
-
 
1913
                $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
-
 
1914
                
-
 
1915
                if(!$chatGroupUser) {
-
 
1916
                    return new JsonModel([
-
 
1917
                        'success' => false,
-
 
1918
                        'data' =>  'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
-
 
1919
                    ]);
-
 
1920
                }
1909
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
1921
                
1910
                $chatGroupUserMapper->markIsClose($chatGroup->id, $currentUser->id);
1922
                $chatGroupUserMapper->markIsClose($chatGroup->id, $currentUser->id);
Línea 1911... Línea 1923...
1911
            } else {
1923
            } else {
1912
                
1924
                
Línea 1936... Línea 1948...
1936
            $userMapper->updateLastActivity($currentUser->id);
1948
            $userMapper->updateLastActivity($currentUser->id);
Línea 1937... Línea 1949...
1937
            
1949
            
1938
            return new JsonModel([
1950
            return new JsonModel([
1939
                'success' => true
1951
                'success' => true
-
 
1952
            ]);
-
 
1953
        } else {
-
 
1954
            return new JsonModel([
-
 
1955
                'success' => false,
-
 
1956
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
1957
            ]);
-
 
1958
        }
-
 
1959
    }
-
 
1960
    
-
 
1961
    /**
-
 
1962
     * Marca como abierto el caht
-
 
1963
     * 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.
-
 
1964
     * Parámetros del route
-
 
1965
     * :id = id del usuario encriptado
-
 
1966
     * En caso de una respuesta positiva
-
 
1967
     * [
-
 
1968
     *      'success' => true,
-
 
1969
     *      'data'=> (int) registros_borrados
-
 
1970
     * ]
-
 
1971
     * En caso de un respuesta negativa
-
 
1972
     * [
-
 
1973
     *      'success' => false,
-
 
1974
     *      'data' => (string) 'mensaje_de_error'
-
 
1975
     * ]
-
 
1976
     * @return \Laminas\View\Model\JsonModel
-
 
1977
     */
-
 
1978
    public function openAction()
-
 
1979
    {
-
 
1980
        $request    = $this->getRequest();
-
 
1981
        if($request->isPost()) {
-
 
1982
            $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
1983
            $currentUser = $currentUserPlugin->getUser();
-
 
1984
            
-
 
1985
            $id = filter_var($this->params()->fromRoute('id'), FILTER_SANITIZE_STRING);
-
 
1986
            
-
 
1987
            if (!$id) {
-
 
1988
                return new JsonModel([
-
 
1989
                    'success' => false,
-
 
1990
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
-
 
1991
                ]);
-
 
1992
            }
-
 
1993
            
-
 
1994
            
-
 
1995
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
-
 
1996
            $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
-
 
1997
            if ($chatGroup) {
-
 
1998
                $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
-
 
1999
                $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
-
 
2000
                
-
 
2001
                if(!$chatGroupUser) {
-
 
2002
                    return new JsonModel([
-
 
2003
                        'success' => false,
-
 
2004
                        'data' =>  'ERROR_CHAT_GROUP_YOU_NOT_MEMBER'
-
 
2005
                    ]);
-
 
2006
                }
-
 
2007
                
-
 
2008
                $chatGroupUserMapper->markIsOpen($chatGroup->id, $currentUser->id);
-
 
2009
            } else {
-
 
2010
                
-
 
2011
                $userMapper = UserMapper::getInstance($this->adapter);
-
 
2012
                $user = $userMapper->fetchOneByUuid($id);
-
 
2013
                if(!$user) {
-
 
2014
                    return new JsonModel([
-
 
2015
                        'success' => false,
-
 
2016
                        'data' => 'ERROR_USER_NOT_FOUND'
-
 
2017
                    ]);
-
 
2018
                }
-
 
2019
                
-
 
2020
                
-
 
2021
                $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
-
 
2022
                $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
-
 
2023
                if($chatUser) {
-
 
2024
                    if($currentUser->id == $chatUser->user_id1) {
-
 
2025
                        $chatUserMapper->markIsOpen1($chatUser->id);
-
 
2026
                    } else {
-
 
2027
                        $chatUserMapper->markIsOpen2($chatUser->id);
-
 
2028
                    }
-
 
2029
                    
-
 
2030
                }
-
 
2031
            }
-
 
2032
            
-
 
2033
            
-
 
2034
            $userMapper->updateLastActivity($currentUser->id);
-
 
2035
            
-
 
2036
            return new JsonModel([
-
 
2037
                'success' => true
1940
            ]);
2038
            ]);
1941
        } else {
2039
        } else {
1942
            return new JsonModel([
2040
            return new JsonModel([
1943
                'success' => false,
2041
                'success' => false,
1944
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
2042
                'data' => 'ERROR_METHOD_NOT_ALLOWED'