- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/document/onlyoffice/onlyofficehandler.php
- Класс: BitrixDiskDocumentOnlyOfficeOnlyOfficeHandler
- Вызов: OnlyOfficeHandler::renameDocument
static function renameDocument(string $documentKey, string $newName): Result
{
$result = new Result();
$http = new HttpClient([
'socketTimeout' => 5,
'streamTimeout' => 10,
'version' => HttpClient::HTTP_1_1,
]);
if (!Application::getInstance()->isUtfMode())
{
$newName = Encoding::convertEncoding($newName, SITE_CHARSET, 'UTF-8');
}
$postBody = [
'c' => self::CMD_META,
'key' => $documentKey,
'meta' => [
'title' => $newName,
],
];
$configuration = new DocumentOnlyOfficeConfiguration();
$cloudRegistrationData = $configuration->getCloudRegistrationData();
if ($cloudRegistrationData)
{
$renameDocument = new DocumentOnlyOfficeCloudRenameDocument($cloudRegistrationData['serverHost']);
return $renameDocument->rename($postBody);
}
$http->setHeader('Content-Type', 'application/json');
$secretKey = ServiceLocator::getInstance()->get('disk.onlyofficeConfiguration')->getSecretKey();
$http->setHeader('Authorization', 'Bearer ' . JWT::encode($postBody, $secretKey));
$url = self::getApiUrlRoot() . '/coauthoring/CommandService.ashx';
$postFields = Json::encode($postBody);
if ($http->post($url, $postFields) === false)
{
return $result->addError(new MainError('Server is not available.'));
}
if ($http->getStatus() !== 200)
{
return $result->addError(new MainError('Server is not available. Status ' . $http->getStatus()));
}
$response = Json::decode($http->getResult());
if (isset($response['error']) && $response['error'] !== 0)
{
return $result->addError(new MainError("Server sent error code {{$response['error']}}"));
}
return $result;
}