blob: 58d9583e5a473214d10efd45c9bb46d4fa85461f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
import AppIntents
import CoreData
struct GetRemoteCaptures: AppIntent {
static var title: LocalizedStringResource = "Get remote captures"
static var description =
IntentDescription("Return a list of remote captures")
@Parameter(title: "Count") var count: Int?
static var parameterSummary: some ParameterSummary {
Summary("Get \(\.$count) latest captures.")
}
func perform() async throws -> some IntentResult & ReturnsValue {
let viewContext = PersistenceController.shared.container.viewContext
let fetchRequest = NSFetchRequest<CapturaRemoteFile>(entityName: "CapturaRemoteFile")
fetchRequest.fetchLimit = min(10, max(1, count ?? 5))
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "timestamp", ascending: false)]
let results = await viewContext.perform {
return try? viewContext.fetch(fetchRequest)
}
let finalResults = results?.compactMap { URL(string: $0.url ?? "")} ?? []
return .result(value: finalResults)
}
}
|