summaryrefslogtreecommitdiff
path: root/config/initializers/hangouts_chat_http_override.rb
blob: edb31ed53f1f3f1948dcb9a6bf5bb8f94ec88604 (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
# 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
          )
          httparty_response.response
          # The rest of the integration expects a Net::HTTP response
        end
      end

      prepend GitlabHTTPOverride
    end
  end
end