79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
# File 'lib/cdek_client/client.rb', line 79
def new_orders(params)
params = normalize_request_data params
params[:OrderCount] = params[:Order].is_a?(Array) ? params[:Order].length : 1
params = { DeliveryRequest: params }
result = authorized_request url_for(:primary, :new_orders), url_for(:secondary, :new_orders), params
if result.errors.any?
result.set_data []
return result
end
normalized_data = []
if result.data[:response].has_key? :DeliveryRequest
Util.array_wrap(result.data[:response][:DeliveryRequest]).each do |error_data|
error = CdekClient.get_api_error error_data[:ErrorCode], error_data[:Msg]
result.add_error error
end
end
if result.data[:response].has_key? :Order
Util.array_wrap(result.data[:response][:Order]).each do |order_data|
if order_data.has_key? :ErrorCode
error = CdekClient.get_api_error order_data[:ErrorCode], order_data[:Msg]
result.add_error error
elsif order_data.has_key? :Number
normalized_order_data = normalize_response_data order_data, response_normalization_rules_for(:new_orders)
normalized_data.push normalized_order_data
end
end
end
result.set_data normalized_data
result
end
|