gosquared 3.0.7 → 3.0.8

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: 591265182e4e5898f3bb73eec0b53bff8473210b
4
- data.tar.gz: e42f68999d291a84f02f01cf44eabda722463ce5
3
+ metadata.gz: 309ca7ef73e75ec39499fb1a9829252e005becf1
4
+ data.tar.gz: 9bc864358cf057b48bf20309ac27d5ccbf9c1419
5
5
  SHA512:
6
- metadata.gz: 902168134149ddcfc2bf8c525b548f10e879a88c6ab4c2b01481860460862d0fdbe9031114409a48afb0d046d3ce25de0a33b8e8da06e91b33a6deee47aeb0fb
7
- data.tar.gz: 26ec10fb9b56191e0afd977b71ce7d4033b1332097ccdce7fcdfdfbf46c46feafb603a570cf8dda4c8c2ecfd63e51e4b820d62a08e4fe2f3152fe6838dc1b875
6
+ metadata.gz: e45e02c53f0b434d3febef577d0a103df52050becd72656f0a37ae94f5173008ab044e00ae5d73fcfab7255c8dcb652e9cad25fb14217d809addc9aa34f709f2
7
+ data.tar.gz: 921a827fd9a71960975fd729d16f97a8a88b46588de9e266a10e460387d8883bab7fd7a02392142d1b591ce4a2040996cfeb01556d17c9af1a30b1c8b5c16489
data/Gemfile CHANGED
@@ -4,5 +4,5 @@ ruby '2.2.2'
4
4
 
5
5
  group :development, :test do
6
6
  gem 'rspec'
7
- gem 'webmock'
7
+ gem 'webmock'
8
8
  end
@@ -1,45 +1,42 @@
1
- require_relative "gosquared/trends"
2
- require_relative "gosquared/tracking"
3
- require_relative "gosquared/people"
4
- require_relative "gosquared/now"
5
- require_relative "gosquared/account"
1
+ require_relative 'gosquared/trends'
2
+ require_relative 'gosquared/tracking'
3
+ require_relative 'gosquared/people'
4
+ require_relative 'gosquared/now'
5
+ require_relative 'gosquared/account'
6
6
 
7
7
  module Gosquared
8
-
9
- VERSION = "3.0.6"
10
-
11
- class RubyLibrary
12
-
13
- def initialize api_key, site_id
14
- @api_key = api_key
15
- @site_id = site_id
16
- raise 'api key cannot be empty/nil' if api_key.nil? || api_key.empty?
17
- raise 'site_token cannot be empty/nil' if site_id.nil? || site_id.empty?
18
- end
19
-
20
- def trends
21
- @trends ||= Gosquared::Trends.new(@api_key, @site_id)
22
- end
23
-
24
- def tracking
25
- @tracking ||= Gosquared::Tracking.new(@api_key, @site_id)
26
- end
27
-
28
- def people
29
- @people ||= Gosquared::People.new(@api_key, @site_id)
30
- end
31
-
32
- def now
33
- @now ||= Gosquared::Now.new(@api_key, @site_id)
34
- end
35
-
36
- def account
37
- @account ||= Gosquared::Account.new(@api_key, @site_id)
38
- end
39
-
40
- end
8
+ VERSION = '3.0.7'.freeze
9
+
10
+ class RubyLibrary
11
+ def initialize(api_key, site_id)
12
+ @api_key = api_key
13
+ @site_id = site_id
14
+ raise 'api key cannot be empty/nil' if api_key.nil? || api_key.empty?
15
+ raise 'site_token cannot be empty/nil' if site_id.nil? || site_id.empty?
16
+ end
17
+
18
+ def trends
19
+ @trends ||= Gosquared::Trends.new(@api_key, @site_id)
20
+ end
21
+
22
+ def tracking
23
+ @tracking ||= Gosquared::Tracking.new(@api_key, @site_id)
24
+ end
25
+
26
+ def people
27
+ @people ||= Gosquared::People.new(@api_key, @site_id)
28
+ end
29
+
30
+ def now
31
+ @now ||= Gosquared::Now.new(@api_key, @site_id)
32
+ end
33
+
34
+ def account
35
+ @account ||= Gosquared::Account.new(@api_key, @site_id)
36
+ end
37
+ end
41
38
  end
42
39
 
43
40
  module GoSquared
44
- include Gosquared
41
+ include Gosquared
45
42
  end
@@ -3,8 +3,8 @@ require_relative 'client'
3
3
  module Gosquared
4
4
  class Account
