prism_query

in marauder/lib/marauder/commands.rb [60:85]


def prism_query(path, filter)
  prism_filters = filter.select{ |f| f =~ /=/ }

  api_query = Hash[prism_filters.map { |f|
    param = f.split('=')
    [param[0], param[1]]
  }.group_by { |pair| 
    pair[0] 
  }.map { |key, kvs| 
    [key, kvs.map{|v| v[1]}]
  }]

  data = Api.get("#{PRISM_URL}#{path}", :query => {:_expand => true}.merge(api_query))

  if data.code != 200
    raise StandardError, "Prism API returned status code #{data.code} in response to #{data.request.last_uri} - check that your configuration file is correct"
  end

  if data["stale"]
    update_time = data["lastUpdated"]
    STDERR.puts "WARNING: Prism reports that the data returned from #{path} is stale, it was last updated at #{update_time}"
  end

  data
end