summaryrefslogtreecommitdiff
path: root/config/initializers/hangouts_chat_http_override.rb
blob: 4fd886697e467ca171db964fde80a5b653186a66 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# frozen_string_literal: true

module HangoutsChat
  class Sender
    class HTTP
      module GitlabHTTPOverride
        extend ::Gitlab::Utils::Override

        attr_reader :uri

        # see https://github.com/enzinia/hangouts-chat/blob/6a509f61a56e757f8f417578b393b94423831ff7/lib/hangouts_chat/http.rb
        override :post
        def post(payload)
          httparty_response = Gitlab::HTTP.post(
            uri,
            body: payload.to_json,
            headers: { 'Content-Type' => 'application/json' },
            parse: nil # disables automatic response parsing
          )
          net_http_response = httparty_response.response
          # The rest of the integration expects a Net::HTTP response
          net_http_response
        end
      end

      prepend GitlabHTTPOverride
    end
  end
end