JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrZoomMeetingTrait.php000064400000012771150364312770010536 0ustar00client = 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['topic'], '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['topic'], '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; } } ApiResponser.php000064400000002130150364312770007673 0ustar00json([ 'is_success' => true, 'message' => $message, 'data' => $data ], $code); } /** * Return an error JSON response. * * @param string $message * @param int $code * @param array|string|null $data * @return \Illuminate\Http\JsonResponse */ protected function error(string $message = null, int $code, $data = null) { return response()->json([ 'is_success' => false, 'message' => $message, 'data' => $data ], $code); } }