Будет ли мой код возвращать ответ карусели с более чем одной карточкой в ​​выполнении Dialogflow - PullRequest
0 голосов
/ 07 мая 2020

Я пишу выполнение запроса woocommerce api, сопоставляю возвращенные продукты и создаю карусель возвращенных продуктов с определенным атрибутом. Я предполагаю, что с помощью map () и создания объекта карусели диалогового потока только с одним элементом, описанным с использованием каждого продукта, функция сможет вернуть все продукты в карусели, как показано здесь:

    // short listing products
                        products.map((eachProduct: any) => {
                            // console.log("eachProduct: ", eachProduct);
                            eachProduct.attributes.map((eachAttribute: { name: string, options: string[] }) => {
                                if (eachAttribute.name === "usedfor"
                                    && eachAttribute.options.some(x => x.toLowerCase() === HealthProblem.toLowerCase())) {


                                    conv.ask(
                                        new Carousel({
                                            items: {
                                                [eachProduct.name]: {
                                                    title: eachProduct.name,
                                                    description: eachProduct.short_description.replace(/<(?:.|\n)*?>/gm, '').replace(/&[^\s]*/, ''),
                                                    image: new Image({
                                                        url: eachProduct.images[0].src,
                                                        alt: "Image of " + eachProduct.name
                                                    })
                                                }
                                            }
                                        })
                                    );
                                    conv.ask("Learn What Wallach Says about " + HealthProblem + " (3rd Party Site)");
                                    conv.ask(
                                        new BasicCard({
                                            buttons: [
                                            new Button({ title: `Wallach on ${HealthProblem} (3rd Party Site)`, url: 'https://example.com' + HealthProblem })
                                            ],
                                            title: 'Search Wallach Database',
                                            image: new Image({
                                                url:
                                                'https://example.com/circle.png',
                                                alt: 'photo of doctor wallach'
                                        }),
                                    // subtitle: 'Test subtitle',
                                    // text: 'Test text'
                                })
                            );
                                }
                            })
                        });

                        if (products.length) {

                            conv.ask(`You might be looking for these products: `);


                            // conv.ask(new Suggestions(`I have got a different health problem`))
                            agent.add(conv)
                            return;

                        } 

Или я должен создать свой объект карусели следующим образом:

conv.ask(
                                        new Carousel({
                                            items: {
                                                [eachProduct.name[0]]: {
                                                    title: eachProduct.name,
                                                    description: eachProduct.short_description.replace(/<(?:.|\n)*?>/gm, '').replace(/&[^\s]*/, ''),
                                                    image: new Image({
                                                        url: eachProduct.images[0].src,
                                                        alt: "Image of " + eachProduct.name
                                                    })
                                                },
                                               [eachProduct.name[1]]: {
                                                    title: eachProduct.name,
                                                    description: eachProduct.short_description.replace(/<(?:.|\n)*?>/gm, '').replace(/&[^\s]*/, ''),
                                                    image: new Image({
                                                        url: eachProduct.images[0].src,
                                                        alt: "Image of " + eachProduct.name
                                                    })
                                                },                                           }
                                        })
                                    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...