My root card contains a list of some items. I make a request inside root card. Whem I click on some item I'm pushing the card with details of this item where I could change state of this item on server (by post request)
After that I want to return on previous card (root) and get new list of items from my server. But it doesn't work
/** Call this card in homepageTrigger */
function createRootCard() {
/** Get items from server */
const items = getItems();
const card = CardService.newCardBuilder();
/** add items to card where every item has action click to open item details card */
items.forEach(item => {
/** some code */
const header = CardService.newDecoratedText()
.setText(item.name)
.setBottomLabel(item.type)
.setOnClickAction(
CardService.newAction()
.setFunctionName('openDetails')
.setParameters(item)
);
/** some code */
})
return card.build();
}
/** Add details card */
function openDetails(params) {
const { parameters } = params;
return CardService.newNavigation().pushCard(
createDetailsCard(parameters)
);
};
}
/** Create details card*/
function createDetailsCard(...item) {
const card = CardService.newCardBuilder();
const contextButton = CardService.newTextButton()
.setText("Add item")
.setOnClickAction(
CardService.newAction()
.setFunctionName('addItem')
.setParameters({ id: item.id })
})
);
/** Add button to card */
return card.build();
}
function addItem(params) {
const { parameters } = params;
/** Send add request on server */
addItemOnServer(parameters.id);
/** Return on previous card and update state */
return CardService.newActionResponseBuilder()
.setNavigation(CardService.newNavigation().popCard())
.setStateChanged(true)
.build();
}