Class: Gosquared::People

Inherits:
Object
  • Object
show all
Defined in:
lib/gosquared/people.rb

Constant Summary collapse

BASEURL =
"https://api.gosquared.com/people/v1/".freeze
VERSION =
%w(v1 v2 v3).freeze
DIMENSIONS =
%w(devices eventTypes people propertyTypes feed smartgroups).freeze
@@filters =
{query: @query, filters: @filters, sort: @sort,
format: @presenter, limit: @limit, type: @type, from: @from, to: @to}

Instance Method Summary collapse

Constructor Details

#initialize(api_key, site_token) ⇒ People

Returns a new instance of People.



12
13
14
15
16
17
# File 'lib/gosquared/people.rb', line 12

def initialize(api_key, site_token)
  @site_token = site_token
  @api_key = api_key
  @person_id = ""
  @person_filter = ""
end

Instance Method Details

#check_for_nil_userObject



72
73
74
75
76
77
# File 'lib/gosquared/people.rb', line 72

def check_for_nil_user
  if @data.key?(:person_id) && @data[:person_id] == nil
    @data.tap { |data| @data.delete(:person_id) }
    warn 'person_id is nil, event will not be track against a user'
  end
end

#fetchObject



41
42
43
44
45
# File 'lib/gosquared/people.rb', line 41

def fetch
  data = Client.new.get(url)
  @@filters.each{|key, value| @@filters[key]=nil} if data
  data
end

#person_id(object, filter) ⇒ Object



35
36
37
38
39
# File 'lib/gosquared/people.rb', line 35

def person_id(object, filter)
  @person_id = "/" + object
  @person_filter = "/" + filter
  self
end

#postObject



64
65
66
67
68
69
70
# File 'lib/gosquared/people.rb', line 64

def post
  puts @data
  check_for_nil_user
  response = Client.new.post(url, @data)
  @data = nil if response.code === '200'
  response
end

#urlObject



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/gosquared/people.rb', line 47

def url
   array = [""]
   url = BASEURL + @dimension + @person_id + @person_filter +
   "?api_key=#{@api_key}" + "&site_token=#{@site_token}"
   @@filters.each do |key, value|
    if @dimension=="people" && key == :filters && value.is_a?(Array)
      json_object=JSON.generate(value)
      filter_request=URI.escape(json_object, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
      array << "#{key}=#{filter_request}"
    else
      array << "#{key}=#{value}" if value
    end
  end
  parameters=array.join('&')
  url.concat(parameters)
end