Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev 5318 Rev 5343
Línea 34... Línea 34...
34
use LeadersLinked\Model\ZoomMeetingUser;
34
use LeadersLinked\Model\ZoomMeetingUser;
35
use LeadersLinked\Model\CalendarEvent;
35
use LeadersLinked\Model\CalendarEvent;
36
use LeadersLinked\Mapper\CalendarEventMapper;
36
use LeadersLinked\Mapper\CalendarEventMapper;
37
use LeadersLinked\Mapper\ZoomMeetingUserMapper;
37
use LeadersLinked\Mapper\ZoomMeetingUserMapper;
38
use LeadersLinked\Mapper\QueryMapper;
38
use LeadersLinked\Mapper\QueryMapper;
-
 
39
use Google\Service\Directory\UserEmail;
-
 
40
use LeadersLinked\Model\User;
Línea 39... Línea 41...
39
 
41
 
40
 
42
 
Línea 1533... Línea 1535...
1533
            ]);
1535
            ]);
1534
        }
1536
        }
Línea 1535... Línea 1537...
1535
 
1537
 
Línea -... Línea 1538...
-
 
1538
    }
-
 
1539
    
1536
    }
1540
    
1537
    
1541
    
1538
    /**
1542
    /**
1539
     * Esta función recuperar los contactos disponibles para agregarlos a un grupo
1543
     * Esta función recuperar los contactos disponibles para agregarlos a un grupo
1540
     * 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.
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.
Línea 2107... Línea 2111...
2107
     *      'success' => false,
2111
     *      'success' => false,
2108
     *      'data' => (string) 'mensaje_de_error'
2112
     *      'data' => (string) 'mensaje_de_error'
2109
     * ]
2113
     * ]
2110
     * @return \Laminas\View\Model\JsonModel
2114
     * @return \Laminas\View\Model\JsonModel
2111
     */
2115
     */
-
 
2116
    public function openOrCreateAction()
-
 
