Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Returning the Book Entity #8

Open
Urkman opened this issue Mar 22, 2023 · 2 comments
Open

Returning the Book Entity #8

Urkman opened this issue Mar 22, 2023 · 2 comments

Comments

@Urkman
Copy link

Urkman commented Mar 22, 2023

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
Copy link

wilks7 commented Apr 30, 2023

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?

@ghost
Copy link

ghost commented Jul 27, 2023

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants