From 6a67afff37a12fd9de12df64f8ac317a8a786dff Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Sun, 17 Dec 2023 16:44:29 +0100 Subject: [PATCH] fix(files): Use DAV functions from library to fix invalid source links Signed-off-by: Ferdinand Thiessen --- apps/files/src/services/Recent.ts | 80 ++++--------------------------- 1 file changed, 8 insertions(+), 72 deletions(-) diff --git a/apps/files/src/services/Recent.ts b/apps/files/src/services/Recent.ts index ecd43b90ecc..26c4babb5a2 100644 --- a/apps/files/src/services/Recent.ts +++ b/apps/files/src/services/Recent.ts @@ -2,6 +2,7 @@ * @copyright Copyright (c) 2023 John Molakvoæ * * @author John Molakvoæ + * @author Ferdinand Thiessen * * @license AGPL-3.0-or-later * @@ -20,84 +21,19 @@ * */ import type { ContentsWithRoot } from '@nextcloud/files' -import type { FileStat, ResponseDataDetailed, DAVResultResponseProps } from 'webdav' +import type { FileStat, ResponseDataDetailed } from 'webdav' -import { Folder, Permission, getDavNameSpaces, getDavProperties } from '@nextcloud/files' -import { generateRemoteUrl } from '@nextcloud/router' import { getCurrentUser } from '@nextcloud/auth' +import { Folder, Permission, davGetRecentSearch, davGetClient, davResultToNode, davRootPath, davRemoteURL } from '@nextcloud/files' -import { getClient, rootPath } from './WebdavClient' -import { resultToNode } from './Files' - -const client = getClient(generateRemoteUrl('dav')) +const client = davGetClient() const lastTwoWeeksTimestamp = Math.round((Date.now() / 1000) - (60 * 60 * 24 * 14)) -const searchPayload = ` - - - - - ${getDavProperties()} - - - - - /files/${getCurrentUser()?.uid}/ - infinity - - - - - - - - - - - httpd/unix-directory - - - - - - - 0 - - - - - - - ${lastTwoWeeksTimestamp} - - - - - - - - - - - - - 100 - 0 - - -` - -interface ResponseProps extends DAVResultResponseProps { - permissions: string, - fileid: number, - size: number, -} export const getContents = async (path = '/'): Promise => { const contentsResponse = await client.getDirectoryContents(path, { details: true, - data: searchPayload, + data: davGetRecentSearch(lastTwoWeeksTimestamp), headers: { // Patched in WebdavClient.ts method: 'SEARCH', @@ -112,11 +48,11 @@ export const getContents = async (path = '/'): Promise => { return { folder: new Folder({ id: 0, - source: generateRemoteUrl('dav' + rootPath), - root: rootPath, + source: `${davRemoteURL}${davRootPath}`, + root: davRootPath, owner: getCurrentUser()?.uid || null, permissions: Permission.READ, }), - contents: contents.map(resultToNode), + contents: contents.map((r) => davResultToNode(r)), } } -- 2.39.5