Method: CdekClient::Client#orders_print

Defined in:
lib/cdek_client/client.rb

#orders_print(params) ⇒ Object



199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
# File 'lib/cdek_client/client.rb', line 199

def orders_print(params)
  params = normalize_request_data params
  params[:OrderCount] = params[:Order].is_a?(Array) ? params[:Order].length : 1
  params = build_authorized_request_params OrdersPrint: params
  result = raw_request url_for(:primary, :orders_print), url_for(:secondary, :orders_print), :post, {}, params
  errors_hash = Util.xml_to_hash(result.data) rescue nil
  if !errors_hash.nil? && errors_hash.has_key?(:response)
    [:OrdersPrint, :Order].each do |key|
      Util.array_wrap(errors_hash[:response][key]).each do |error_data|
        next unless error_data.has_key?(:ErrorCode)
        error = CdekClient.get_api_error error_data[:ErrorCode], error_data[:Msg]
        result.add_error error
      end
    end
    result.set_data nil
  end
  result
end