This repository has been archived by the owner on May 30, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 9
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.