5
5
  BASEURL = 'https://api.gosquared.com/account/v1/'.freeze
6
- DIMENSIONS = %w(blocked feeds reportPreferences sharedUsers sites taggedVisitors triggerTypes webhooks).freeze
7
- DIMENSION_FILTER = %w(token webhookID visitorID triggerType).freeze
6
+ DIMENSIONS = %w[blocked feeds reportPreferences sharedUsers sites taggedVisitors triggerTypes webhooks].freeze
7
+ DIMENSION_FILTER = %w[token webhookID visitorID triggerType].freeze
8
8
  @@filters = { presenter: @presenter, ip: @ip, url: @url, email: @email }
9
9
 
10
10
  def initialize(api_key, site_token, client = Gosquared::Client.new)
@@ -4,67 +4,65 @@ require 'json'
4
4
 
5
5
  module Gosquared
6
6
  class Client
7
+ def get(url)
8
+ uri = URI(url)
9
+ begin
10
+ response = Net::HTTP.get(uri)
11
+ rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError,
12
+ Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => e
13
+ puts "[error] HTTP error: #{e}"
14
+ begin
15
+ JSON.parse(response)
16
+ rescue StandardError => e
17
+ puts '[error] StandardError: Could not parse JSON'
18
+ response = false
19
+ end
20
+ end
21
+ @data = JSON.parse(response) if response
22
+ end
7
23
 
8
- def get(url)
9
- uri = URI(url)
10
- begin
11
- response = Net::HTTP.get(uri)
12
- rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError,
13
- Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => e
14
- puts "[error] HTTP error: #{e}"
15
- begin
16
- JSON.parse(response)
17
- rescue StandardError => e
18
- puts "[error] StandardError: Could not parse JSON"
19
- response = false
20
- end
21
- end
22
- @data = JSON.parse(response) if response
23
- end
24
+ def post(url, data)
25
+ uri = URI.parse(url)
26
+ begin
27
+ https = Net::HTTP.new(uri.host, uri.port)
28
+ https.use_ssl = true
29
+ request = Net::HTTP::Post.new(uri.request_uri, initheader = { 'Content-Type' => 'application/json', 'User-Agent' => 'ruby-client/' + VERSION })
30
+ request.body = "[#{data.to_json}]"
31
+ response = https.request(request)
32
+ rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError,
33
+ Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => e
34
+ puts "[error] HTTP error: #{e}"
35
+ begin
36
+ response.message
37
+ rescue StandardError => e
38
+ puts '[error] StandardError: Could not print response message'
39
+ response = false
40
+ end
41
+ end
24
42
 
25
- def post(url,data)
26
- uri = URI.parse(url)
27
- begin
28
- https = Net::HTTP.new(uri.host, uri.port)
29
- https.use_ssl = true
30
- request = Net::HTTP::Post.new(uri.request_uri, initheader = {'Content-Type' =>'application/json', 'User-Agent' => 'ruby-client/'+ VERSION})
31
- request.body = "[#{data.to_json}]"
32
- response = https.request(request)
33
- rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError,
34
- Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => e
35
- puts "[error] HTTP error: #{e}"
36
- begin
37
- response.message
38
- rescue StandardError => e
39
- puts "[error] StandardError: Could not print response message"
40
- response = false
41
- end
42
- end
43
-
44
- response
43
+ response
45
44
  end
46
45
 
47
- def delete(url,data)
48
- uri = URI.parse(url)
49
- begin
50
- https = Net::HTTP.new(uri.host, uri.port)
51
- https.use_ssl = true
52
- request = Net::HTTP::Delete.new(uri.request_uri, initheader = {'Content-Type' =>'application/json'})
53
- request.body = "[#{data.to_json}]"
54
- response = https.request(request)
55
- rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError,
56
- Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => e
57
- puts "[error] HTTP error: #{e}"
58
- begin
59
- response.message
60
- rescue StandardError => e
61
- puts "[error] StandardError: Could not print response message"
62
- response = false
63
- end
64
- end
65
-
66
- response
67
- end
46
+ def delete(url, data={})
47
+ uri = URI.parse(url)
48
+ begin
49
+ https = Net::HTTP.new(uri.host, uri.port)
50
+ https.use_ssl = true
51
+ request = Net::HTTP::Delete.new(uri.request_uri, initheader = { 'Content-Type' => 'application/json' })
52
+ request.body = "[#{data.to_json}]"
53
+ response = https.request(request)
54
+ rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError,
55
+ Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => e
56
+ puts "[error] HTTP error: #{e}"
57
+ begin
58
+ response.message
59
+ rescue StandardError => e
60
+ puts '[error] StandardError: Could not print response message'
61
+ response = false
62
+ end
63
+ end
68
64
 
