Sha256: 766b50fa5f1455ebcf1256b225d28b03da647cdf072a5fb9416a7b7b50043d29

Contents?: true

Size: 1.28 KB

Versions: 13

Compression:

Stored size: 1.28 KB

Contents

# coding: utf-8
module RockFintech
  module Http

    class Response
      attr_accessor :service, :flow_id
      attr_accessor :http_response, :raw_body
      attr_accessor :data, :data_valid

      def initialize(params)
        self.data_valid = true

        params.each do |key, value|
          self.instance_variable_set("@#{key}", value)
        end

        self.data = {} if self.data.nil? # 默认一定要有

        unless self.data_valid
          self.data[:code] = 'sign_valid_fail'
          self.data[:msg] = '数据签名错误'
        end

      end

      def [] key
        instance_variable_get("#{key}")
      end

      def to_s
        arr = ["{"]
        self.instance_variables.map{ |value|
          arr << "\t#{value.to_s} => #{self[value.to_sym]}"
        }
        arr << ["}"]
        arr.join("\n")
      end

      def http_success?
        http_response && /^2/ =~ http_response.code.to_s
      end

      def http_fail?
        # 而 400 错误一般都是地址不存在或者没有权限,都当成错误处理
        http_response && http_response.code.to_s == '404'
      end

      def http_pending?
        # nil 的时候是超时,非 404 的其他错误都是 pending
        http_response.nil? || (!http_success? && !http_fail?)
      end
    end

  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
rock_fintech-0.19.0 lib/rock_fintech/http/response.rb
rock_fintech-0.18.4 lib/rock_fintech/http/response.rb
rock_fintech-0.18.1 lib/rock_fintech/http/response.rb
rock_fintech-0.17.0 lib/rock_fintech/http/response.rb
rock_fintech-0.16.0 lib/rock_fintech/http/response.rb
rock_fintech-0.15.0 lib/rock_fintech/http/response.rb
rock_fintech-0.14.0 lib/rock_fintech/http/response.rb
rock_fintech-0.13.0 lib/rock_fintech/http/response.rb
rock_fintech-0.12.0 lib/rock_fintech/http/response.rb
rock_fintech-0.11.0 lib/rock_fintech/http/response.rb
rock_fintech-0.10.0 lib/rock_fintech/http/response.rb
rock_fintech-0.9.0 lib/rock_fintech/http/response.rb
rock_fintech-0.8.0 lib/rock_fintech/http/response.rb