Method: Worldline::Acquiring::SDK::Communicator#put_with_binary_response
- Defined in:
- lib/worldline/acquiring/sdk/communicator.rb
#put_with_binary_response(relative_path, request_headers, request_parameters, request_body, context) {|Array<Worldline::Acquiring::SDK::Communication::ResponseHeader>, IO| ... } ⇒ Object
Performs a PUT request to the Worldline Acquiring platform and yields the response as the headers and body.
332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 |
# File 'lib/worldline/acquiring/sdk/communicator.rb', line 332 def put_with_binary_response(relative_path, request_headers, request_parameters, request_body, context) request_parameter_list = request_parameters && request_parameters.to_request_parameters uri = to_absolute_uri(relative_path, request_parameter_list) request_headers = [] if request_headers.nil? body = nil if request_body.is_a? Communication::MultipartFormDataObject request_headers.push(Communication::RequestHeader.new('Content-Type', request_body.content_type)) body = request_body elsif request_body.is_a? Communication::MultipartFormDataRequest multipart = request_body.to_multipart_form_data_object request_headers.push(Communication::RequestHeader.new('Content-Type', multipart.content_type)) body = multipart elsif !request_body.nil? request_headers.push(Communication::RequestHeader.new('Content-Type', 'application/json')) body = @marshaller.marshal(request_body) else # Set the content-type, even though there is no body, to prevent the httpClient from # adding a content-type header after authentication has been generated. request_headers.push(Communication::RequestHeader.new('Content-Type', 'text/plain')) end add_generic_headers('PUT', uri, request_headers, context) response_status_code, response_headers, response_body = nil @connection.put(uri, request_headers, body) do |status_code, headers, content| response_status_code = status_code response_headers = headers response_body = process_binary_response(status_code, content, headers, context) do |h, c| yield h, c end end throw_exception_if_necessary(response_body, response_status_code, response_headers, relative_path) end |