Sha256: 5d5a86c6f678d3cdf5a0d2b4ef98f9b9aa1dd9e1606684a5701bd00036e517a8
Contents?: true
Size: 1.79 KB
Versions: 9
Compression:
Stored size: 1.79 KB
Contents
module HttpStore class Client attr_accessor :meta include HttpStore::Helpers::Requestable include HttpStore::Helpers::Responseable include HttpStore::Helpers::Storable def self.execute(requestable, other_params = {}) new(requestable: requestable, other_params: other_params) end def initialize(args) @meta = Hashie::Mash.new(args) build_request return unless request_valid? load_storeable_record and return if use_cache? execute # send request retry! while need_retry? && retry_times.to_i > 0 after_response end def retry! @meta.retry_times = retry_times.to_i - 1 @meta.force = true execute end HttpStore::ALL_KEYS.each do |meta_key| define_method meta_key do @meta.send(meta_key) end end private def build_request add_meta(set_request) format_request end def add_meta(hash) @meta.merge! Hashie::Mash.new(hash).slice(*HttpStore::REQUEST_KEYS) end def execute @meta.response_obj = get? ? http_get_execute : http_post_execute raise HttpStore::RequestError, 'response_obj is nil' if response_obj.nil? build_response ensure store_request end def http_get_execute RestClient.get(uri, headers) rescue RestClient::ExceptionWithResponse => e # :nocov: e.response # :nocov: end def http_post_execute real_data = json_request? ? data.to_json : data.to_hash # RestClient.post(uri, real_data, headers.symbolize_keys) RestClient::Request.execute(method: :post, url: url, payload: real_data, headers: headers.symbolize_keys, verify_ssl: false) rescue RestClient::ExceptionWithResponse => e # :nocov: e.response # :nocov: end end end
Version data entries
9 entries across 9 versions & 1 rubygems