( userId: string, searchTerm: string, )
| 742 | } |
| 743 | |
| 744 | export async function searchFilesAndDirectories( |
| 745 | userId: string, |
| 746 | searchTerm: string, |
| 747 | ): Promise<{ success: boolean; directories: Directory[]; files: DirectoryFile[] }> { |
| 748 | const directoryNamesResult = await DirectoryModel.searchNames(userId, searchTerm); |
| 749 | const fileNamesResult = await FileModel.searchNames(userId, searchTerm); |
| 750 | const fileContentsResult = await FileModel.searchContents(userId, searchTerm); |
| 751 | |
| 752 | const success = directoryNamesResult.success && fileNamesResult.success && fileContentsResult.success; |
| 753 | |
| 754 | const directories = [...directoryNamesResult.directories]; |
| 755 | directories.sort(sortDirectoriesByName); |
| 756 | |
| 757 | const files = [...fileNamesResult.files, ...fileContentsResult.files]; |
| 758 | files.sort(sortFilesByName); |
| 759 | |
| 760 | return { |
| 761 | success, |
| 762 | directories, |
| 763 | files, |
| 764 | }; |
| 765 | } |
| 766 | |
| 767 | export async function getPathInfo(userId: string, path: string): Promise<{ isDirectory: boolean; isFile: boolean }> { |
| 768 | await ensureUserPathIsValidAndSecurelyAccessible(userId, path); |
no test coverage detected