Sha256: 915eedd4f3497583f077fae2447dfac6b367019fd757a6519221163e8740760c

Contents?: true

Size: 877 Bytes

Versions: 13

Compression:

Stored size: 877 Bytes

Contents

module RailsTwirp
  module Instrumentation
    extend ActiveSupport::Concern

    include AbstractController::Logger

    def process_action(*)
      raw_payload = {
        controller: self.class.name,
        action: action_name,
        request: request,
        http_request: http_request,
        headers: http_request.headers,
        path: http_request.fullpath
      }

      ActiveSupport::Notifications.instrument("start_processing.rails_twirp", raw_payload)

      ActiveSupport::Notifications.instrument("process_action.rails_twirp", raw_payload) do |payload|
        result = super
        if response_body.is_a?(Twirp::Error)
          payload[:code] = response_body.code
          payload[:msg] = response_body.msg
        else
          payload[:code] = :success
        end
        payload[:response] = response_body
        result
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
rails_twirp-0.13.2 lib/rails_twirp/instrumentation.rb
rails_twirp-0.13.1 lib/rails_twirp/instrumentation.rb
rails_twirp-0.13.0 lib/rails_twirp/instrumentation.rb
rails_twirp-0.12.0 lib/rails_twirp/instrumentation.rb
rails_twirp-0.11.0 lib/rails_twirp/instrumentation.rb
rails_twirp-0.10.0 lib/rails_twirp/instrumentation.rb
rails_twirp-0.9.1 lib/rails_twirp/instrumentation.rb
rails_twirp-0.9.0 lib/rails_twirp/instrumentation.rb
rails_twirp-0.8.0 lib/rails_twirp/instrumentation.rb
rails_twirp-0.7.2 lib/rails_twirp/instrumentation.rb
rails_twirp-0.7.1 lib/rails_twirp/instrumentation.rb
rails_twirp-0.7.0 lib/rails_twirp/instrumentation.rb
rails_twirp-0.6.0 lib/rails_twirp/instrumentation.rb