Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev 4113 Rev 4131
Línea 24... Línea 24...
24
use LeadersLinked\Model\ChatUser;
24
use LeadersLinked\Model\ChatUser;
25
use LeadersLinked\Form\Chat\CreateGroupForm;
25
use LeadersLinked\Form\Chat\CreateGroupForm;
26
use LeadersLinked\Mapper\ChatGroupUserMapper;
26
use LeadersLinked\Mapper\ChatGroupUserMapper;
27
use LeadersLinked\Model\ChatGroupUser;
27
use LeadersLinked\Model\ChatGroupUser;
28
use LeadersLinked\Mapper\UtilMapper;
28
use LeadersLinked\Mapper\UtilMapper;
-
 
29
use LeadersLinked\Library\Zoom;
-
 
30
use LeadersLinked\Form\Chat\ZoomAddForm;
-
 
31
use LeadersLinked\Model\ZoomMeeting;
-
 
32
use LeadersLinked\Mapper\ZoomMeetingMapper;
-
 
33
use LeadersLinked\Model\ZoomMeetingUser;
-
 
34
use LeadersLinked\Model\CalendarEvent;
-
 
35
use LeadersLinked\Mapper\CalendarEventMapper;
-
 
36
use LeadersLinked\Mapper\ZoomMeetingUserMapper;
Línea 29... Línea 37...
29
 
37
 
30
 
38
 
Línea 277... Línea 285...
277
                            'url_send'                              => $this->url()->fromRoute('chat/send', ['id' => $chatGroup->uuid]),
285
                            'url_send'                              => $this->url()->fromRoute('chat/send', ['id' => $chatGroup->uuid]),
278
                            'url_upload'                            => $this->url()->fromRoute('chat/upload', ['id' => $chatGroup->uuid]),
286
                            'url_upload'                            => $this->url()->fromRoute('chat/upload', ['id' => $chatGroup->uuid]),
279
                            'url_get_all_messages'                  => $this->url()->fromRoute('chat/get-all-messages', ['id' => $chatGroup->uuid]),
287
                            'url_get_all_messages'                  => $this->url()->fromRoute('chat/get-all-messages', ['id' => $chatGroup->uuid]),
280
                            'url_mark_seen'                         => $this->url()->fromRoute('chat/mark-seen', ['id' => $chatGroup->uuid]),
288
                            'url_mark_seen'                         => $this->url()->fromRoute('chat/mark-seen', ['id' => $chatGroup->uuid]),
281
                            'url_mark_received'                     => $this->url()->fromRoute('chat/mark-received', ['id' => $chatGroup->uuid]),
289
                            'url_mark_received'                     => $this->url()->fromRoute('chat/mark-received', ['id' => $chatGroup->uuid]),
282
                            'url_mark_received'                     => $this->url()->fromRoute('chat/zoom', ['id' => $chatGroup->uuid, 'type' => 'chat']),
290
                            'url_zoom'                              => $this->url()->fromRoute('chat/zoom', ['id' => $chatGroup->uuid, 'type' => 'chat']),
283
                            'id'                                    => $chatGroup->uuid,
291
                            'id'                                    => $chatGroup->uuid,
284
                            'name'                                  => $chatGroup->name,
292
                            'name'                                  => $chatGroup->name,
285
                            'type'                                  => 'group',
293
                            'type'                                  => 'group',
286
                            'is_open'                               => $is_open ? 1 : 0,
294
                            'is_open'                               => $is_open ? 1 : 0,
287
                            'not_seen_messages'                     => $not_seen_messages,
295
                            'not_seen_messages'                     => $not_seen_messages,
Línea 2471... Línea 2479...
2471
            ];
2479
            ];
2472
        }
2480
        }
Línea 2473... Línea 2481...
2473
        
2481
        
2474
        return new JsonModel($response);
2482
        return new JsonModel($response);
-
 
2483
    }
-
 
2484
    
-
 
2485
    public function zoomAction()
-
 
