class Slack::Web::Faraday::Response::RaiseError

def on_complete(env)

def on_complete(env)
  raise Slack::Web::Api::Errors::TooManyRequestsError, redact_response(env.response) if env.status == 429
  return unless env.success?
  body = env.body
  return unless body
  return if body['ok']
  error_message = body['error'] || body['errors'].map { |message| message['error'] }.join(',')
  error_class = Slack::Web::Api::Errors::ERROR_CLASSES[error_message]
  error_class ||= Slack::Web::Api::Errors::SlackError
  raise error_class.new(error_message, redact_response(env.response))
end

def redact_response(response)

def redact_response(response)
  return response unless response&.env
  redacted_env = response.env.dup
  # redact Authorization header if it exists
  if redacted_env[:request_headers]&.key?('Authorization')
    redacted_env[:request_headers] = redacted_env[:request_headers].dup
    redacted_env[:request_headers]['Authorization'] = '[REDACTED]'
  end
  redacted_response = ::Faraday::Response.new(redacted_env)
  redacted_response.env[:response] = redacted_response
  redacted_response
end