class Gosquared::People

Constants

BASEURL
DIMENSIONS
VERSION

Public Class Methods

new(api_key, site_token) click to toggle source
# File lib/gosquared/people.rb, line 11
 def initialize(api_key, site_token)
   @site_token = site_token
   @api_key = api_key
   @person_id = ''
   @person_filter = ''
end

Public Instance Methods

check_for_nil_user() click to toggle source
# File lib/gosquared/people.rb, line 82
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
delete() click to toggle source
# File lib/gosquared/people.rb, line 54
def delete
  response = Client.new.delete(url)
end
fetch() click to toggle source
# File lib/gosquared/people.rb, line 48
def fetch
  data = Client.new.get(url)
  @@filters.each { |key, _value| @@filters[key] = nil } if data
  data
end
person_id(object, filter=nil) click to toggle source
# File lib/gosquared/people.rb, line 33
 def person_id(object, filter=nil)
   @person_id = '/' + object
   @person_filter = '/' + filter if filter
   self
end
post() click to toggle source
# File lib/gosquared/people.rb, line 75
def post
  check_for_nil_user
  response = Client.new.post(url, @data)
  @data = nil if response.code === '200'
  response
end
smartgroups(group_id = nil, filter = nil) click to toggle source
# File lib/gosquared/people.rb, line 39
def smartgroups(group_id = nil, filter = nil)
  if group_id
    @dimension = "smartgroups/#{group_id}/people" if filter == 'people'
    @dimension = "smartgroups/#{group_id}/count/latest" if filter == 'count'
  else @dimension = 'smartgroups'
  end
  self
end
url() click to toggle source
# File lib/gosquared/people.rb, line 58
 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