intercom_summary 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ed16bc6797e19642697898f8afbfe1ccef4ea2ad
4
- data.tar.gz: 9267bb518c90a801cef1a0c2d9c59de9f39ed135
3
+ metadata.gz: 4745db09e0bf44618b471971d5b99f495c3b4cde
4
+ data.tar.gz: 39f08f158a0fda2857b48775c4c13f166b36b957
5
5
  SHA512:
6
- metadata.gz: 5923f59020a721bdbe823acc9e3ecf07b86dd9854a5b4353723b9d028d2bc0a1a6cb64b3f5abce611003d03bb23757522af56ef5b17c02a36f9d935c2a1e2771
7
- data.tar.gz: 7badfdffec2395b55c585aff066f7a1458df0040441293f25524eabc2e3581a4992910314b96ce40742e565c5efeaac75eac7e79f1737150914ae4e1cba5f0ae
6
+ metadata.gz: bfcbf082b07a2f7200191d67ccfe3a1923cf4cd52687f1023a268bf98e8e0916436fa17b640a1b35440f3dcf2f27e874fa765bf2eaa63b452bcb1a3417a1c9b2
7
+ data.tar.gz: a189591a80e17d7446f1c5b7d9cc72477be68a63af2041c1e0ea3fea2b5273c1d4f312709a5ea079e136f7cc4a450f6e2d75c40e7b0708c112c4bc684f76f0cc
@@ -4,30 +4,49 @@ require 'time'
4
4
 
5
5
  module IntercomSummary
6
6
  class CLI
7
- SECONDS_OF_DAY = (60 * 60 * 24).freeze
8
-
9
7
  def self.start
10
- users = []
11
-
12
8
  intercom = Intercom::Client.new(app_id: ENV['INTERCOM_APP_ID'], api_key: ENV['INTERCOM_APP_KEY'])
9
+
10
+ # User summaries
11
+ users = []
13
12
  intercom.users.scroll.each { |user| users.push user }
14
13
 
15
- monthly_active_users = users.select { |user| user.last_request_at.to_i + SECONDS_OF_DAY * 30 > Time.now.to_i }
16
- weekly_active_users = users.select { |user| user.last_request_at.to_i + SECONDS_OF_DAY * 7 > Time.now.to_i }
17
- daily_active_users = users.select { |user| user.last_request_at.to_i + SECONDS_OF_DAY * 1 > Time.now.to_i }
14
+ puts "Monthly active users\t\t#{filter_by_last_request_at(users, 30).size}"
15
+ puts "Weekly active users\t\t#{filter_by_last_request_at(users, 7).size}"
16
+ puts "Daily active users\t\t#{filter_by_last_request_at(users, 1).size}"
17
+
18
+ puts "Monthly signed up users\t\t#{filter_by_signed_up_at(users, 30).size}"
19
+ puts "Weekly signed up users\t\t#{filter_by_signed_up_at(users, 7).size}"
20
+ puts "Daily signed up users\t\t#{filter_by_signed_up_at(users, 1).size}"
18
21
 
19
- monthly_signed_up_users = users.select { |user| user.signed_up_at.to_i < Time.now.to_i && user.signed_up_at.to_i + SECONDS_OF_DAY * 30 > Time.now.to_i }
20
- weekly_signed_up_users = users.select { |user| user.signed_up_at.to_i < Time.now.to_i && user.signed_up_at.to_i + SECONDS_OF_DAY * 7 > Time.now.to_i }
21
- daily_signed_up_users = users.select { |user| user.signed_up_at.to_i < Time.now.to_i && user.signed_up_at.to_i + SECONDS_OF_DAY * 1 > Time.now.to_i }
22
+ # Company summaries
23
+ companies = []
24
+ intercom.companies.scroll.each { |company| companies.push company }
22
25
 
26
+ puts "Monthly active companies\t#{filter_by_last_request_at(companies, 30).size}"
27
+ puts "Weekly active companies\t\t#{filter_by_last_request_at(companies, 7).size}"
28
+ puts "Daily active companies\t\t#{filter_by_last_request_at(companies, 1).size}"
23
29
 
24
- puts "Monthly active users\t#{monthly_active_users.size}"
25
- puts "Weekly active users\t#{weekly_active_users.size}"
26
- puts "Daily active users\t#{daily_active_users.size}"
30
+ puts "Monthly signed up companies\t#{filter_by_created_at(companies, 30).size}"
31
+ puts "Weekly signed up companies\t#{filter_by_created_at(companies, 7).size}"
32
+ puts "Daily signed up companies\t#{filter_by_created_at(companies, 1).size}"
33
+ end
34
+
35
+ def self.filter_by_last_request_at(list, days)
36
+ list.select { |e| is_date_before_days(e.last_request_at, days) }
37
+ end
38
+
39
+ def self.filter_by_signed_up_at(list, days)
40
+ list.select { |e| is_date_before_days(e.signed_up_at, days) }
41
+ end
42
+
43
+ def self.filter_by_created_at(list, days)
44
+ list.select { |e| is_date_before_days(e.created_at, days) }
45
+ end
27
46
 
28
- puts "Monthly signed up users\t#{monthly_signed_up_users.size}"
29
- puts "Weekly signed up users\t#{weekly_signed_up_users.size}"
30
- puts "Daily signed up users\t#{daily_signed_up_users.size}"
47
+ def self.is_date_before_days(date, days)
48
+ seconds_of_day = (60 * 60 * 24).freeze
49
+ date && date.to_i < Time.now.to_i && date.to_i + seconds_of_day * days > Time.now.to_i
31
50
  end
32
51
  end
33
52
  end
@@ -1,3 +1,3 @@
1
1
  module IntercomSummary
2
- VERSION = '0.1.2'
2
+ VERSION = '0.2.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: intercom_summary
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - unhappychoice
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-06 00:00:00.000000000 Z
11
+ date: 2017-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: intercom