class GnipApi::Search
Public Instance Methods
activities(options={})
click to toggle source
# File lib/gnip_api/search.rb, line 7 def activities options={} required_options?(options) payload = construct_activities_payload(options) request = GnipApi::Request.new_post(activities_endpoint, payload) data = fetch_data(request) return parse_activities_response(data) end
counts(options={})
click to toggle source
# File lib/gnip_api/search.rb, line 15 def counts options={} required_options?(options) payload = construct_counts_payload(options) request = GnipApi::Request.new_post(count_endpoint, payload) data = fetch_data(request) return parse_counts_response(data) end
Private Instance Methods
activities_endpoint()
click to toggle source
# File lib/gnip_api/search.rb, line 32 def activities_endpoint GnipApi::Endpoints.search_activities end
construct_activities_payload(options)
click to toggle source
# File lib/gnip_api/search.rb, line 91 def construct_activities_payload options payload = { :query => options[:rule].value, :fromDate => parse_date(options[:from_date]), :toDate => parse_date(options[:to_date]), :tag => options[:rule].tag, :maxResults => options[:max_results], :next => options[:next_token] } payload.delete_if{|k,v| v.nil?} return payload.to_json end
construct_counts_payload(options)
click to toggle source
# File lib/gnip_api/search.rb, line 79 def construct_counts_payload options payload = { :query => options[:rule].value, :fromDate => parse_date(options[:from_date]), :toDate => parse_date(options[:to_date]), :bucket => options[:bucket], :next => options[:next_token] } payload.delete_if{|k,v| v.nil?} return payload.to_json end
count_endpoint()
click to toggle source
# File lib/gnip_api/search.rb, line 28 def count_endpoint GnipApi::Endpoints.search_counts end
fetch_data(request)
click to toggle source
# File lib/gnip_api/search.rb, line 24 def fetch_data(request) request.execute! end
parse_activities_response(data)
click to toggle source
# File lib/gnip_api/search.rb, line 64 def parse_activities_response data parsed_data = GnipApi::JsonParser.new.parse(data) result_set = parsed_data['results'] params = parsed_data['requestParameters'] result = {:results => [], :next => parsed_data['next'], :request_parameters => {}} result[:request_parameters][:bucket] = params['bucket'] if params['bucket'] result[:request_parameters][:from_date] = Time.parse("#{params['fromDate']}-0000") if params['fromDate'] result[:request_parameters][:to_date] = Time.parse("#{params['toDate']}-0000") if params['toDate'] result[:request_parameters][:max_results] = params['maxResults'] if params['maxResult'] result_set.each do |item| result[:results] << Gnip::Activity.new(item) end return result end
parse_counts_response(data)
click to toggle source
# File lib/gnip_api/search.rb, line 50 def parse_counts_response data parsed_data = GnipApi::JsonParser.new.parse(data) result_set = parsed_data['results'] params = parsed_data['requestParameters'] result = {:results => [], :total_count => parsed_data['totalCount'], :next => parsed_data['next'], :request_parameters => {}} result[:request_parameters][:bucket] = params['bucket'] if params['bucket'] result[:request_parameters][:from_date] = Time.parse("#{params['fromDate']}-0000") if params['fromDate'] result[:request_parameters][:to_date] = Time.parse("#{params['toDate']}-0000") if params['toDate'] result_set.each do |item| result[:results] << {:time_period => Time.parse("#{item['timePeriod']}-0000"), :count => item['count']} end return result end
parse_date(date)
click to toggle source
# File lib/gnip_api/search.rb, line 45 def parse_date date return nil unless date date.strftime('%Y%m%d%H%M') end
required_options()
click to toggle source
# File lib/gnip_api/search.rb, line 36 def required_options [:rule] end
required_options?(options)
click to toggle source
# File lib/gnip_api/search.rb, line 40 def required_options? options provided_options = required_options - options.keys raise GnipApi::Errors::Search::MissingParameters.new(provided_options) if provided_options.any? end