Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 4419 | Rev 6849 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

<?php
declare(strict_types=1);

namespace LeadersLinked\Controller;


use \Firebase\JWT\JWT;
use GuzzleHttp\Client;

use Laminas\Db\Adapter\AdapterInterface;
use Laminas\Cache\Storage\Adapter\AbstractAdapter;
use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\Log\LoggerInterface;
use Laminas\View\Model\JsonModel;
use LeadersLinked\Library\Zoom;

class ZoomController extends AbstractActionController
{
    /**
     *
     * @var AdapterInterface
     */
    private $adapter;
    
    
    /**
     *
     * @var AbstractAdapter
     */
    private $cache;
    
    /**
     *
     * @var  LoggerInterface
     */
    private $logger;

    /**
     * 
     * @var array
     */
    private $config;
    
    
    
    
    /**
     * 
     * @param AdapterInterface $adapter
     * @param AbstractAdapter $cache
     * @param LoggerInterface $logger
     * @param array $config
     */
    public function __construct($adapter, $cache , $logger, $config)
    {
        $this->adapter      = $adapter;
        $this->cache        = $cache;
        $this->logger       = $logger;
        $this->config       = $config;
    }
    

    public function indexAction()
    {

        
        $data = [
            'success' => false,
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
        ];
        


        return new JsonModel($data);
    }
    
    public function addAction()
    {
        /*
        $currentUserPlugin = $this->plugin('currentUserPlugin');
        $currentUser = $currentUserPlugin->getUser();
        
        $request = $this->getRequest();
        
      //  if($request->isPost()) {
           
            $base_url = $this->config['leaderslinked.zoom.base_url'];
            $token = $this->getAccessToken();

            
            $client = new Client([
 
                'base_uri' => $base_url,
            ]);
            
            $response = $client->request('POST', '/v2/users/me/meetings', [
                'headers' => [
                    'Authorization' => 'Bearer ' . $token
                ],
                'json' => [
                    'topic' => 'Let s Learn WordPress',
                    'agenda' => 'Description Let s Learn WordPress',
                    'type' => 2,
                    'start_time' => '2023-01-30T20:30:00',
                    'duration' => '30', // 30 mins
                    'password' => '123456',
                    'timezone' => 'America/Caracas',
                    'settings' => [
                        'participant_video'=> 'true',
                        'auto_recording' => 'none',
                    ]
                ],
            ]);



            
            $data = json_decode($response->getBody()->getContents());
            echo '<pre>';
            print_r($data); 
            echo '</pre>';
            exit;
            
            
            //echo "Join URL: ". $data->join_url;
            //echo "<br>";
            //echo "Meeting Password: ". $data->password;
       
         
       } else {
            $data = [
                'success' => false,
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
            ];
            
            return new JsonModel($data);
        }

        */
        
        $token = 'EAAJaDxnm8uIBAGYjnYpOvjzm1BXbBgTtqfwn4YbagqIBGxfpWVZBObWtcnvfTJB6hMfHLWZBgG7dQ2O2UYMqZALYSLIQZC8swoNsHNYe3AMBkOjkt7YZBuIfXe22yyTgUZCBzGlsjbs0f72nNDvMlGNQlkCYNi3ZCDdXH61z9nW9xxUcdAnhk6M';
        $token = 'EAAJaDxnm8uIBAF3XfBml8yh9PqHOfO0UcwYALZAmoZCSPx6IkNZCRaVQaSWJfQALBqaRZCMziTddfvKgiVs1jwftg2sMyZBGixRTSDcXfvOv3nO4gZA2pCyruxa5iA1ZB01C83o2ZAg1Lnb07jeGF2C4d1Tauu3ZB9sZCJTkY4jMPt1Gnx8tpm5MAd';
        $client = new Client([
            
            'base_uri' => 'https://graph.facebook.com/v15.0',
        ]);
        
        //$to = '584244343638';
        //$to = '59898137899';
        $to = '584122788242';
        
        $response = $client->request('POST', '/111473331819706/messages', [
            'headers' => [
                'Authorization' => 'Bearer ' . $token
            ],
            'json' => [
                'messaging_product' => 'whatsapp', 
                'recipient_type' => 'individual',
                'to' => $to, 
              
                'type' => 'text',
                'text' => [
                    'preview_url' =>  false,
                    'body' => 'MESSAGE_CONTENT'
                ]
                /*
                'type' => 'template', 
                'template' => [
                    'name' => 'hello_world', 
                    'language' => [ 
                        'code' => 'en_US'
                    ]
                ] */   
            ],
        ]);

        echo '<pre>';
       print_r($response->getBody()->getContents()); 
       echo '</pre>';
       exit;
        
    }
    
    public function listingAction()
    {
        $request = $this->getRequest();
        
        if($request->isGet()) {
            
            
            $zoom = new Zoom($this->adapter, $this->config, $this->cache);
            $response =  $zoom->getOAuthAccessToken();
            

            
            if($response['success']) {
                $next_page_token = $this->params()->fromRoute('next_page');
                
                
                $access_token = $response['data'];
                $response = $zoom->getMeetings($access_token, $next_page_token) ; 
                return new JsonModel($response);
                
                
            } else {
               return new JsonModel($response);
            }
            
           
            
           
        } else {
            $data = [
                'success' => false,
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
            ];
            
            
        }
        
        return new JsonModel($data);
    }
    
    public function  deleteAction() 
    {
        $request = $this->getRequest();
        
        //if($request->isPost()) {
            
            $meeting_id =  $this->params()->fromRoute('id');
        
            
            
            $base_url = $this->config['leaderslinked.zoom.base_url'];
            $token = $this->getAccessToken();
            
            $client = new Client([
                'base_uri' => $base_url,
            ]);
            
            $response = $client->request('DELETE', '/v2/meetings/' .  $meeting_id, [
                'headers' => [
                    'Authorization' => 'Bearer ' .  $token
                ]
            ]);


            echo 'StatusCode : ' . $response->getStatusCode(); 
            exit;

            /*
            
            if (204 == $response->getStatusCode()) {
                $data = [
                    'success' => true,
                    'data' => 'Meeting deleted.'
                ];
            } else {
                $data = [
                    'success' => false,
                    'data' => $response->getBody()->getContents()
                ];
            }
            
            
        } else {
            $data = [
                'success' => false,
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
            ];
            
            
        }
        
        return new JsonModel($data);*/
    }
    
    public function participantsAction()
    {
        $request = $this->getRequest();
        
       // if($request->isGet()) {
            
            $meeting_id =  $this->params()->fromRoute('id');
            
            
            
            $base_url = $this->config['leaderslinked.zoom.base_url'];
            $token = $this->getAccessToken();
            
            $client = new Client([
                'base_uri' => $base_url,
            ]);
            
            $response = $client->request('GET', '/v2/past_meetings/' . $meeting_id , [
                'headers' => [
                    'Authorization' => 'Bearer '. $token
                ]
            ]);

            print_r($response->getBody()->getContents());
            exit;
            
            /*
            $data = json_decode($response->getBody());
            if ( !empty($data) ) {
                foreach ( $data->participants as $p ) {
                    $name = $p->name;
                    $email = $p->user_email;
                    echo "Name: $name";
                    echo "Email: $email";
                }
            }
            
            
        } else {
            $data = [
                'success' => false,
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
            ];
            
            
        }
        
        return new JsonModel($data);*/
    }
    

    
   
   
}