class AutotaskApi::Entity

Public Class Methods

all(client = AutotaskApi.client, id = 1) click to toggle source
# File lib/autotask_api/entity.rb, line 4
def self.all(client = AutotaskApi.client, id = 1)
  where(Condition.new(Expression.new('id', 'GreaterThanorEquals', id)), client)
end
clean_results(results) click to toggle source

@param results [Array(Hash)]

# File lib/autotask_api/entity.rb, line 40
def self.clean_results(results)
  results.each do |record|
    record.update(record) { |_k, v| v == { :"@xsi:type" => "xsd:string" } ? nil : v }
      .delete('@xsi:type'.to_sym)
  end

  return results
end
expression(value) click to toggle source
# File lib/autotask_api/entity.rb, line 28
def self.expression(value)
  case value.class
  when TrueClass
    1
  when FalseClass
    0
  else
    value
  end
end
where(condition, client = AutotaskApi.client) click to toggle source

@param conditions [Hash]

# File lib/autotask_api/entity.rb, line 9
def self.where(condition, client = AutotaskApi.client)
  query = Query.new(self::NAME, condition, client)

  begin
    response = query.fetch
  rescue RuntimeError => e
    raise Error.new(e.message)
  end

  # return empty collection if there were no results
  return EntityCollection.new(self, [], condition, client) if response[:entity_results].nil?

  results = response[:entity_results][:entity]
  results = [results] unless results.is_a?(Array)
  results = clean_results(results)

  EntityCollection.new(self, results, condition, client)
end