This repository was archived by the owner on May 30, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 5
Clova Session
Yuichi Morimichi edited this page Sep 14, 2018
·
2 revisions
Clova Session is managed by SessionHolder。
The usage of SessionHolder and its attribute values is as follows.
@IntentMapping("UpdateItemOrder")
CEKResponse handleUpdateOrder(SessionHolder sessionHolder,
@SessionValue Optional<ItemOrder> itemOrder) {
// 1st:empty, 2nd:contains ItemOrder instance
System.out.println(itemOrder);
// 1st:null, 2nd:Map instance
System.out.println(itemOrder.getSession().getSessionAttribute().get("itemOrder"));
ItemOrder newItemOrder = itemOrder.orElseGet(() -> createItemOrder());
sessionHolder.setAttribute("itemOrder", newItemOrder);
return CEKResponse.builder()
.outputSpeech(OutputSpeech.text("Created an order."))
.shouldEndSession(false)
.build();
}SessionHolder can be obtained with handler arguments. Its attribute value is also the same.
By setting the attribute value with SessionHolder.setAttribute(name, value), you can retrieve its attribute value in the next request in the same session.