mralexhay/Booky

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?

Parameter is not resolving its repeating same question. do you have any ideas?