!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/smabpro.picotech.app/public_html/app/Traits/   drwxr-xr-x
Free 26.64 GB of 117.98 GB (22.58%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     ZoomMeetingTrait.php (5.5 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Traits;

use 
GuzzleHttp\Client;
use 
App\Models\Utility;
use 
Log;

/**
 * trait ZoomMeetingTrait
 */
trait ZoomMeetingTrait
{
    public 
$client;
    public 
$jwt;
    public 
$headers;
    public 
$meeting_url="https://api.zoom.us/v2/";
    public function 
__construct()
    {
        
$this->client = new Client();
    }


    private function 
retrieveZoomUrl()
    {
        return 
$this->meeting_url;
    }

    public function 
toZoomTimeFormat(string $dateTime)
    {
        try {
            
$date = new \DateTime($dateTime);

            return 
$date->format('Y-m-d\TH:i:s');
        } catch (
\Exception $e) {
            
Log::error('ZoomJWT->toZoomTimeFormat : '.$e->getMessage());

            return 
'';
        }
    }

    public function 
createmitting($data)
    {
        
$path 'users/me/meetings';
        
$url $this->retrieveZoomUrl();

        
$body = [
            
'headers' => $this->getHeader(),
            
'body'    => json_encode([
                
'topic'      => $data['title'],
                
'type'       => self::MEETING_TYPE_SCHEDULE,
                
'start_time' => $this->toZoomTimeFormat($data['start_time']),
                
'duration'   => $data['duration'],
                
'password' => $data['password'],
                
'agenda'     => (! empty($data['agenda'])) ? $data['agenda'] : null,
                
'timezone'     => 'Asia/Kolkata',
                
'settings'   => [
                    
'host_video'        => ($data['host_video'] == "1") ? true false,
                    
'participant_video' => ($data['participant_video'] == "1") ? true false,
                    
'waiting_room'      => true,
                ],
            ]),
        ];

        
$response =  $this->client->post($url.$path$body);

        return [
            
'success' => $response->getStatusCode() === 201,
            
'data'    => json_decode($response->getBody(), true),
        ];

    }

    public function 
meetingUpdate($id$data)
    {
        
$path 'meetings/'.$id;
        
$url $this->retrieveZoomUrl();

        
$body = [
            
'headers' => $this->getHeader(),
            
'body'    => json_encode([
                
'topic'      => $data['title'],
                
'type'       => self::MEETING_TYPE_SCHEDULE,
                
'start_time' => $this->toZoomTimeFormat($data['start_time']),
                
'duration'   => $data['duration'],
                
'agenda'     => (! empty($data['agenda'])) ? $data['agenda'] : null,
                
'timezone'     => config('app.timezone'),
                
'settings'   => [
                    
'host_video'        => ($data['host_video'] == "1") ? true false,
                    
'participant_video' => ($data['participant_video'] == "1") ? true false,
                    
'waiting_room'      => true,
                ],
            ]),
        ];


        
$response =  $this->client->patch($url.$path$body);

        return [
            
'success' => $response->getStatusCode() === 204,
            
'data'    => json_decode($response->getBody(), true),
        ];
    }

    public function 
get($id)
    {
        
$path 'meetings/'.$id;
        
$url $this->retrieveZoomUrl();

        
$body = [
            
'headers' => $this->getHeader(),
            
'body'    => json_encode([]),
        ];

            
$response =  $this->client->get($url.$path$body);
            return [
                
'success' => $response->getStatusCode() === 204,
                
'data'    => json_decode($response->getBody(), true),
            ];


    }

    
/**
     * @param string $id
     *
     * @return bool[]
     */
    
public function delete($id)
    {
        
$path 'meetings/'.$id;
        
$url $this->retrieveZoomUrl();
        
$body = [
            
'headers' => $this->headers,
            
'body'    => json_encode([]),
        ];

        
$response =  $this->client->delete($url.$path$body);

        return [
            
'success' => $response->getStatusCode() === 204,
        ];
    }

    public function 
getHeader()
    {
        return [
            
'Authorization' => 'Bearer '.$this->getToken(),
            
'Content-Type'  => 'application/json',
            
'Accept'        => 'application/json',
        ];
    }

    public function 
getToken()
    {
        
// Check if Zoom credentials are configured
        
$settings Utility::settings(\Auth::user()->id);
        if (
            isset(
$settings['zoom_account_id']) && !empty($settings['zoom_account_id']) &&
            isset(
$settings['zoom_client_id']) && !empty($settings['zoom_client_id']) &&
            isset(
$settings['zoom_client_secret']) && !empty($settings['zoom_client_secret'])
        ) {
            
// Construct the basic authentication header
            
$basicAuthHeader base64_encode($settings['zoom_client_id'] . ':' $settings['zoom_client_secret']);
    
            
// Prepare the request to obtain the access token
            
$response $this->client->request('POST''https://zoom.us/oauth/token', [
                
'headers' => [
                    
'Authorization' => 'Basic ' $basicAuthHeader,
                ],
                
'form_params' => [
                    
'grant_type' => 'account_credentials',
                    
"account_id" =>  $settings['zoom_account_id']
                ],
            ]);
    
    
            
// Decode the response and retrieve the access token
            
$token json_decode($response->getBody(), true);
    
            if (isset(
$token['access_token'])) {
                return 
$token['access_token'];
            }
        }
    
        return 
false;
    }


}

 
?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0052 ]--