module KayakoClient::API::ClassMethods
Public Instance Methods
all(options = {})
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 167 def all(options = {}) raise NotImplementedError, "method not supported" unless support?(:all) unless configured? || (options[:api_url] && options[:api_key] && options[:secret_key]) raise RuntimeError, "client not configured" end response = get_request(options) 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 ":get(:all) 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
api_key()
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 155 def api_key @@api_key ||= '' end
api_key=(key)
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 151 def api_key=(key) @@api_key = key end
api_url()
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 147 def api_url @@api_url ||= '' end
api_url=(url)
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 143 def api_url=(url) @@api_url = url end
delete(id, options = {})
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 255 def delete(id, options = {}) raise NotImplementedError, "method not supported" unless support?(:delete) unless configured? || (options[:api_url] && options[:api_key] && options[:secret_key]) raise RuntimeError, "client not configured" end response = delete_request(options.merge(:id => id)) log = options[:logger] || logger if response.is_a?(KayakoClient::HTTPOK) log.info ":delete successful for object##{id}" if log true else log.error "Response: #{response.status} #{response.body}" if log raise StandardError, "server returned #{response.status}: #{response.body}" false end end
Also aliased as: destroy
get(*args)
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 194 def get(*args) options = args.last.is_a?(Hash) ? args.pop : {} id = args[0] id = :all unless id || options[:id] raise NotImplementedError, "method not supported" unless support?(:get) unless configured? || (options[:api_url] && options[:api_key] && options[:secret_key]) raise RuntimeError, "client not configured" end log = options[:logger] || logger if id == :all return all(options) elsif id && id.to_i > 0 id = id.to_i elsif options[:id] id = options[:id] else if id log.error "invalid :id - #{id}" if log raise ArgumentError, "invalid ID" else log.error "missing :id" if log raise ArgumentError, "missing ID" end end response = get_request(options.merge(:id => id)) if response.is_a?(KayakoClient::HTTPOK) if log log.debug "Response:" log.debug response.body end payload = xml_backend.new(response.body, { :logger => log }) params = payload.to_hash unless params.nil? object = new(params.merge(inherited_options(options))) object.loaded! log.info ":get(#{id}) successful" if log object else log.info ":get(#{id}) successful (not found)" if log nil end else log.error "Response: #{response.status} #{response.body}" if log raise StandardError, "server returned #{response.status}: #{response.body}" end end
Also aliased as: find
post(options = {})
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 243 def post(options = {}) raise NotImplementedError, "method not supported" unless support?(:post) object = new(options) if object.post object else object.has_errors? ? object.errors : nil end end
Also aliased as: create
secret_key()
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 163 def secret_key @@secret_key ||= '' end
secret_key=(secret)
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 159 def secret_key=(secret) @@secret_key = secret end
Private Instance Methods
configured?()
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 276 def configured? !api_url.empty? && !api_key.empty? && !secret_key.empty? end