2117
    {
-
 
2118
        $request    = $this->getRequest();
-
 
2119
        if($request->isPost()) {
-
 
2120
            $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
2121
            $currentUser = $currentUserPlugin->getUser();
-
 
2122
            
-
 
2123
            $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
-
 
2124
            $currentNetwork = $currentNetworkPlugin->getNetwork();
-
 
2125
            
-
 
2126
            
-
 
2127
            $id = filter_var($this->params()->fromRoute('id'), FILTER_SANITIZE_STRING);
-
 
2128
            
-
 
2129
            if (!$id) {
-
 
2130
                return new JsonModel([
-
 
2131
                    'success' => false,
-
 
2132
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
-
 
2133
                ]);
-
 
2134
            }
-
 
2135
            
-
 
2136
            $userMapper = UserMapper::getInstance($this->adapter);
-
 
2137
            $user = $userMapper->fetchOneByUuid($id);
-
 
2138
            
-
 
2139
            if(!$user) {
-
 
2140
                return new JsonModel([
-
 
2141
                    'success' => false,
-
 
2142
                    'data' => 'ERROR_USER_NOT_FOUND'
-
 
2143
                ]);
-
 
2144
            }
-
 
2145
            
-
 
2146
            if($user->email_verified == User::EMAIL_VERIFIED_NO || $user->status != User::STATUS_ACTIVE) {
-
 
2147
                return new JsonModel([
-
 
2148
                    'success' => false,
-
 
2149
                    'data' => 'ERROR_USER_IS_INACTIVE'
-
 
2150
                ]);
-
 
2151
            }
-
 
2152
            
-
 
2153
            if($user->network_id != $currentUser->network_id) {
-
 
2154
                return new JsonModel([
-
 
2155
                    'success' => false,
-
 
2156
                    'data' => 'ERROR_USER_IS_INACTIVE'
-
 
2157
                ]);
-
 
2158
            }
-
 
2159
            
-
 
2160
            if($currentNetwork->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER)  {
-
 
2161
                
-
 
2162
                $connectionMapper = ConnectionMapper::getInstance($this->adapter);
-
 
2163
                $connection = $connectionMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
-
 
2164
                
-
 
2165
                if(!$connection) {
-
 
2166
                    return new JsonModel([
-
 
2167
                        'success' => false,
-
 
2168
                        'data' =>  'ERROR_CONNECTION_NOT_ACTIVE'
-
 
2169
                    ]);
-
 
2170
                }
-
 
2171
            } 
-
 
2172
            
-
 
2173
            $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
-
 
2174
            $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
-
 
2175
            if($chatUser) {
-
 
2176
                if($currentUser->id == $chatUser->user_id1) {
-
 
2177
                    $chatUserMapper->markIsOpen1($chatUser->id);
-
 
2178
                } else {
-
 
2179
                    $chatUserMapper->markIsOpen2($chatUser->id);
-
 
2180
                }
-
 
2181
                
-
 
2182
            } else {
-
 
2183
                $chatUser = new ChatUser();
-
 
2184
                $chatUser->user_id1 = $currentUser->id;
-
 
2185
                $chatUser->user_id2 = $user->id;
-
 
2186
                $chatUser->user_open1 = ChatUser::OPEN_YES;
-
 
2187
                $chatUser->user_open2 = ChatUser::OPEN_NO;
-
 
2188
                
-
 
2189
                
-
 
2190
                if(!$chatUserMapper->insert($chatUser)) {
-
 
2191
                    return new JsonModel([
-
 
2192
                        'success' => false,
-
 
2193
                        'data' =>  $chatUserMapper->getError()
-
 
2194
                    ]);
-
 
2195
                }
-
 
2196
                
-
 
2197
            }
-
 
2198
            
-
 
2199
            $utilMapper = UtilMapper::getInstance($this->adapter);
-
 
2200
            $now = $utilMapper->getDatebaseNow();
-
 
2201
            
-
 
2202
            $chatMessageMapper = ChatMessageMapper::getInstance($this->adapter);
-
 
2203
            $count_not_received_messages = $chatMessageMapper->countNotReceivedMessagesByChatIdAndToId($chatUser->id, $currentUser->id);
-
 
2204
            $count_not_seen_messages = $chatMessageMapper->countNotSeenMessagesByChatIdAndToId($chatUser->id, $currentUser->id);
-
 
2205
            $lastMessage = $chatMessageMapper->fetchLastMessage($chatUser->id, $currentUser->id);
-
 
2206
            
-
 
2207
            if($lastMessage) {
-
 
2208
                $lastMessage = Functions::timeAgo($lastMessage->added_on, $now);
-
 
2209
            } else {
-
 
2210
                $lastMessage = '';
-
 
2211
            }
-
 
2212
            
-
 
2213
            if($currentUser->id == $chatUser->user_id1) {
-
 
2214
                $is_open = $chatUser->user_open1 == ChatUser::OPEN_YES;
-
 
2215
            } else {
-
 
2216
                $is_open = $chatUser->user_open2 == ChatUser::OPEN_YES;
-
 
2217
            }
-
 
2218
            
-
 
2219
            
-
 
2220
            $not_received_messages = $count_not_received_messages > 0;
-
 
2221
            $not_seen_messages = $count_not_seen_messages > 0;
-
 
2222
            
-
 
2223
            $data = [ 
-
 
2224
                'url_clear'                 => $this->url()->fromRoute('chat/clear', ['id' => $user->uuid]),
-
 
2225
                'url_close'                 => $this->url()->fromRoute('chat/close', ['id' => $user->uuid]),
-
 
2226
                'url_open'                  => $this->url()->fromRoute('chat/open', ['id' => $user->uuid]),
-
 
2227
                'url_send'                  => $this->url()->fromRoute('chat/send', ['id' => $user->uuid]),
-
 
2228
                'url_upload'                => $this->url()->fromRoute('chat/upload', ['id' => $user->uuid]),
-
 
2229
                'url_mark_seen'             => $this->url()->fromRoute('chat/mark-seen', ['id' => $user->uuid]),
-
 
2230
                'url_mark_received'         => $this->url()->fromRoute('chat/mark-received', ['id' => $user->uuid]),
-
 
2231
                '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']),
-
 
2233
                'id'                        => $user->uuid,
-
 
2234
                'name'                      => trim($user->first_name . ' ' . $user->last_name),
-
 
2235
                'image'                     => $this->url()->fromRoute('storage', ['code' => $user->uuid, 'type' => 'user', 'filename' => $user->image]),
-
 
2236
                'profile'                   => $this->url()->fromRoute('profile/view', ['id' =>$user->uuid]),
-
 
2237
                'type'                      => 'user',
-
 
2238
                'online'                    => $user->online ? 1 : 0,
-
 
2239
                'is_open'                   => $is_open ? 1 : 0,
-
 
2240
                'not_seen_messages'         => $not_seen_messages,
-
 
2241
                'not_received_messages'     => $not_received_messages,
-
 
2242
                'count_not_seen_messages'       => $count_not_seen_messages,
-
 
2243
                'count_not_received_messages'   => $count_not_received_messages,
-
 
2244
                'last_message'                  => $lastMessage 
-
 
2245
           ];     
