class Aws::Lex::Conversation::Type::Checkpoint

Public Instance Methods

restore(conversation, opts = {}) click to toggle source

rubocop:disable Metrics/MethodLength, Metrics/AbcSize

# File lib/aws/lex/conversation/type/checkpoint.rb, line 30
def restore(conversation, opts = {})
  case dialog_action_type.raw
  when 'Close'
    conversation.close(
      intent: intent,
      fulfillment_state: opts.fetch(:fulfillment_state) { fulfillment_state },
      messages: opts.fetch(:messages)
    )
  when 'ConfirmIntent'
    conversation.confirm_intent(
      intent: intent,
      messages: opts.fetch(:messages)
    )
  when 'Delegate'
    conversation.delegate(
      intent: intent
    )
  when 'ElicitIntent'
    conversation.elicit_intent(
      intent: intent,
      messages: opts.fetch(:messages)
    )
  when 'ElicitSlot'
    conversation.elicit_slot(
      intent: intent,
      messages: opts.fetch(:messages),
      slot_to_elicit: slot_to_elicit
    )
  else
    raise ArgumentError, "invalid DialogActionType: `#{dialog_action_type.raw}`"
  end
end
restore!(conversation, opts = {}) click to toggle source

restore the checkpoint AND remove it from session

# File lib/aws/lex/conversation/type/checkpoint.rb, line 24
def restore!(conversation, opts = {})
  conversation.checkpoints.delete_if { |c| c.label == label }
  restore(conversation, opts)
end