Sha256: 0bd76ed59196493b7ab5a1ff399bfbc67404c3435d437a82cc1c0711cec2be02

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

module HttpStore
  module Helpers
    module Responseable
      # check response message is right, if is right
      def response_valid?
        status_code >= 200 && status_code < 400
      end

      def need_retry?
        !response_valid?
      end

      def json_response?
        response_headers_hash['content_type'].to_s =~ /json/
      end

      def build_response
        @meta.status_code      = response_obj.code
        @meta.response         = json_safe_parse(response_obj.body)
        @meta.response_headers = response_obj.headers

        @meta.response_valid = response_valid?
        @meta.response_code  = build_response_code
        @meta.response_data  = build_response_data
        @meta.cache_response = cache_response?
        raise HttpStore::RequestError, '三方请求异常, 请与管理员联系' if response_data.nil?
      end

      def build_response_data
        response_valid ? 'success' : 'error'
      end

      def build_response_code
        response_valid? ? 200 : 422
      end

      def cache_response?
        response_valid?
      end

      # callback
      def after_response; end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
http_store-0.6.10 lib/http_store/helpers/responseable.rb