-
 
2246
            
-
 
2247
            
-
 
2248
            
-
 
2249
            $userMapper->updateLastActivity($currentUser->id);
-
 
2250
            
-
 
2251
            return new JsonModel([
-
 
2252
                'success' => true, 
-
 
2253
                'data' => $data,
-
 
2254
            ]);
-
 
2255
        
-
 
2256
        } else {
-
 
2257
            return new JsonModel([
-
 
2258
                'success' => false,
-
 
2259
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
2260
            ]);
-
 
2261
        }
-
 
2262
    }
-
 
2263
    
-
 
2264
    
-
 
2265
    /**
-
 
2266
     * 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.
-
 
2268
     * Parámetros del route
-
 
2269
     * :id = id del usuario encriptado
-
 
2270
     * En caso de una respuesta positiva
-
 
2271
     * [
-
 
2272
     *      'success' => true,
-
 
2273
     *      'data'=> (int) registros_borrados
-
 
2274
     * ]
-
 
2275
     * En caso de un respuesta negativa
-
 
2276
     * [
-
 
2277
     *      'success' => false,
-
 
2278
     *      'data' => (string) 'mensaje_de_error'
-
 
2279
     * ]
-
 
2280
     * @return \Laminas\View\Model\JsonModel
-
 
2281
     */
2112
    public function openAction()
2282
    public function openAction()
2113
    {
2283
    {
2114
        $request    = $this->getRequest();
2284
        $request    = $this->getRequest();
2115
        if($request->isPost()) {
2285
        if($request->isPost()) {
2116
            $currentUserPlugin = $this->plugin('currentUserPlugin');
2286
            $currentUserPlugin = $this->plugin('currentUserPlugin');
Línea 2625... Línea 2795...
2625
        $request = $this->getRequest();
2795
        $request = $this->getRequest();
2626
        if($request->isGet()) {
2796
        if($request->isGet()) {
Línea 2627... Línea 2797...
2627
            
2797
            
Línea -... Línea 2798...
-
 
2798
            $items = [];
-
 
2799
            
Línea 2628... Línea 2800...
2628
            $items = [];
2800
            $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
2629
            
2801
            
2630
            
2802
            
Línea 2650... Línea 2822...
2650
                        $user_ids = $userMapper->fetchAllIdsByNonDefaultNetworkId($currentNetwork->id, $currentUser->id);
2822
                        $user_ids = $userMapper->fetchAllIdsByNonDefaultNetworkId($currentNetwork->id, $currentUser->id);
2651
                    }
2823
                    }
Línea 2652... Línea 2824...
2652
                    
2824
                    
Línea -... Línea 2825...
-
 
2825
                }
Línea 2653... Línea 2826...
2653
                }
2826
                
2654
                
2827
 
Línea 2655... Línea 2828...
2655
                
2828
                
2656
                $items = [];
2829
                $items = [];
-
 
2830
                $records = $userMapper->fetchAllByIdsAndSearch($user_ids, $search, $currentUser->id);
-
 
2831
                
-
 
2832
                foreach($records as $record)
-
 
2833
                {
-
 
2834
                    $chatUser = $chatUserMapper->fetchOneByUserId1AndUserId2($currentUser->id, $record->id);
-
 
2835
                    if($chatUser) {
-
 
2836
                        $link_send = $this->url()->fromRoute('chat/send', ['id' => $record->uuid]);
-
 
2837
                        
-
 
2838
                        
-
 
2839
                    } else {
-
 
2840
                        $link_send = '';
-
 
2841
                    }
-
 
2842
                    
-
 
2843
                    $link_open_or_create = $this->url()->fromRoute('chat/open-or-create', ['id' => $record->uuid]);
-
 
2844
                    
2657
                $records = $userMapper->fetchAllByIdsAndSearch($user_ids, $search, $currentUser->id);
2845
                    
-
 
2846
                    
-
 
2847
                    
-
 
2848
                    array_push($items, [
-
 
2849
                        'name'  => trim($record->first_name .  '  ' . $record->last_name) . ' (' . $record->email . ')',
2658
                
2850
                        'image' => $this->url()->fromRoute('storage', ['code' => $record->uuid, 'type' => 'user', 'filename' => $record->image]),
Línea 2659... Línea 2851...
2659
                foreach($records as $record)
2851
                        'link_send' => $link_send,