- Added comprehensive AI Assistant system (aiassist/ directory): * Vector search and embedding capabilities * Typebot proxy integration * Elastic search functionality * Message classification and chat history * MCP proxy for external integrations - Implemented Court Status API (GetCourtStatus.php): * Real-time court document status checking * Integration with external court systems * Comprehensive error handling and logging - Enhanced S3 integration: * Improved file backup system with metadata * Batch processing capabilities * Enhanced error logging and recovery * Copy operations with URL fixing - Added Telegram contact creation API - Improved error logging across all modules - Enhanced callback system for AI responses - Extensive backup file storage with timestamps - Updated documentation and README files - File storage improvements: * Thousands of backup files with proper metadata * Fix operations for broken file references * Project-specific backup and recovery systems * Comprehensive file integrity checking Total: 26,461+ files added/modified including AWS SDK, vendor dependencies, and extensive backup system.
122 lines
3.6 KiB
PHP
122 lines
3.6 KiB
PHP
<?php
|
|
/*+**********************************************************************************
|
|
* The content of this file is subject to the ITS4GoogleCalendarSync license.
|
|
* ("License"); You may not use this file except in compliance with the License
|
|
* The Initial Developer of the Original Code is IT-Solutions4You s.r.o.
|
|
* Portions created by IT-Solutions4You s.r.o. are Copyright(C) IT-Solutions4You s.r.o.
|
|
* All Rights Reserved.
|
|
************************************************************************************/
|
|
|
|
vimport('~~/libraries/google-api-php-client/autoload.php');
|
|
|
|
class ITS4YouGoogleCalendarSync_GoogleClient_Model
|
|
{
|
|
|
|
/**
|
|
* @var Google_Client
|
|
*/
|
|
protected $client;
|
|
|
|
/**
|
|
* @var Vtiger_Request
|
|
*/
|
|
protected $request;
|
|
protected $is_logged = false;
|
|
protected $UserCalendarList;
|
|
|
|
/**
|
|
* @var Google_Service_Calendar
|
|
*/
|
|
protected $calendarService;
|
|
|
|
/**
|
|
* @var ITS4YouGoogleCalendarSync_Oauth2_Connector
|
|
*/
|
|
protected $oauth2Connector;
|
|
|
|
/**
|
|
* ITS4YouGoogleCalendarSync_GoogleClient_Model constructor.
|
|
* @param $oauth2Connector ITS4YouGoogleCalendarSync_Oauth2_Connector
|
|
*/
|
|
function __construct($oauth2Connector)
|
|
{
|
|
$oauth2Connector->authorize();
|
|
$this->oauth2Connector = $oauth2Connector;
|
|
|
|
$client = new Google_Client();
|
|
$client->setClientId($this->oauth2Connector->getClientId());
|
|
$client->setClientSecret($this->oauth2Connector->getClientSecret());
|
|
$client->setAccessToken($this->oauth2Connector->getAccessToken());
|
|
$client->setRedirectUri($this->oauth2Connector->getRedirectUri());
|
|
$client->addScope($this->oauth2Connector->getScope());
|
|
$client->setAccessType($this->oauth2Connector->getAccessType());
|
|
|
|
$this->client = $client;
|
|
}
|
|
|
|
public function isLogged()
|
|
{
|
|
return $this->is_logged;
|
|
}
|
|
|
|
public function setRequest(Vtiger_Request $request)
|
|
{
|
|
$this->request = $request;
|
|
}
|
|
|
|
public function getClient()
|
|
{
|
|
return $this->client;
|
|
}
|
|
|
|
public function getCalendarList()
|
|
{
|
|
|
|
$service = $this->getCalendarService();
|
|
|
|
$calendarList = $service->calendarList->listCalendarList();
|
|
$userCalendars = array();
|
|
|
|
while (true) {
|
|
/**
|
|
* @var $calendarListEntry Google_Service_Calendar_CalendarListEntry
|
|
*/
|
|
foreach ($calendarList->getItems() as $calendarListEntry) {
|
|
array_push($userCalendars, $calendarListEntry);
|
|
}
|
|
|
|
$pageToken = $calendarList->getNextPageToken();
|
|
if ($pageToken) {
|
|
$optParams = array('pageToken' => $pageToken);
|
|
$calendarList = $service->calendarList->listCalendarList($optParams);
|
|
} else {
|
|
break;
|
|
}
|
|
}
|
|
|
|
return $userCalendars;
|
|
}
|
|
|
|
public function getCalendarService()
|
|
{
|
|
if (!isset($this->calendarService)) {
|
|
$this->calendarService = new Google_Service_Calendar($this->client);
|
|
}
|
|
return $this->calendarService;
|
|
}
|
|
|
|
public function getCalendarById($calendarId)
|
|
{
|
|
$myCalendarInstance = null;
|
|
if (!empty($calendarId)) {
|
|
$service = $this->getCalendarService();
|
|
$calendarInstance = $service->calendarList->get($calendarId);
|
|
|
|
$myCalendarInstance = ITS4YouGoogleCalendarSync_GoogleCalendar_Model::getInstanceFromGoogleCalendarInstace($calendarInstance);
|
|
}
|
|
|
|
return $myCalendarInstance;
|
|
}
|
|
|
|
}
|