Method: CdekClient::Client#order_infos

Defined in:
lib/cdek_client/client.rb

#order_infos(params) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/cdek_client/client.rb', line 55

def order_infos(params)
  params = normalize_request_data params
  params = { InfoRequest: params }
  result = authorized_request url_for(:primary, :order_infos), url_for(:secondary, :order_infos), params
  if result.errors.any?
    result.set_data []
    return result
  end
  if result.data.has_key? :response
    result.data[:response].values.each do |error_data|
      error = CdekClient.get_api_error error_data[:ErrorCode], error_data[:Msg]
      result.add_error error
    end
    result.set_data []
  elsif result.data.has_key?(:InfoReport) && result.data[:InfoReport].is_a?(Hash)
    normalized_data = Util.array_wrap result.data[:InfoReport][:Order]
    normalized_data = normalize_response_data normalized_data, response_normalization_rules_for(:order_infos)
    result.set_data normalized_data
  else
    result.set_data []
  end
  result
end