Class: FastlaneCore::AnalyticsIngesterClient

Inherits:
Object
  • Object
show all
Defined in:
fastlane_core/lib/fastlane_core/analytics/analytics_ingester_client.rb

Instance Method Summary collapse

Instance Method Details

#post_events(events) ⇒ Object



7
8
9
10
11
12
13
14
# File 'fastlane_core/lib/fastlane_core/analytics/analytics_ingester_client.rb', line 7

def post_events(events)
  unless Helper.test?
    Thread.new do
      send_request(json: { analytics: events }.to_json)
    end
  end
  return true
end

#post_request(body: nil) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'fastlane_core/lib/fastlane_core/analytics/analytics_ingester_client.rb', line 23

def post_request(body: nil)
  if ENV['METRICS_DEBUG']
    write_json(body)
  end
  url = ENV["FASTLANE_METRICS_URL"] || "https://fastlane-metrics.fabric.io"

  require 'faraday'
  connection = Faraday.new(url) do |conn|
    conn.adapter(Faraday.default_adapter)
    if ENV['METRICS_DEBUG']
      conn.proxy = "https://127.0.0.1:8888"
      conn.ssl[:verify_mode] = OpenSSL::SSL::VERIFY_NONE
    end
  end
  connection.post do |req|
    req.url('/public')
    req.headers['Content-Type'] = 'application/json'
    req.body = body
  end
end

#send_request(json: nil, retries: 2) ⇒ Object



16
17
18
19
20
21
# File 'fastlane_core/lib/fastlane_core/analytics/analytics_ingester_client.rb', line 16

def send_request(json: nil, retries: 2)
  post_request(body: json)
rescue
  retries -= 1
  retry if retries >= 0
end

#write_json(body) ⇒ Object

This method is only for debugging purposes



45
46
47
# File 'fastlane_core/lib/fastlane_core/analytics/analytics_ingester_client.rb', line 45

def write_json(body)
  File.write("#{ENV['HOME']}/Desktop/mock_analytics-#{Time.now.to_i}.json", body)
end