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