- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/V2/Link/File/FileService.php
- Класс: BitrixImV2LinkFileFileService
- Вызов: FileService::getFilesBeforeMigrationFinished
public function getFilesBeforeMigrationFinished(int $chatId, int $limit, ?int $lastId = null, ?string $filename = null): BitrixImV2EntityFileFileCollection
{
$folderModel = CIMDisk::getFolderModel($chatId, false);
if ($folderModel === false)
{
return new BitrixImV2EntityFileFileCollection();
}
$relation = CIMChat::GetRelationById($chatId, $this->getContext()->getUserId(), true, false);
$filter = Query::filter()
->where('PARENT_ID', $folderModel->getId())
->where('STORAGE_ID', $folderModel->getStorageId())
->where('ID', '>', $relation['LAST_FILE_ID'])
;
if (isset($lastId))
{
$filter->where('ID', '<', $lastId);
}
if (isset($filename))
{
$clearFileName = str_replace("%", '', $filename);
$filter->whereLike('NAME', "$clearFileName%");
}
$parameters = [
'filter' => $filter,
'with' => ['CREATE_USER'],
'limit' => $limit,
'order' => ['ID' => 'DESC']
];
$securityContext = new DiskSecurityContext($this->getContext()->getUserId());
$parameters = Driver::getInstance()->getRightsManager()->addRightsCheck($securityContext, $parameters, ['ID', 'CREATED_BY']);
$diskFiles = File::getModelList($parameters);
return new BitrixImV2EntityFileFileCollection($diskFiles, $chatId);
}