telegram-bot-rb/telegram-bot

View on GitHub
lib/telegram/bot/middleware.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

require 'active_support/concern'
require 'active_support/core_ext/hash/indifferent_access'
require 'active_support/json'
require 'action_dispatch'

module Telegram
  module Bot
    class Middleware
      attr_reader :bot, :controller

      def initialize(bot, controller)
        @bot = bot
        @controller = controller
      end

      def call(env)
        request = ActionDispatch::Request.new(env)
        update = request.request_parameters
        controller.dispatch(bot, update, request)
        [200, {}, ['']]
      end

      def inspect
        "#<#{self.class.name}(#{controller&.name})>"
      end
    end
  end
end