getItemsListFromUrlParam)(); // Check access to requested folders if ($folders->isNotEmpty()) { $folders->each( fn ($folder) => ($this->verifyAccessToItem)($folder->id, $shared) ); } // Check access to requested files if ($files->isNotEmpty()) { $file_parent_folders = File::whereUserId($shared->user_id) ->whereIn('id', $files->pluck('id')) ->get() ->pluck('parent_id') ->toArray(); // Check access to requested directory ($this->verifyAccessToItem)($file_parent_folders, $shared); } // Zip items $zip = ($this->zip)($folders, $files, $shared); ($this->recordDownload)( file_size: $zip->predictZipSize(), user_id: $shared->user_id, ); return $zip; } }