Module: RockFintech::Api::CommunicateResultHelper
- Defined in:
- lib/rock_fintech/api/api_helper.rb
Instance Method Summary collapse
-
#operate_post(request_type, service, params, fail_codes, success_codes, version = Http::Request::VERSION) ⇒ Hash
操作类的 api,统一返回处理.
Instance Method Details
#operate_post(request_type, service, params, fail_codes, success_codes, version = Http::Request::VERSION) ⇒ Hash
操作类的 api,统一返回处理
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/rock_fintech/api/api_helper.rb', line 16 def operate_post(request_type, service, params, fail_codes, success_codes, version=Http::Request::VERSION) fail_codes << 400 request = Http::Request.new(params, @config, service, version) response = request.post res = RockFintech::Utils.api_result(params, response) if :operate == request_type # 向服务器发送操作,超时类的都应该当 pending 处理 if response.http_pending? RockFintech.logger.info "#{request.identifier} 最终返回的数据为:\n#{res}\n" return res end elsif :query == request_type # 查询类 api,http 没成功都返回 pending unless response.http_success? RockFintech.logger.info "#{request.identifier} 最终返回的数据为:\n#{res}\n" return res end else raise '未知的请求类型,请选择设置:操作类(:operate)/查询类(:query)' end # 确定的错误 if fail_codes.include?(response.data[:code]) res[:result] = 'F' RockFintech.logger.info "#{request.identifier} 最终返回的数据为:\n#{res}\n" return res end # 确定的成功返回码 if success_codes.include?(response.data[:code]) res[:result] = 'S' end RockFintech.logger.info "#{request.identifier} 最终返回的数据为:\n#{res}\n" res end |