class KayakoClient::User
Constants
- USER_ROLES
- USER_SALUTATIONS
Public Class Methods
all(marker = nil, limit = nil, options = {})
click to toggle source
Calls superclass method
# File lib/kayako_client/user.rb, line 49 def self.all(marker = nil, limit = nil, options = {}) unless marker.nil? unless marker.to_i > 0 logger.error "invalid :marker - #{marker}" if logger raise ArgumentError, "invalid marker" end unless limit.nil? || limit.to_i > 0 logger.error "invalid :limit (:maxitems) - #{limit}" if logger raise ArgumentError, "invalid limit" end else if limit && limit.to_i > 0 logger.error "invalid :marker" if logger raise ArgumentError, "missing marker" end end e = path + '/Filter' if marker e << "/#{marker.to_i}" e << "/#{limit.to_i}" if limit end super(options.merge(:e => e)) end
search(query, options = {})
click to toggle source
# File lib/kayako_client/user.rb, line 74 def self.search(query, options = {}) unless configured? || (options[:api_url] && options[:api_key] && options[:secret_key]) raise RuntimeError, "client not configured" end raise ArgumentError, "query can't be empty" if query.empty? response = post_request(options.merge(:e => '/Base/UserSearch', :query => query)) log = options[:logger] || logger if response.is_a?(KayakoClient::HTTPOK) objects = [] if log log.debug "Response:" log.debug response.body end payload = xml_backend.new(response.body, { :logger => log }) payload.each do |element| object = new(payload.to_hash(element).merge(inherited_options(options))) object.loaded! objects << object end log.info ":post(:search, '#{query}') successful (#{objects.size} objects)" if log objects else log.error "Response: #{response.status} #{response.body}" if log raise StandardError, "server returned #{response.status}: #{response.body}" end end