class GnipApi::PowerTrack::Rules

Public Instance Methods

construct_rules(rules) click to toggle source

Parses an array of GnipApi::PowerTrack::Rule objects to the necesary JSON format for the endpoint

# File lib/gnip_api/power_track/rules.rb, line 45
def construct_rules rules
  parsed_rules = {:rules => []}
  rules.each do |rule|
    parsed_rules[:rules] << rule.attributes
  end
  parsed_rules.to_json
end
create(rules) click to toggle source

Creates the specified rule. Parameters:

# File lib/gnip_api/power_track/rules.rb, line 17
def create rules
  raise ArgumentError.new('No rules provided') if rules.nil? || rules.empty?
  request = create_post_request(construct_rules(rules))
  response = fetch_data(request)
  return true if response.nil?
  return GnipApi::JsonParser.new.parse(response)
end
delete(rules) click to toggle source

Deletes the specified rule. Parameters:

# File lib/gnip_api/power_track/rules.rb, line 27
def delete rules
  raise ArgumentError.new('No rules provided') if rules.nil? || rules.empty?
  request = create_delete_request(construct_rules(rules))
  response = fetch_data(request)
  return true if response.nil?
  return GnipApi::JsonParser.new.parse(response)
end
list() click to toggle source

Returns an array of defined rules

# File lib/gnip_api/power_track/rules.rb, line 9
def list
  request = create_get_request
  rules = fetch_data(request)
  parse_rules(rules)
end
parse_rules(data) click to toggle source
# File lib/gnip_api/power_track/rules.rb, line 53
def parse_rules data
  parsed_data = GnipApi::JsonParser.new.parse(data)
  parsed_data['rules'].map{|rule| GnipApi::PowerTrack::Rule.new(:value => rule['value'], :tag => rule['tag'], :id => rule['id'])}
end
validate(rules) click to toggle source
# File lib/gnip_api/power_track/rules.rb, line 35
def validate rules
  raise ArgumentError.new('No rules provided') if rules.nil? || rules.empty?
  request = create_validation_request(construct_rules(rules))
  response = fetch_data(request)
  return true if response.nil?
  return GnipApi::JsonParser.new.parse(response)
end

Private Instance Methods

create_delete_request(payload) click to toggle source
# File lib/gnip_api/power_track/rules.rb, line 83
def create_delete_request payload
  delete_url = endpoint
  delete_url.query = '_method=delete'
  GnipApi::Request.new_post(delete_url, payload)
end
create_get_request() click to toggle source
# File lib/gnip_api/power_track/rules.rb, line 75
def create_get_request
  GnipApi::Request.new_get(endpoint)
end
create_post_request(payload) click to toggle source
# File lib/gnip_api/power_track/rules.rb, line 79
def create_post_request payload
  GnipApi::Request.new_post(endpoint, payload)
end
create_validation_request(payload) click to toggle source
# File lib/gnip_api/power_track/rules.rb, line 71
def create_validation_request payload
  GnipApi::Request.new_post(validation_endpoint, payload)
end
endpoint() click to toggle source
# File lib/gnip_api/power_track/rules.rb, line 63
def endpoint
  GnipApi::Endpoints.powertrack_rules
end
fetch_data(request) click to toggle source
# File lib/gnip_api/power_track/rules.rb, line 59
def fetch_data(request)
  request.execute!
end
validation_endpoint() click to toggle source
# File lib/gnip_api/power_track/rules.rb, line 67
def validation_endpoint
  GnipApi::Endpoints.powertrack_rule_validator
end