class AutotaskApi::Query

Attributes

client[RW]
condition[RW]
entity[RW]

Public Class Methods

new(entity, condition = nil, client = AutotaskApi.client) click to toggle source
# File lib/autotask_api/query.rb, line 5
def initialize(entity, condition = nil, client = AutotaskApi.client)
  @entity = entity
  @client = client
  @condition = condition
end

Public Instance Methods

fetch() click to toggle source
# File lib/autotask_api/query.rb, line 11
def fetch
  response = client.call :query, query_string

  result = response.body[:query_response][:query_result]

  if result[:return_code].to_i == -1
    raise result[:errors][:atws_error][:message]
  else
    return result
  end
end
query_string() click to toggle source
# File lib/autotask_api/query.rb, line 23
def query_string
  Nokogiri::XML::Builder.new do
    sXML do
      cdata(
        Nokogiri::XML::Builder.new do |xml|
          xml.queryxml do
            xml.entity entity
            xml.query do
              condition.to_xml(xml)
            end
          end
        end.doc.root
      )
    end
  end.doc.root.to_s
end