class IntercomSummary::CLI
Public Class Methods
filter_by_created_at(list, days)
click to toggle source
# File lib/intercom_summary.rb, line 43 def self.filter_by_created_at(list, days) list.select { |e| is_date_before_days(e.created_at, days) } end
filter_by_last_request_at(list, days)
click to toggle source
# File lib/intercom_summary.rb, line 35 def self.filter_by_last_request_at(list, days) list.select { |e| is_date_before_days(e.last_request_at, days) } end
filter_by_signed_up_at(list, days)
click to toggle source
# File lib/intercom_summary.rb, line 39 def self.filter_by_signed_up_at(list, days) list.select { |e| is_date_before_days(e.signed_up_at, days) } end
is_date_before_days(date, days)
click to toggle source
# File lib/intercom_summary.rb, line 47 def self.is_date_before_days(date, days) seconds_of_day = (60 * 60 * 24).freeze date && date.to_i < Time.now.to_i && date.to_i + seconds_of_day * days > Time.now.to_i end
start()
click to toggle source
# File lib/intercom_summary.rb, line 7 def self.start intercom = Intercom::Client.new(app_id: ENV['INTERCOM_APP_ID'], api_key: ENV['INTERCOM_APP_KEY']) # User summaries users = [] intercom.users.scroll.each { |user| users.push user } puts "Monthly active users\t\t#{filter_by_last_request_at(users, 30).size}" puts "Weekly active users\t\t#{filter_by_last_request_at(users, 7).size}" puts "Daily active users\t\t#{filter_by_last_request_at(users, 1).size}" puts "Monthly signed up users\t\t#{filter_by_signed_up_at(users, 30).size}" puts "Weekly signed up users\t\t#{filter_by_signed_up_at(users, 7).size}" puts "Daily signed up users\t\t#{filter_by_signed_up_at(users, 1).size}" # Company summaries companies = [] intercom.companies.scroll.each { |company| companies.push company } puts "Monthly active companies\t#{filter_by_last_request_at(companies, 30).size}" puts "Weekly active companies\t\t#{filter_by_last_request_at(companies, 7).size}" puts "Daily active companies\t\t#{filter_by_last_request_at(companies, 1).size}" puts "Monthly signed up companies\t#{filter_by_created_at(companies, 30).size}" puts "Weekly signed up companies\t#{filter_by_created_at(companies, 7).size}" puts "Daily signed up companies\t#{filter_by_created_at(companies, 1).size}" end