Я пишу выполнение запроса 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
})
}, }
})
);