Sha256: 5b2a2f226ec6a89729058d036ffa7ceda07d90eaca17961821911fb81f5e92dc

Contents?: true

Size: 1.19 KB

Versions: 38

Compression:

Stored size: 1.19 KB

Contents

module Appsignal
  class JSExceptionTransaction
    attr_reader :uuid, :ext

    def initialize(data)
      @data = data
      @uuid = SecureRandom.uuid
      @ext = Appsignal::Extension.start_transaction(@uuid, Appsignal::Transaction::FRONTEND, 0)

      set_action
      set_metadata
      set_error
      set_sample_data
    end

    def set_action
      return unless @data["action"]
      ext.set_action(@data["action"])
    end

    def set_metadata
      return unless @data["path"]
      ext.set_metadata("path", @data["path"])
    end

    def set_error
      ext.set_error(
        @data["name"],
        @data["message"] || "",
        Appsignal::Utils.data_generate(@data["backtrace"] || [])
      )
    end

    def set_sample_data
      {
        :params       => @data["params"],
        :session_data => @data["session_data"],
        :environment  => @data["environment"],
        :tags         => @data["tags"]
      }.each do |key, data|
        next unless data.is_a?(Array) || data.is_a?(Hash)
        ext.set_sample_data(
          key.to_s,
          Appsignal::Utils.data_generate(data)
        )
      end
    end

    def complete!
      ext.finish(0)
      ext.complete
    end
  end
end

Version data entries

38 entries across 38 versions & 1 rubygems

Version Path
appsignal-2.5.3-java lib/appsignal/js_exception_transaction.rb
appsignal-2.5.3 lib/appsignal/js_exception_transaction.rb
appsignal-2.5.3.alpha.2 lib/appsignal/js_exception_transaction.rb
appsignal-2.5.3.alpha.2-java lib/appsignal/js_exception_transaction.rb
appsignal-2.5.3.alpha.1 lib/appsignal/js_exception_transaction.rb
appsignal-2.5.3.alpha.1-java lib/appsignal/js_exception_transaction.rb
appsignal-2.5.2-java lib/appsignal/js_exception_transaction.rb
appsignal-2.5.2 lib/appsignal/js_exception_transaction.rb
appsignal-2.5.1-java lib/appsignal/js_exception_transaction.rb
appsignal-2.5.1 lib/appsignal/js_exception_transaction.rb
appsignal-2.5.1.beta.1-java lib/appsignal/js_exception_transaction.rb
appsignal-2.5.1.beta.1 lib/appsignal/js_exception_transaction.rb
appsignal-2.5.0-java lib/appsignal/js_exception_transaction.rb
appsignal-2.5.0 lib/appsignal/js_exception_transaction.rb
appsignal-2.5.0.beta.1-java lib/appsignal/js_exception_transaction.rb
appsignal-2.5.0.beta.1 lib/appsignal/js_exception_transaction.rb
appsignal-2.5.0.alpha.1-java lib/appsignal/js_exception_transaction.rb
appsignal-2.5.0.alpha.1 lib/appsignal/js_exception_transaction.rb
appsignal-2.4.3 lib/appsignal/js_exception_transaction.rb
appsignal-2.4.2 lib/appsignal/js_exception_transaction.rb