65
+ response
66
+ end
69
67
  end
70
68
  end
@@ -1,53 +1,50 @@
1
- require_relative "client"
1
+ require_relative 'client'
2
2
 
3
3
  module Gosquared
4
4
  class Now
5
-
6
- BASEURL = "https://api.gosquared.com/now/v3/".freeze
7
- DIMENSIONS = %w(browsers campaigns concurrents engagement geo languages notifications
8
- organisations overview pages platforms sources time timeSeries visitors).freeze
9
- @@filters = {date_format: @date_format, from: @from, to: @to,
10
- format: @format, limit: @limit, sort: @sort,
11
- presenter: @presenter, visitors_mode: @string, href: @href,
12
- drill_limit: @drill_limit, sections: @sections,
13
- minimal: @minimal, interval: @interval}
14
-
15
- def initialize(api_key, site_token, client = Gosquared::Client.new)
16
- @site_token = site_token
17
- @api_key = api_key
18
- @client = client
19
- end
20
-
21
-
22
- DIMENSIONS.each do |dimension|
23
- define_method dimension do
24
- @dimension = dimension
25
- self
26
- end
27
- end
28
-
29
- @@filters.each do |key, value|
30
- define_method key do |argument|
31
- @@filters[key] = argument
32
- self
33
- end
34
- end
35
-
36
- def fetch
37
- data = @client.get(url)
38
- @@filters.each{|key, value| @@filters[key]=nil} if data
39
- data
40
- end
41
-
42
- private
43
-
44
- def url
45
- array = [""]
46
- @url = BASEURL + @dimension + "?api_key=#{@api_key}" + "&site_token=#{@site_token}"
47
- @@filters.each {|key, value| array << "#{key}=#{value}" if value }
48
- parameters=array.join('&')
49
- @url = @url.concat(parameters)
50
- end
51
-
5
+ BASEURL = 'https://api.gosquared.com/now/v3/'.freeze
6
+ DIMENSIONS = %w[browsers campaigns concurrents engagement geo languages notifications
7
+ organisations overview pages platforms sources time timeSeries visitors].freeze
8
+ @@filters = { date_format: @date_format, from: @from, to: @to,
9
+ format: @format, limit: @limit, sort: @sort,
10
+ presenter: @presenter, visitors_mode: @string, href: @href,
11
+ drill_limit: @drill_limit, sections: @sections,
12
+ minimal: @minimal, interval: @interval }
13
+
14
+ def initialize(api_key, site_token, client = Gosquared::Client.new)
15
+ @site_token = site_token
16
+ @api_key = api_key
17
+ @client = client
18
+ end
19
+
20
+ DIMENSIONS.each do |dimension|
21
+ define_method dimension do
22
+ @dimension = dimension
23
+ self
24
+ end
25
+ end
26
+
27
+ @@filters.each do |key, _value|
28
+ define_method key do |argument|
29
+ @@filters[key] = argument
30
+ self
31
+ end
32
+ end
33
+
34
+ def fetch
35
+ data = @client.get(url)
36
+ @@filters.each { |key, _value| @@filters[key] = nil } if data
37
+ data
38
+ end
39
+
40
+ private
41
+
42
+ def url
43
+ array = ['']
44
+ @url = BASEURL + @dimension + "?api_key=#{@api_key}" + "&site_token=#{@site_token}"
45
+ @@filters.each { |key, value| array << "#{key}=#{value}" if value }
46
+ parameters = array.join('&')
47
+ @url = @url.concat(parameters)
48
+ end
52
49
  end
53
50
  end
@@ -1,74 +1,76 @@
1
- require_relative "client"
1
+ require_relative 'client'
2
2
 
3
3
  module Gosquared
4
4
  class People
5
+ BASEURL = 'https://api.gosquared.com/people/v1/'.freeze
6
+ VERSION = %w[v1 v2 v3].freeze
7
+ DIMENSIONS = %w[devices eventTypes people propertyTypes feed].freeze
8
+ @@filters = { query: @query, filters: @filters, sort: @sort,
9
+ format: @presenter, limit: @limit, type: @type, from: @from, to: @to }
5
10
 
