class BotPlatform::TurnContext

Attributes

_on_delete_activities[RW]
_on_send_activities[RW]
_on_update_activities[RW]
activity[R]
adpter[R]
buffered_reply_activities[RW]
channel_id[R]
from[R]
locale[RW]
responded[RW]
state[RW]
turn_state[RW]

Public Class Methods

dup_context(context, activity) click to toggle source
# File lib/bot_platform/turn_context.rb, line 49
def self.dup_context(context, activity)
  ctx = TurnContext.new context.adapter, activity
  ctx.state = context.state
  ctx.responded = context.responded
  if context.is_a?(TurnContext)
    ctx.buffered_reply_activities = context.buffered_reply_activities
    # keep private middleware pipeline hooks.
    ctx._on_send_activities = context._on_send_activities
    ctx._on_update_activity = context._on_update_activity
    ctx._on_delete_activity = context._on_delete_activity
  end
  return ctx
end
new(adapter, activity) click to toggle source
# File lib/bot_platform/turn_context.rb, line 21
def initialize(adapter, activity)
  @adapter = adapter
  @activity = activity # incoming activity
  @from = activity.from
  @channel_id = activity.channel_id
  @responded = false
  @locale = "ja"
  @_on_send_activities = []
  @_on_update_activities = []
  @_on_delete_activities = []

end

Public Instance Methods

add_on_delete_activits(activity_handler) click to toggle source
# File lib/bot_platform/turn_context.rb, line 44
def add_on_delete_activits(activity_handler)
  @_on_delete_activities << activity_handler
  self
end
add_on_send_activities(activity_handler) click to toggle source
# File lib/bot_platform/turn_context.rb, line 34
def add_on_send_activities(activity_handler)
  @_on_send_activities << activity_handler
  self
end
add_on_update_activities(activity_handler) click to toggle source
# File lib/bot_platform/turn_context.rb, line 39
def add_on_update_activities(activity_handler)
  @_on_update_activities << activity_handler
  self
end
send_activities(activities) click to toggle source

Sends a set of activities to the sender of the incoming activity.

# File lib/bot_platform/turn_context.rb, line 96
def send_activities(activities)
  assert_activity_is_not_null activities
  assert_activity_is_not_null activities[0]

  @adapter.send_activities(self, activities)
end
send_activity(activity) click to toggle source
# File lib/bot_platform/turn_context.rb, line 90
def send_activity(activity)
  activity.to = @activity.from
  send_activities([activity])
end
send_confirm(text,prefix="") click to toggle source
# File lib/bot_platform/turn_context.rb, line 68
def send_confirm(text,prefix="")
  activity_to_send = Activity.new(Activity::TYPES[:confirm], {text: text, prefix: prefix})
  send_activity(activity_to_send)
end
send_content(content) click to toggle source
# File lib/bot_platform/turn_context.rb, line 83
def send_content(content)
  activity_to_send = Activity.new(Activity::TYPES[:carousel], {
    content: content, to: @activity.from
  })
  send_activity(activity_to_send)
end
send_image(preview_url, resource_url) click to toggle source
# File lib/bot_platform/turn_context.rb, line 78
def send_image(preview_url, resource_url)
  activity_to_send = Activity.new(Activity::TYPES[:image], {resource_url: resource_url, preview_url: preview_url})
  send_activity(activity_to_send)
end
send_message(text) click to toggle source
# File lib/bot_platform/turn_context.rb, line 63
def send_message(text)
  activity_to_send = Activity.new(Activity::TYPES[:message], {text: text})
  send_activity(activity_to_send)
end
send_options(caption, prefix, options) click to toggle source
# File lib/bot_platform/turn_context.rb, line 73
def send_options(caption, prefix, options)
  activity_to_send = Activity.new(Activity::TYPES[:options], {text: caption, options: options, prefix: prefix})
  send_activity(activity_to_send)
end