Method: BotFramework::Session#dispatch

Defined in:
lib/bot_framework/session.rb

#dispatch(session_state, message) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/bot_framework/session.rb', line 50

def dispatch(session_state, message)
  index = 0
  session = self
  now = Time.now
  middleware = @options[:middleware] || []

  _next = lambda do
    handler = middleware[index] if index < middleware.length
    if handler
      index += 1
      handler(session, _next)
    else
      @in_middleware = false
      @session_state[:last_acess] = now
      done
    end
  end
  session_state ||= { call_stack: [], last_acess: Time.now, version: 0.0 }
  # Making sure that dialog is properly initialized
  cur = cur_dialog
  self.dialog_data = cur.state if cur
  # Dispatch message
  message ||= { text: '' }
  message[:type] ||= 'message'
  # Ensure that localized prompts are loaded
  # TODO
  self
end