Sha256: 958970e212df29e9e65ae813a9b72f0f832a596ae56ee12de97404adfef99d09

Contents?: true

Size: 1.3 KB

Versions: 2

Compression:

Stored size: 1.3 KB

Contents

require 'net/http'
require 'uri'
require 'json'
require 'base64'

module Zikrash
  class SendReport
    attr_accessor :project_key
    attr_accessor :exception_info_data
    attr_accessor :session_info
    attr_accessor :params_info
    attr_accessor :additional_reports

    def initialize(project_key, exception_info_data, session_info, params_info, additional_reports)
      self.project_key = project_key
      self.exception_info_data = exception_info_data
      self.session_info = session_info
      self.params_info = params_info
      self.additional_reports = additional_reports
    end

    def let_it_go
      project_url = unwrap_project_url

      begin
        uri = URI.parse(project_url)
        uri.kind_of?(URI::HTTP)
      rescue URI::InvalidURIError
        return false
      end

      http = Net::HTTP.new(uri.host, uri.port)

      request = Net::HTTP::Post.new(uri.path, {'Content-Type' => 'application/json'})
      request.body = form_request_body

      http.request(request)
    end

    private

    def unwrap_project_url
      Base64.decode64(project_key)
    end

    def form_request_body
      {
          exception_info: exception_info_data,
          session_info: session_info,
          params_info: params_info,
          additional_reports: additional_reports
      }.to_json
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
zikrash-1.1.0 lib/zikrash/send_report.rb
zikrash-1.0.1 lib/zikrash/send_report.rb