Files
crm.clientright.ru/modules/ITS4YouGoogleCalendarSync/models/GoogleClient.php
Fedor ac7467f0b4 Major CRM updates: AI Assistant, Court Status API, S3 integration improvements, and extensive file storage system
- 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.
2025-10-16 11:17:21 +03:00

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;
}
}