Returning the Book Entity
Opened this issue · 2 comments
Urkman commented
Hello,
in AddBook you return the BookEntity. But, how can the User use this in a following shortcut?
For example Weather has a Shortcut for this to get a property from the Weather entity...
How can we solve this?
Thanks
wilks7 commented
I am having a similar question/issue, I have the following and can't pass a value:
struct ChatAppEntity: AppEntity {
let id: UUID
@Property(title: "Title") var title: String
init(chat: ChatEntity){
self.id = UUID()
self.title = chat.title
}
}
struct OpenChatIntent: AppIntent {
@Parameter(title: "Chat") var chat: ChatAppEntity?
@MainActor
func perform() async throws -> some ProvidesDialog {
if let chat, let chatEntity: ChatEntity = try? CoreData.shared.fetch(with: chat.id) {
NavigationManager.shared.navigateTo(chat: chatEntity)
} else {
NavigationManager.shared.navigateToList()
}
return .result(dialog: "Okay, opening.")
}
}
struct StartChatIntent: AppIntent {
static var openAppWhenRun = false
@Parameter(title: "Title", description: "A title for the new chat", requestValueDialog: "What should the name be?")
var title: String
@MainActor
func perform() async throws -> some ReturnsValue & ProvidesDialog {
let appEntity = ChatAppEntity(chat)
return .result(value: appEntity, dialog: "Added \(appEntity.title)")
}
}
I don't understand how to use the RetunsValue in another AppIntent? I tried changing the perform's return type to IntentResult but I can't initialize OpenChatIntent with my value:
@MainActor
func perform() async throws -> some IntentResult {
let chat: ChatEntity = CoreData.shared.createChat(title)
let appEntity = ChatAppEntity(chat)
return .result(value: appEntity, opensIntent: OpenChatIntent(chat: appEntity), dialog: "Added \(appEntity.title)")
}
Is there a different variable declaration I need to declare on OpenChatIntent so it can accept the AppEntity value?
Deleted user commented
Parameter is not resolving its repeating same question. do you have any ideas?