mirror of
https://github.com/nextcloud/desktop.git
synced 2025-10-26 11:17:43 +00:00
- Removed explicit reference to NextcloudKit dependency which implicitly is pulled in already by NextcloudFileProviderKit. - Consolidated some source code files into their respective view controllers in the file provider UI extension. Signed-off-by: Iva Horn <iva.horn@icloud.com>
45 lines
1.4 KiB
Swift
45 lines
1.4 KiB
Swift
// SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
import Foundation
|
|
import NextcloudFileProviderKit
|
|
import NextcloudKit
|
|
import OSLog
|
|
|
|
func fetchItemMetadata(itemRelativePath: String, account: Account, kit: NextcloudKit) async -> NKFile? {
|
|
func slashlessPath(_ string: String) -> String {
|
|
var strCopy = string
|
|
|
|
if strCopy.hasPrefix("/") {
|
|
strCopy.removeFirst()
|
|
}
|
|
|
|
if strCopy.hasSuffix("/") {
|
|
strCopy.removeLast()
|
|
}
|
|
|
|
return strCopy
|
|
}
|
|
|
|
guard let nksession = kit.nkCommonInstance.nksessions.session(forAccount: account.ncKitAccount) else {
|
|
return nil
|
|
}
|
|
|
|
let urlBase = slashlessPath(nksession.urlBase)
|
|
let davSuffix = slashlessPath(nksession.dav)
|
|
let userId = nksession.userId
|
|
let itemRelPath = slashlessPath(itemRelativePath)
|
|
let itemFullServerPath = "\(urlBase)/\(davSuffix)/files/\(userId)/\(itemRelPath)"
|
|
|
|
return await withCheckedContinuation { continuation in
|
|
kit.readFileOrFolder(serverUrlFileName: itemFullServerPath, depth: "0", account: account.ncKitAccount) { account, files, data, error in
|
|
guard error == .success else {
|
|
continuation.resume(returning: nil)
|
|
return
|
|
}
|
|
|
|
continuation.resume(returning: files?.first)
|
|
}
|
|
}
|
|
}
|