- Модуль: 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;
}