• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/document/googlehandler.php
  • Класс: BitrixDiskDocumentGoogleHandler
  • Вызов: GoogleHandler::patchFile
private function patchFile(FileData $fileData, array $fields)
{
	if(!$this->checkRequiredInputParams($fileData->toArray(), array(
		'id',
	)))
	{
		return null;
	}

	if(!$this->checkRequiredInputParams($fields, array(
		'modifiedTime',
	)))
	{
		return null;
	}

	$accessToken = $this->getAccessToken();
	$http = new HttpClient(array(
		'socketTimeout' => 10,
		'streamTimeout' => 30,
		'version' => HttpClient::HTTP_1_1,
	));
	$http->setHeader('Content-Type', 'application/json; charset=UTF-8');
	$http->setHeader('Authorization', "Bearer {$accessToken}");

	$patchData = Json::encode(array(
		'modifiedTime' => $fields['modifiedTime'],
	));
	if(
		$http->query(
			'PATCH',
			self::API_URL_V3 . '/files/' . $fileData->getId() . '?' . http_build_query(array('fields' => 'id,mimeType,webViewLink,size,name,version,createdTime,modifiedTime')),
			$patchData
		) === false)
	{
		$errorString = implode('; ', array_keys($http->getError()));
		$this->errorCollection[] = new Error(
			$errorString, self::ERROR_HTTP_PATCH
		);
		return null;
	}

	if(!$this->checkHttpResponse($http))
	{
		return null;
	}

	$file = Json::decode($http->getResult());
	if($file === null)
	{
		$this->errorCollection[] = new Error(
			'Could not decode response as json', self::ERROR_BAD_JSON
		);
		return null;
	}

	return $file;
}