module KayakoClient::API
Public Class Methods
included(base)
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 18 def self.included(base) base.extend(ClassMethods) end
Public Instance Methods
api_key()
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 34 def api_key @api_key ||= self.class.api_key end
api_key=(key)
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 30 def api_key=(key) @api_key = key end
api_url()
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 26 def api_url @api_url ||= self.class.api_url end
api_url=(url)
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 22 def api_url=(url) @api_url = url end
delete()
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 122 def delete raise NotImplementedError, "method not supported" unless self.class.support?(:delete) raise RuntimeError, "client not configured" unless configured? unless new? response = delete_request if response.is_a?(KayakoClient::HTTPOK) logger.info ":delete successful for object##{id}" if logger else logger.error "Response: #{response.status} #{response.body}" if logger raise StandardError, "server returned #{response.status}: #{response.body}" end else logger.warn "cannot delete new object" if logger raise StandardError, "cannot delete new object" end end
Also aliased as: destroy
post()
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 84 def post raise NotImplementedError, "method not supported" unless self.class.support?(:post) raise RuntimeError, "client not configured" unless configured? if id logger.warn "Object has :id - calling :put instead" if logger return put end raise RuntimeError, "object cannot be saved" unless new? params = changes.inject({}) do |hash, property| hash[property] = instance_variable_get("@#{property}") hash end require_properties(:post, params) validate(:post, params) check_conditions(params) response = post_request(params) if response.is_a?(KayakoClient::HTTPOK) if logger logger.debug "Response:" logger.debug response.body end payload = xml_backend.new(response.body, { :logger => logger }) clean import(payload.to_hash) loaded! logger.info ":post successful" if logger true else unless response.is_a?(Hash) logger.error "Response: #{response.status} #{response.body}" if logger raise StandardError, "server returned #{response.status}: #{response.body}" end false end end
Also aliased as: save
put()
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 46 def put raise NotImplementedError, "method not supported" unless self.class.support?(:put) raise RuntimeError, "client not configured" unless configured? if changed? params = changes.inject({}) do |hash, property| hash[property] = instance_variable_get("@#{property}") hash end require_properties(:put, params) validate(:put, params) check_conditions(params) response = put_request(params) if response.is_a?(KayakoClient::HTTPOK) if logger logger.debug "Response:" logger.debug response.body end payload = xml_backend.new(response.body, { :logger => logger }) clean import(payload.to_hash) loaded! logger.info ":put successful for object##{id}" if logger true else unless response.is_a?(Hash) logger.error "Response: #{response.status} #{response.body}" if logger raise StandardError, "server returned #{response.status}: #{response.body}" end false end else logger.warn "nothing to :put" if logger true end end
Also aliased as: update
secret_key()
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 42 def secret_key @secret_key ||= self.class.secret_key end
secret_key=(secret)
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 38 def secret_key=(secret) @secret_key = secret end
Private Instance Methods
configured?()
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 284 def configured? !api_url.empty? && !api_key.empty? && !secret_key.empty? end
reload!(options = {})
click to toggle source
# File lib/kayako_client/mixins/api.rb, line 288 def reload!(options = {}) raise NotImplementedError, "method not supported" unless self.class.support?(:get) raise RuntimeError, "client not configured" unless configured? raise RuntimeError, "cannot reload modified object" if changed? raise RuntimeError, "object not saved yet" unless id && !new? response = self.class.get_request(options.merge(:id => id)) if response.is_a?(KayakoClient::HTTPOK) if logger logger.debug "Response:" logger.debug response.body end payload = xml_backend.new(response.body, { :logger => logger }) clean import(payload.to_hash) loaded! logger.info ":get(#{id}) successful" if logger true else logger.error "Response: #{response.status} #{response.body}" if logger raise StandardError, "server returned #{response.status}: #{response.body}" false end end