lib/trav3/post.rb in trav3-0.2.0 vs lib/trav3/post.rb in trav3-0.2.1
- old
+ new
@@ -1,26 +1,31 @@
# frozen_string_literal: true
+
require 'net/http'
require 'uri'
require 'json'
module Trav3
module POST
- def self.call(travis, url, fields={})
+ # rubocop:disable Metrics/MethodLength
+ def self.call(travis, url, **fields)
uri = URI( url.sub(/\?.*$/, '') )
req = Net::HTTP::Post.new(uri.request_uri)
- travis.headers.each_pair { |header, value|
+ travis.headers.each_pair do |header, value|
req[header] = value
- }
+ end
+ body = fields.delete(:body)
+ req.body = body if body
req.set_form_data(**fields) unless fields.empty?
http = Net::HTTP.new(uri.host, uri.port)
- http.use_ssl = (uri.scheme == "https")
+ http.use_ssl = (uri.scheme == 'https')
response = http.request(req)
-
+
if [Net::HTTPAccepted, Net::HTTPOK].include? response.code_type
Success.new(travis, response)
else
RequestError.new(travis, response)
end
end
+ # rubocop:enable Metrics/MethodLength
end
end