Sha256: bf5df23ee86e2b28bca2484fed31b125e16a28039267ddec2ceb8b635897de8c

Contents?: true

Size: 706 Bytes

Versions: 5

Compression:

Stored size: 706 Bytes

Contents

class Bot::BotController < ActionController::Base
  before_action :verify_signature

  def notify
    @responses = bot_handler.handle(messages).compact
    adapter.send_messages(@responses, bot_username) if @responses.present?
    render json: []
  end

  private

  def verify_signature
    unless adapter.verify_signature(request.headers["HTTP_X_KIK_SIGNATURE"], request.raw_post, bot_username)
      head :forbidden
    end
  end

  def messages
    Array.wrap(params[:messages]).map do |m|
      m.merge(to: bot_username)
    end
  end

  def bot_username
    request.headers["HTTP_X_KIK_USERNAME"]
  end

  def adapter
    Bot.configuration.adapter
  end

  def bot_handler
    params[:bot]
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
bot-0.0.41 app/controllers/bot/bot_controller.rb
bot-0.0.40 app/controllers/bot/bot_controller.rb
bot-0.0.39 app/controllers/bot/bot_controller.rb
bot-0.0.38 app/controllers/bot/bot_controller.rb
bot-0.0.37 app/controllers/bot/bot_controller.rb