Class: Gosquared::People
- Inherits:
-
Object
- Object
- Gosquared::People
- 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
- #check_for_nil_user ⇒ Object
- #fetch ⇒ Object
-
#initialize(api_key, site_token) ⇒ People
constructor
A new instance of People.
- #person_id(object, filter) ⇒ Object
- #post ⇒ Object
- #url ⇒ Object
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_user ⇒ Object
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 |
#fetch ⇒ Object
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 |
#post ⇒ Object
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 |
#url ⇒ Object
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 |