6
- BASEURL = "https://api.gosquared.com/people/v1/".freeze
7
- VERSION = %w(v1 v2 v3).freeze
8
- DIMENSIONS = %w(devices eventTypes people propertyTypes feed).freeze
9
- @@filters = {query: @query, filters: @filters, sort: @sort,
10
- format: @presenter, limit: @limit, type: @type, from: @from, to: @to}
11
+ def initialize(api_key, site_token)
12
+ @site_token = site_token
13
+ @api_key = api_key
14
+ @person_id = ''
15
+ @person_filter = ''
16
+ end
11
17
 
12
- def initialize(api_key, site_token)
13
- @site_token = site_token
14
- @api_key = api_key
15
- @person_id = ""
16
- @person_filter = ""
17
- end
18
-
19
- DIMENSIONS.each do |dimension|
20
- define_method dimension do |options = ""|
21
- @dimension = dimension
22
- @data = options
23
- self
24
- end
25
- end
18
+ DIMENSIONS.each do |dimension|
19
+ define_method dimension do |options = ''|
20
+ @dimension = dimension
21
+ @data = options
22
+ self
23
+ end
24
+ end
26
25
 
27
- @@filters.each do |key, value|
28
- define_method key do |argument|
29
- @@filters[key] = argument
30
- puts @@filters[key]
31
- self
32
- end
26
+ @@filters.each do |key, _value|
27
+ define_method key do |argument|
28
+ @@filters[key] = argument
29
+ self
33
30
  end
31
+ end
32
+
33
+ def person_id(object, filter=nil)
34
+ @person_id = '/' + object
35
+ @person_filter = '/' + filter if filter
36
+ self
37
+ end
34
38
 
35
- def person_id(object, filter)
36
- @person_id = "/" + object
37
- @person_filter = "/" + filter
38
- self
39
- end
39
+ def smartgroups(group_id = nil, filter = nil)
40
+ if group_id
41
+ @dimension = "smartgroups/#{group_id}/people" if filter == 'people'
42
+ @dimension = "smartgroups/#{group_id}/count/latest" if filter == 'count'
43
+ else @dimension = 'smartgroups'
44
+ end
45
+ self
46
+ end
40
47
 
41
- def smartgroups(group_id=nil, filter=nil)
42
- if group_id
43
- @dimension = "smartgroups/#{group_id}/people" if filter == "people"
44
- @dimension = "smartgroups/#{group_id}/count/latest" if filter== "count"
45
- else @dimension = "smartgroups"
46
- end
47
- self
48
- end
48
+ def fetch
49
+ data = Client.new.get(url)
50
+ @@filters.each { |key, _value| @@filters[key] = nil } if data
51
+ data
52
+ end
49
53
 
50
- def fetch
51
- data = Client.new.get(url)
52
- @@filters.each{|key, value| @@filters[key]=nil} if data
53
- data
54
- end
54
+ def delete
55
+ response = Client.new.delete(url)
56
+ end
55
57
 
56
- def url
57
- array = [""]
58
- url = BASEURL + @dimension + @person_id + @person_filter +
59
- "?api_key=#{@api_key}" + "&site_token=#{@site_token}"
60
- @@filters.each do |key, value|
61
- if @dimension=="people" && key == :filters && value.is_a?(Array)
62
- json_object=JSON.generate(value)
63
- filter_request=URI.escape(json_object, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
58
+ def url
59
+ array = ['']
60
+ url = BASEURL + @dimension + @person_id + @person_filter +
61
+ "?api_key=#{@api_key}" + "&site_token=#{@site_token}"
62
+ @@filters.each do |key, value|
63
+ if @dimension == 'people' && key == :filters && value.is_a?(Array)
64
+ json_object = JSON.generate(value)
65
+ filter_request = URI.escape(json_object, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
64
66
  array << "#{key}=#{filter_request}"
65
67
  else
66
68
  array << "#{key}=#{value}" if value
67
69
  end
68
70
  end
69
- parameters=array.join('&')
71
+ parameters = array.join('&')
70
72
  url.concat(parameters)
71
- end
73
+ end
72
74
 
73
75
  def post
74
76
  check_for_nil_user
@@ -78,11 +80,10 @@ module Gosquared
78
80
  end
79
81
 
80
82
  def check_for_nil_user
81
- if @data.key?(:person_id) && @data[:person_id] == nil
82
- @data.tap { |data| @data.delete(:person_id) }
83
+ if @data.key?(:person_id) && @data[:person_id].nil?
84
+ @data.tap { |_data| @data.delete(:person_id) }
83
85
  warn 'person_id is nil, event will not be track against a user'
84
86
  end
85
87
  end
86
-
87
88
  end
88
89
  end