import CoreData
struct GetRemoteCaptures: AppIntent {
- static var title: LocalizedStringResource = "Get remote captures"
-
- static var description =
- IntentDescription("Return a list of remote captures")
-
+ 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.")
+ 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 ?? "")} ?? []
+
+ let finalResults = results?.compactMap { URL(string: $0.url ?? "") } ?? []
return .result(value: finalResults)
}
}