Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 6849 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
4113 efrain 1
<?php
2
declare(strict_types=1);
3
 
4
namespace LeadersLinked\Controller;
5
 
6
 
7
use \Firebase\JWT\JWT;
8
use GuzzleHttp\Client;
9
 
10
use Laminas\Db\Adapter\AdapterInterface;
6849 efrain 11
 
4113 efrain 12
use Laminas\Mvc\Controller\AbstractActionController;
13
use Laminas\Log\LoggerInterface;
14
use Laminas\View\Model\JsonModel;
5837 efrain 15
use LeadersLinked\Library\Zoom;
4113 efrain 16
 
17
class ZoomController extends AbstractActionController
18
{
19
    /**
20
     *
6866 efrain 21
     * @var \Laminas\Db\Adapter\AdapterInterface
4113 efrain 22
     */
23
    private $adapter;
24
 
25
    /**
26
     *
6866 efrain 27
     * @var \LeadersLinked\Cache\CacheInterface
4113 efrain 28
     */
6866 efrain 29
    private $cache;
30
 
31
 
32
    /**
33
     *
34
     * @var \Laminas\Log\LoggerInterface
35
     */
4113 efrain 36
    private $logger;
6866 efrain 37
 
4113 efrain 38
    /**
6866 efrain 39
     *
4113 efrain 40
     * @var array
41
     */
42
    private $config;
43
 
44
 
6866 efrain 45
    /**
46
     *
47
     * @var \Laminas\Mvc\I18n\Translator
48
     */
49
    private $translator;
4113 efrain 50
 
51
 
52
    /**
6866 efrain 53
     *
54
     * @param \Laminas\Db\Adapter\AdapterInterface $adapter
55
     * @param \LeadersLinked\Cache\CacheInterface $cache
56
     * @param \Laminas\Log\LoggerInterface LoggerInterface $logger
4113 efrain 57
     * @param array $config
6866 efrain 58
     * @param \Laminas\Mvc\I18n\Translator $translator
4113 efrain 59
     */
6866 efrain 60
    public function __construct($adapter, $cache, $logger, $config, $translator)
4113 efrain 61
    {
62
        $this->adapter      = $adapter;
6866 efrain 63
        $this->cache        = $cache;
4113 efrain 64
        $this->logger       = $logger;
65
        $this->config       = $config;
6866 efrain 66
        $this->translator   = $translator;
4113 efrain 67
    }
68
 
69
 
70
    public function indexAction()
71
    {
5837 efrain 72
 
4113 efrain 73
 
74
        $data = [
75
            'success' => false,
76
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
77
        ];
78
 
79
 
5837 efrain 80
 
4113 efrain 81
        return new JsonModel($data);
82
    }
83
 
4131 efrain 84
    public function addAction()
4113 efrain 85
    {
4419 efrain 86
        /*
4131 efrain 87
        $currentUserPlugin = $this->plugin('currentUserPlugin');
88
        $currentUser = $currentUserPlugin->getUser();
4113 efrain 89
 
90
        $request = $this->getRequest();
91
 
4131 efrain 92
      //  if($request->isPost()) {
93
 
4113 efrain 94
            $base_url = $this->config['leaderslinked.zoom.base_url'];
95
            $token = $this->getAccessToken();
96
 
97
 
98
            $client = new Client([
99
 
100
                'base_uri' => $base_url,
101
            ]);
102
 
103
            $response = $client->request('POST', '/v2/users/me/meetings', [
104
                'headers' => [
105
                    'Authorization' => 'Bearer ' . $token
106
                ],
107
                'json' => [
108
                    'topic' => 'Let s Learn WordPress',
4131 efrain 109
                    'agenda' => 'Description Let s Learn WordPress',
4113 efrain 110
                    'type' => 2,
111
                    'start_time' => '2023-01-30T20:30:00',
112
                    'duration' => '30', // 30 mins
113
                    'password' => '123456',
114
                    'timezone' => 'America/Caracas',
4131 efrain 115
                    'settings' => [
116
                        'participant_video'=> 'true',
117
                        'auto_recording' => 'none',
118
                    ]
4113 efrain 119
                ],
120
            ]);
121
 
122
 
4131 efrain 123
 
4113 efrain 124
 
4131 efrain 125
            $data = json_decode($response->getBody()->getContents());
126
            echo '<pre>';
127
            print_r($data);
128
            echo '</pre>';
129
            exit;
130
 
131
 
132
            //echo "Join URL: ". $data->join_url;
133
            //echo "<br>";
134
            //echo "Meeting Password: ". $data->password;
4113 efrain 135
 
4131 efrain 136
 
4419 efrain 137
       } else {
4113 efrain 138
            $data = [
139
                'success' => false,
140
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
141
            ];
142
 
143
            return new JsonModel($data);
144
        }
145
 
4419 efrain 146
        */
4113 efrain 147
 
4419 efrain 148
        $token = 'EAAJaDxnm8uIBAGYjnYpOvjzm1BXbBgTtqfwn4YbagqIBGxfpWVZBObWtcnvfTJB6hMfHLWZBgG7dQ2O2UYMqZALYSLIQZC8swoNsHNYe3AMBkOjkt7YZBuIfXe22yyTgUZCBzGlsjbs0f72nNDvMlGNQlkCYNi3ZCDdXH61z9nW9xxUcdAnhk6M';
149
        $token = 'EAAJaDxnm8uIBAF3XfBml8yh9PqHOfO0UcwYALZAmoZCSPx6IkNZCRaVQaSWJfQALBqaRZCMziTddfvKgiVs1jwftg2sMyZBGixRTSDcXfvOv3nO4gZA2pCyruxa5iA1ZB01C83o2ZAg1Lnb07jeGF2C4d1Tauu3ZB9sZCJTkY4jMPt1Gnx8tpm5MAd';
150
        $client = new Client([
151
 
152
            'base_uri' => 'https://graph.facebook.com/v15.0',
153
        ]);
154
 
155
        //$to = '584244343638';
156
        //$to = '59898137899';
157
        $to = '584122788242';
158
 
159
        $response = $client->request('POST', '/111473331819706/messages', [
160
            'headers' => [
161
                'Authorization' => 'Bearer ' . $token
162
            ],
163
            'json' => [
164
                'messaging_product' => 'whatsapp',
165
                'recipient_type' => 'individual',
166
                'to' => $to,
167
 
168
                'type' => 'text',
169
                'text' => [
170
                    'preview_url' =>  false,
171
                    'body' => 'MESSAGE_CONTENT'
172
                ]
173
                /*
174
                'type' => 'template',
175
                'template' => [
176
                    'name' => 'hello_world',
177
                    'language' => [
178
                        'code' => 'en_US'
179
                    ]
180
                ] */
181
            ],
182
        ]);
183
 
184
        echo '<pre>';
185
       print_r($response->getBody()->getContents());
186
       echo '</pre>';
187
       exit;
188
 
4113 efrain 189
    }
190
 
191
    public function listingAction()
192
    {
193
        $request = $this->getRequest();
194
 
5837 efrain 195
        if($request->isGet()) {
4113 efrain 196
 
197
 
6866 efrain 198
            $zoom = new Zoom($this->adapter, $this->config, $this->cache);
5837 efrain 199
            $response =  $zoom->getOAuthAccessToken();
4113 efrain 200
 
5837 efrain 201
 
4113 efrain 202
 
5837 efrain 203
            if($response['success']) {
204
                $next_page_token = $this->params()->fromRoute('next_page');
4113 efrain 205
 
5837 efrain 206
 
207
                $access_token = $response['data'];
208
                $response = $zoom->getMeetings($access_token, $next_page_token) ;
209
                return new JsonModel($response);
210
 
211
 
212
            } else {
213
               return new JsonModel($response);
4113 efrain 214
            }
215
 
5837 efrain 216
 
4113 efrain 217
 
5837 efrain 218
 
4113 efrain 219
        } else {
220
            $data = [
221
                'success' => false,
222
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
223
            ];
224
 
225
 
226
        }
227
 
5837 efrain 228
        return new JsonModel($data);
4113 efrain 229
    }
230
 
231
    public function  deleteAction()
232
    {
233
        $request = $this->getRequest();
234
 
235
        //if($request->isPost()) {
236
 
237
            $meeting_id =  $this->params()->fromRoute('id');
238
 
239
 
240
 
241
            $base_url = $this->config['leaderslinked.zoom.base_url'];
242
            $token = $this->getAccessToken();
243
 
244
            $client = new Client([
245
                'base_uri' => $base_url,
246
            ]);
247
 
248
            $response = $client->request('DELETE', '/v2/meetings/' .  $meeting_id, [
249
                'headers' => [
250
                    'Authorization' => 'Bearer ' .  $token
251
                ]
252
            ]);
253
 
254
 
255
            echo 'StatusCode : ' . $response->getStatusCode();
256
            exit;
257
 
258
            /*
259
 
260
            if (204 == $response->getStatusCode()) {
261
                $data = [
262
                    'success' => true,
263
                    'data' => 'Meeting deleted.'
264
                ];
265
            } else {
266
                $data = [
267
                    'success' => false,
268
                    'data' => $response->getBody()->getContents()
269
                ];
270
            }
271
 
272
 
273
        } else {
274
            $data = [
275
                'success' => false,
276
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
277
            ];
278
 
279
 
280
        }
281
 
282
        return new JsonModel($data);*/
283
    }
284
 
285
    public function participantsAction()
286
    {
287
        $request = $this->getRequest();
288
 
289
       // if($request->isGet()) {
290
 
291
            $meeting_id =  $this->params()->fromRoute('id');
292
 
293
 
294
 
295
            $base_url = $this->config['leaderslinked.zoom.base_url'];
296
            $token = $this->getAccessToken();
297
 
298
            $client = new Client([
299
                'base_uri' => $base_url,
300
            ]);
301
 
302
            $response = $client->request('GET', '/v2/past_meetings/' . $meeting_id , [
303
                'headers' => [
304
                    'Authorization' => 'Bearer '. $token
305
                ]
306
            ]);
307
 
308
            print_r($response->getBody()->getContents());
309
            exit;
310
 
311
            /*
312
            $data = json_decode($response->getBody());
313
            if ( !empty($data) ) {
314
                foreach ( $data->participants as $p ) {
315
                    $name = $p->name;
316
                    $email = $p->user_email;
317
                    echo "Name: $name";
318
                    echo "Email: $email";
319
                }
320
            }
321
 
322
 
323
        } else {
324
            $data = [
325
                'success' => false,
326
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
327
            ];
328
 
329
 
330
        }
331
 
332
        return new JsonModel($data);*/
333
    }
334
 
335
 
336
 
337
 
338
 
339
}