2486
    {
-
 
2487
        $request = $this->getRequest();
-
 
2488
        if($request->isPost()) {
-
 
2489
            $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
2490
            $currentUser = $currentUserPlugin->getUser();
-
 
2491
            
-
 
2492
            $id = $this->params()->fromRoute('id');
-
 
2493
            
-
 
2494
            if (!$id) {
-
 
2495
                return new JsonModel([
-
 
2496
                    'success' => false,
-
 
2497
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
-
 
2498
                ]);
-
 
2499
            }
-
 
2500
            
-
 
2501
            $chatUserMapper = ChatUserMapper::getInstance($this->adapter);
-
 
2502
            $chatGroupMapper = ChatGroupMapper::getInstance($this->adapter);
-
 
2503
            
-
 
2504
            $chatUser = $chatUserMapper->fetchOneByUuid($id);
-
 
2505
            
-
 
2506
            if($chatUser) {
-
 
2507
                
-
 
2508
                if($chatUser->user_id1 != $currentUser->id && $chatUser->user_id2 != $currentUser->id) {
-
 
2509
                    $data = [
-
 
2510
                        'success' => false,
-
 
2511
                        'data' =>  'ERROR_ZOOM_CHAT_UNAUTHORIZE'
-
 
2512
                    ];
-
 
2513
                    
-
 
2514
                    
-
 
2515
                    return new JsonModel($data);
-
 
2516
                }
-
 
2517
            } else {
-
 
2518
                $chatGroup = $chatGroupMapper->fetchOneByUuid($id);
-
 
2519
                
-
 
2520
                if($chatGroup) {
-
 
2521
                    $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
-
 
2522
                    $chatGroupUser = $chatGroupUserMapper->fetchOneByGroupIdAndUserId($chatGroup->id, $currentUser->id);
-
 
2523
                    
-
 
2524
                    if(!$chatGroupUser) {
-
 
2525
                        $data = [
-
 
2526
                            'success' => false,
-
 
2527
                            'data' =>  'ERROR_ZOOM_CHAT_UNAUTHORIZE'
-
 
2528
                        ];
-
 
2529
                        
-
 
2530
                        
-
 
2531
                        return new JsonModel($data);
-
 
2532
                    }
-
 
2533
                    
-
 
2534
                }
-
 
2535
            }
-
 
2536
            
-
 
2537
            
-
 
2538
            
-
 
2539
            
-
 
2540
            if(!$chatUser && !$chatGroup) {
-
 
2541
                $data = [
-
 
2542
                    'success' => false,
-
 
2543
                    'data' => 'ERROR_ZOOM_CHAT_NOT_FOUND'
-
 
2544
                ];
-
 
2545
                
-
 
2546
                
-
 
2547
                return new JsonModel($data);
-
 
2548
            }
-
 
2549
            
-
 
2550
            $dataPost = $request->getPost()->toArray();
-
 
2551
            $form = new ZoomAddForm();
-
 
2552
            $form->setData($dataPost);
-
 
2553
            if($form->isValid()) {
-
 
2554
                
-
 
2555
                $dataPost = (array) $form->getData();
-
 
2556
 
-
 
2557
              
-
 
2558
                $dtStart = \DateTime::createFromFormat('Y-m-d H:i:s',$dataPost['date'] . ' ' . $dataPost['time']);
-
 
2559
                if(!$dtStart) {
-
 
2560
                    return new JsonModel([
-
 
2561
                        'success' => false,
-
 
2562
                        'data' => 'ERROR_PARAMETERS_ARE_INVALID'
-
 
2563
                    ]);
-
 
2564
                }
-
 
2565
                
-
 
2566
        
-
 
2567
                
-
 
2568
                $dtEnd = \DateTime::createFromFormat('Y-m-d H:i:s',$dataPost['date'] . ' ' . $dataPost['time']);
-
 
2569
                $dtEnd->add(new \DateInterval('PT' . $dataPost['duration'] . 'M'));
-
 
2570
                
-
 
2571
                $start_time = $dtStart->format('Y-m-d\TH:i:s');
-
 
2572
                $zoom = new Zoom($this->adapter, $this->config);
-
 
2573
                $result = $zoom->add($dataPost['title'], $dataPost['description'], $dataPost['type'], $start_time, $dataPost['duration'], $dataPost['timezone'], $dataPost['password']);
-
 
2574
                
-
 
2575
 
-
 
2576
 
-
 
2577
                if($result['success']) {
-
 
2578
                    
-
 
2579
                    
-
 
2580
                    $zoomMeetingMapper = ZoomMeetingMapper::getInstance($this->adapter);
-
 
2581
                    $zoomMeeting = $zoomMeetingMapper->fetchOne($result['data']['id']);
-
 
2582
                    
-
 
2583
                    if($zoomMeeting) {
-
 
2584
                        return new JsonModel([
-
 
2585
                            'success' => false,
-
 
2586
                            'data' => 'ERROR_ZOOM_MEETING_ALREADY_FOUND'
-
 
2587
                        ]);
-
 
2588
                    }
-
 
2589
                    
-
 
2590
                    
-
 
2591
                    $zoomMeeting = new ZoomMeeting();
-
 
2592
                    $zoomMeeting->id = $result['data']['id'];
-
 
2593
                    $zoomMeeting->topic = $dataPost['title'];
-
 
2594
                    $zoomMeeting->agenda =$dataPost['description'];
-
 
2595
                    $zoomMeeting->duration = $dataPost['duration'];
-
 
2596
                    $zoomMeeting->join_url = $result['data']['join_url'];
-
 
2597
                    $zoomMeeting->start_time = $dtStart->format('Y-m-d H:i:s');
-
 
2598
                    $zoomMeeting->timezone = $dataPost['timezone'];
-
 
2599
                    $zoomMeeting->type = $dataPost['type'];
-
 
2600
                    $zoomMeeting->uuid = $result['data'][ 'uuid'];
-
 
2601
                    $zoomMeeting->password = $dataPost['password'];
-
 
2602
                    
-
 
2603
                   
-
 
2604
                    if(!$zoomMeetingMapper->insert($zoomMeeting)) {
-
 
2605
                        return new JsonModel([
-
 
2606
                            'success' => false,
-
 
2607
                            'data' => $zoomMeetingMapper->getError()
-
 
2608
                        ]);
-
 
2609
                    }
-
 
2610
                    
-
 
2611
      
-
 
2612
    
-
 
2613
                    
-
 
2614
                    $chatMessageContent = "LABEL_ZOOM_MEETING \r\n" . 
-
 
2615
                        " LABEL_ZOOM_MEETING_START_DATE : " . $dtStart->format('Y-m-d') . "\r\n" . 
-
 
2616
                        " LABEL_ZOOM_MEETING_START_TIME : " . $dtStart->format('Y-m-d') . "\r\n" . 
-
 
2617
                        " LABEL_ZOOM_MEETING_TITLE :  " . $zoomMeeting->topic  . "\r\n" . 
-
 
2618
                        " LABEL_ZOOM_MEETING_URL : " . $zoomMeeting->join_url . "\r\n" . 
-
 
2619
                        " LABEL_ZOOM_MEETING_PASSWORD : " . $zoomMeeting->password . "\r\n" ;
-
 
2620
                    
-
 
2621
                    $zoomMeetingUser = new ZoomMeetingUser();
-
 
2622
                    $zoomMeetingUser->zoom_meeting_id = $zoomMeeting->id;
-
 
2623
                    $zoomMeetingUser->user_id = $currentUser->id;
-
 
2624
                    $zoomMeetingUser->type = ZoomMeetingUser::TYPE_CREATOR;
-
 
2625
                    
-
 
2626
   
-
 
2627
                    
-
 
2628
                    $zoomMeetingUserMapper = ZoomMeetingUserMapper::getInstance($this->adapter);
-
 
2629
                    $zoomMeetingUserMapper->insert($zoomMeetingUser);
-
 
2630
                    
-
 
2631
 
-
 
2632
                    $calendarEvent = new CalendarEvent();
-
 
2633
                    $calendarEvent->id = 0;
-
 
2634
                    $calendarEvent->user_id = $currentUser->id;
-
 
2635
                    
-
 
2636
                    $calendarEvent->relational_id = $zoomMeeting->id;
-
 
2637
                    $calendarEvent->type = CalendarEvent::TYPE_ZOOM;
-
 
2638
                    $calendarEvent->start_time = $dtStart->format('Y-m-d H:i:s');
-
 
2639
                    $calendarEvent->end_time = $dtEnd->format('Y-m-d H:i:s');
-
 
2640
                    
-
 
2641
                    
-
 
2642
                    $calendarEventMapper = CalendarEventMapper::getInstance($this->adapter);
-
 
2643
                    $calendarEventMapper->insert($calendarEvent);
-
 
2644
 
-
 
2645
                    if($chatUser) {
-
 
2646
                        
-
 
2647
                        
-
 
2648
                        
-
 
2649
                        
-
 
2650
                        
-
 
2651
                        if($chatUser->user_id1 == $currentUser->id) {
-
 
2652
                            $zoomMeetingUser = new ZoomMeetingUser();
-
 
2653
                            $zoomMeetingUser->zoom_meeting_id = $zoomMeeting->id;
-
 
2654
                            $zoomMeetingUser->user_id = $chatUser->user_id2;
-
 
2655
                            $zoomMeetingUser->type = ZoomMeetingUser::TYPE_CREATOR;
-
 
2656
                            $zoomMeetingUserMapper->insert($zoomMeetingUser);
-
 
2657
                            
-
 
2658
                            $calendarEvent = new CalendarEvent();
-
 
2659
                            $calendarEvent->id = 0;
-
 
2660
                            $calendarEvent->user_id = $chatUser->user_id2;
-
 
2661
                            
-
 
2662
                            $calendarEvent->relational_id = $zoomMeeting->id;
-
 
2663
                            $calendarEvent->type = CalendarEvent::TYPE_ZOOM;
-
 
2664
                            $calendarEvent->start_time = $dtStart->format('Y-m-d H:i:s');
-
 
2665
                            $calendarEvent->end_time = $dtEnd->format('Y-m-d H:i:s');
-
 
2666
                            $calendarEventMapper->insert($calendarEvent);
-
 
2667
                            
-
 
2668
                        } else {
-
 
2669
                            $zoomMeetingUser = new ZoomMeetingUser();
-
 
2670
                            $zoomMeetingUser->zoom_meeting_id = $zoomMeeting->id;
-
 
2671
                            $zoomMeetingUser->user_id = $chatUser->user_id1;
-
 
2672
                            $zoomMeetingUser->type = ZoomMeetingUser::TYPE_CREATOR;
-
 
2673
                            $zoomMeetingUserMapper->insert($zoomMeetingUser);
-
 
2674
                            
-
 
2675
                            $calendarEvent = new CalendarEvent();
-
 
2676
                            $calendarEvent->id = 0;
-
 
2677
                            $calendarEvent->user_id = $chatUser->user_id1;
-
 
2678
                            
-
 
2679
                            $calendarEvent->relational_id = $zoomMeeting->id;
-
 
2680
                            $calendarEvent->type = CalendarEvent::TYPE_ZOOM;
-
 
2681
                            $calendarEvent->start_time = $dtStart->format('Y-m-d H:i:s');
-
 
2682
                            $calendarEvent->end_time = $dtEnd->format('Y-m-d H:i:s');
-
 
2683
                            $calendarEventMapper->insert($calendarEvent);
-
 
2684
                        }
-
 
2685
                        
-
 
2686
                        $chatMessage = new ChatMessage();
-
 
2687
                        $chatMessage->recd = ChatMessage::RECD_NO;
-
 
2688
                        $chatMessage->seen = ChatMessage::SEEN_NO;
-
 
2689
                        $chatMessage->type = ChatMessage::TYPE_TEXT;
-
 
2690
                        $chatMessage->content = $chatMessageContent;
-
 
2691
                        $chatMessage->from_id = $currentUser->id;
-
 
2692
                        $chatMessage->to_id = $chatUser->user_id1 == $currentUser->id ? $chatUser->user_id2 : $chatUser->user_id1;
-
 
2693
                        $chatMessage->chat_id = $chatUser->id;
-
 
2694
                        
-
 
2695
                        
-
 
2696
                        $chatMessageMapper = ChatMessageMapper::getInstance($this->adapter);
-
 
2697
                        $chatMessageMapper->insert($chatMessage);
-
 
2698
                        $chatUserMapper->markIsOpen1($chatUser->user_id1);
-
 
2699
                        $chatUserMapper->markIsOpen2($chatUser->user_id2);
-
 
2700
                        
-
 
2701
                        
-
 
2702
                        
-
 
2703
                        
-
 
2704
                        
-
 
2705
                        
-
 
2706
                        
-
 
2707
                        
-
 
2708
                        
-
 
2709
                    }
-
 
2710
                    
-
 
2711
                    if($chatGroup)
-
 
2712
                    {
-
 
2713
                        
-
 
2714
                        $chatGroupMessage = new ChatGroupMessage();
-
 
2715
                        $chatGroupMessage->group_id = $chatGroup->id;
-
 
2716
                        $chatGroupMessage->content = $chatMessageContent;
-
 
2717
                        $chatGroupMessage->sender_id = $currentUser->id;
-
 
2718
                        $chatGroupMessage->type = ChatGroupMessage::TYPE_TEXT;
-
 
2719
                        $chatGroupMessageMapper = ChatGroupMessageMapper::getInstance($this->adapter);
-
 
2720
                        if($chatGroupMessageMapper->insert($chatGroupMessage)) { 
-
 
2721
                        
-
 
2722
                            $chatGroupUserMapper = ChatGroupUserMapper::getInstance($this->adapter);
-
 
2723
                            $groupUsers =   $chatGroupUserMapper->fetchAllByGroupId($chatGroup->id);
-
 
2724
                            
-
 
2725
                            
-
 
2726
                            $chatGroupUserMessageMapper = ChatGroupUserMessageMapper::getInstance($this->adapter);
-
 
2727
                            foreach($groupUsers as $groupUser)
-
 
2728
                            {
-
 
2729
                                $chatGroupUserMessage = new ChatGroupUserMessage();
-
 
2730
                                $chatGroupUserMessage->group_id = $chatGroup->id;
-
 
2731
                                $chatGroupUserMessage->message_id = $chatGroupMessage->id;
-
 
2732
                                $chatGroupUserMessage->receiver_id = $groupUser->user_id;
-
 
2733
                                $chatGroupUserMessage->recd = ChatGroupUserMessage::RECD_NO;
-
 
2734
                                $chatGroupUserMessage->seen = ChatGroupUserMessage::SEEN_NO;
-
 
2735
                                $chatGroupUserMessageMapper->insert($chatGroupUserMessage);
-
 
2736
                                
-
 
2737
                                $chatGroupUserMapper->markIsOpen($groupUser->group_id, $groupUser->user_id);
-
 
2738
                            }
-
 
2739
                        }
-
 
2740
                    }
-
 
2741
                    
-
 
2742
                    return new JsonModel([
-
 
2743
                        'success' => true,
-
 
2744
                        'data' => 'LABEL_ZOOM_NEW_MEETING_SUCCESSFULLY'
-
 
2745
                    ]);
-
 
2746
                    
-
 
2747
                    
-
 
2748
                } else {
-
 
2749
                    return new JsonModel([
-
 
2750
                        'success' => false,
-
 
2751
                        'data' => 'ERROR_ZOOM_CREATING_NEW_MEETING'
-
 
2752
                    ]);
-
 
2753
                }
-
 
2754
                
-
 
2755
                
-
 
2756
                
-
 
2757
                
-
 
2758
            } else {
-
 
2759
                
-
 
2760
             
-
 
2761
                
-
 
2762
                $messages = [];
-
 
2763
                $form_messages = (array) $form->getMessages();
-
 
2764
                foreach($form_messages  as $fieldname => $field_messages)
-
 
2765
                {
-
 
2766
                    
-
 
2767
                    $messages[$fieldname] = array_values($field_messages);
-
 
2768
                }
-
 
2769
                
-
 
2770
                return new JsonModel([
-
 
2771
                    'success'   => false,
-
 
2772
                    'data'   => $messages
-
 
2773
                ]);
-
 
2774
 
-
 
2775
                
-
 
2776
                return new JsonModel($response);
-
 
2777
            }
-
 
2778
            
-
 
2779
            
-
 
2780
          
-
 
2781
            
-
 
2782
            
-
 
2783
            
-
 
2784
        } else {
-
 
2785
            $response = [
-
 
2786
                'success' => false,
-
 
2787
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
2788
            ];
-
 
2789
        }
-
 
2790
        
-
 
2791
    return new JsonModel($response);
Línea 2475... Línea 2792...
2475
    }
2792
    }
2476
 
2793