class Slack::Notifier::Util::HTTPClient
def call
def call http_obj.request(request_obj).tap do |response| unless response.is_a?(Net::HTTPSuccess) raise Slack::Notifier::APIError, <<-MSG k API returned an error: #{response.body} (HTTP Code #{response.code}) e "Handling Errors" section on https://api.slack.com/incoming-webhooks for more information end end end
def http_obj
def http_obj http = Net::HTTP.new uri.host, uri.port http.use_ssl = (uri.scheme == "https") http_options.each do |opt, val| if http.respond_to? "#{opt}=" http.send "#{opt}=", val else warn "Net::HTTP doesn't respond to `#{opt}=`, ignoring that option" end end http end
def initialize uri, params
def initialize uri, params @uri = uri @http_options = params.delete(:http_options) || {} @params = params end
def post uri, params
def post uri, params HTTPClient.new(uri, params).call end
def request_obj
def request_obj req = Net::HTTP::Post.new uri.request_uri req.set_form_data params req end