110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
# File 'lib/cdek_client/client.rb', line 110
def new_schedule(params)
params = normalize_request_data params
params[:OrderCount] = params[:Order].is_a?(Array) ? params[:Order].length : 1
params = { ScheduleRequest: params }
result = authorized_request url_for(:primary, :new_schedule), url_for(:secondary, :new_schedule), params
if result.errors.any?
result.set_data []
return result
end
normalized_data = []
if result.data[:response].has_key? :Order
Util.array_wrap(result.data[:response][:Order]).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? :ScheduleRequest
Util.array_wrap(result.data[:response][:ScheduleRequest]).each do |schedule_data|
if schedule_data.has_key? :ErrorCode
error = CdekClient.get_api_error schedule_data[:ErrorCode], schedule_data[:Msg]
result.add_error error
elsif schedule_data.has_key? :Msg
normalized_schedule_data = normalize_response_data schedule_data, response_normalization_rules_for(:new_schedule)
normalized_data.push normalized_schedule_data
end
end
end
result.set_data normalized_data
result
end
|