• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/bitrix24disk/legacy/newdiskstorage.php
  • Класс: BitrixDiskBitrix24DiskLegacyNewDiskStorage
  • Вызов: NewDiskStorage::formatFileRowToResponse
private function formatFileRowToResponse(array $row)
{
	if (empty($row['PARENT_ID']))
	{
		return [];
	}

	$syncUpdateTime = $row['SYNC_UPDATE_TIME']->getTimestamp();
	$path = $this->getPath($row['PARENT_ID']);
	if (!$path)
	{
		return [];
	}

	$isLink = !empty($row['REAL_OBJECT_ID']) && $row['REAL_OBJECT_ID'] != $row['ID'];
	$name = UiText::cleanTrashCanSuffix($row['NAME']);
	$result = [
		'id' => $this->generateId(['FILE' => true, 'ID' => $row['ID']]),
		'isDirectory' => false,
		'isShared' => (bool)$this->isSharedObject($row['ID']),
		'isSymlinkFile' => $isLink,
		'isDeleted' => !empty($row['DELETED_TYPE']),
		'storageId' => $this->getStringStorageId(),
		'path' => $path === '/' ? '/' . $name : '/' . trim($path, '/') . '/' . $name,
		'name' => (string)$name,
		'revision' => $row['FILE_ID'],
		'etag' => $row['ETAG'],
		'version' => (string)$this->generateTimestamp($syncUpdateTime),
		'originalTimestamp' => (string)$this->generateTimestamp($row['UPDATE_TIME']->getTimestamp()),
		'extra' => [
			'id' => (string)$row['ID'],
			'iblockId' => (string)$row['STORAGE_ID'],
			'sectionId' => (string)$row['PARENT_ID'],
			'rootSectionId' => (string)$this->storage->getRootObjectId(),
			'name' => (string)$name,
		],
		'size' => (string)$row['SIZE'],
		'permission' => 'W',
		'createdBy' => (string)$row['CREATED_BY'],
		'modifiedBy' => (string)$row['UPDATED_BY'],
	];
	if ($this->storage->getRootObjectId() != $row['PARENT_ID'])
	{
		$result['parentId'] = $this->generateId(['FILE' => false, 'ID' => $row['PARENT_ID']]);
	}

	if ($this->isEnabledObjectLock)
	{
		$lock = $this->getLockFromRow($row);
		if ($lock)
		{
			$result['lock'] = [
				'createdBy' => (string)$lock->getCreatedBy(),
				'createTimestamp' => (string)$this->generateTimestamp($lock->getCreateTime()->getTimestamp()),
				'canUnlock' => $lock->canUnlock($this->getUser()->getId()),
			];
		}
	}

	return $result;
}