class GmoPayment::ApiResponse

Constants

RESPONSE_SUCCESS_CODE
SPLIT_CHARACTER

Public Class Methods

new(api_url, body, response_http_code) click to toggle source
# File lib/gmo_payment/api_response.rb, line 6
def initialize(api_url, body, response_http_code)
  @api_url              = api_url
  @response_body        = body
  @response_http_code   = response_http_code
  @response_body_parsed = parse_response_content
end

Public Instance Methods

error_codes() click to toggle source
# File lib/gmo_payment/api_response.rb, line 21
def error_codes
  r_detail = response_body
  r_detail.fetch(:ErrCode, '').split(SPLIT_CHARACTER)
end
error_infos() click to toggle source
# File lib/gmo_payment/api_response.rb, line 26
def error_infos
  r_detail = response_body
  r_detail.fetch(:ErrInfo, '').split(SPLIT_CHARACTER)
end
error_messages() click to toggle source
# File lib/gmo_payment/api_response.rb, line 31
def error_messages
  error_infos.map do |e_code|
    GmoPayment::ApiErrors.all.fetch(e_code, "UNKNOWN ERROR with code #{e_code}")
  end
end
full_errors2log() click to toggle source
# File lib/gmo_payment/api_response.rb, line 76
def full_errors2log
  full_messages
end
full_messages() click to toggle source
# File lib/gmo_payment/api_response.rb, line 37
def full_messages
  error_messages.join(' ')
end
has_error?(error_info_code) click to toggle source
# File lib/gmo_payment/api_response.rb, line 41
def has_error?(error_info_code)
  error_infos.include?(error_info_code)
end
response2log(raw = false) click to toggle source
# File lib/gmo_payment/api_response.rb, line 72
def response2log(raw = false)
  response_body(raw)
end
response_body(raw = false) click to toggle source
# File lib/gmo_payment/api_response.rb, line 17
def response_body(raw = false)
  raw ? @response_body : @response_body_parsed
end
response_code() click to toggle source
# File lib/gmo_payment/api_response.rb, line 13
def response_code
  @response_http_code
end
success?() { |api_url, response_http_code, response_body, response_body_parsed| ... } click to toggle source
# File lib/gmo_payment/api_response.rb, line 45
def success?
  if block_given?
    yield(@api_url, @response_http_code, @response_body, @response_body_parsed)
  else
    r_detail      = response_body
    pre_condition = RESPONSE_SUCCESS_CODE.include?(response_code) && !r_detail.key?(:ErrCode)
    case @api_url
    when GmoPayment::ApiUrls.all.fetch('MEMBER_REGISTER'),
      GmoPayment::ApiUrls.all.fetch('MEMBER_DELETE'),
      GmoPayment::ApiUrls.all.fetch('MEMBER_SEARCH')
      pre_condition && r_detail.key?(:MemberID)
    when GmoPayment::ApiUrls.all.fetch('CARD_SAVE_OR_UPDATE')
      pre_condition && r_detail.key?(:CardSeq) && r_detail.key?(:CardNo)
    when GmoPayment::ApiUrls.all.fetch('CARD_DELETE')
      pre_condition && r_detail.key?(:CardSeq)
    when GmoPayment::ApiUrls.all.fetch('TRANSACTION_REGISTER')
      pre_condition && r_detail.key?(:AccessID) && r_detail.key?(:AccessPass)
    when GmoPayment::ApiUrls.all.fetch('TRANSACTION_SUBMIT')
      pre_condition && r_detail.key?(:TranID) && r_detail.key?(:CheckString)
    when GmoPayment::ApiUrls.all.fetch('TRANSACTION_UPDATE')
      pre_condition && r_detail.key?(:AccessID) && r_detail.key?(:AccessPass)
    else
      pre_condition
    end
  end
end

Private Instance Methods

parse_response_content() click to toggle source
# File lib/gmo_payment/api_response.rb, line 82
def parse_response_content
  result = {}
  return result unless @response_body && !@response_body.empty?
  begin
    @response_body.split('&').each do |key_value|
      key, value         = key_value.split('=')
      result[key.to_sym] = value
    end
    result
  rescue
    result
  end
end