Files
Reem-Notas/app/services/notificacao/cliente_twilio.rb

27 lines
970 B
Ruby

# app/services/notificacao/cliente_twilio.rb
#
# Monta o Twilio::REST::Client com timeout. Sem timeout, uma saída de internet
# bloqueada no servidor pendura o worker Puma até o proxy cortar a requisição —
# e o botão "enviar teste" da tela ficaria girando sem resposta.
#
# O construtor com http_client é posicional na twilio-ruby 7.x
# (username, password, account_sid, region, http_client). Se a assinatura mudar
# numa atualização da gem, cai no construtor simples em vez de quebrar o envio.
module Notificacao
module ClienteTwilio
TIMEOUT = 15
def self.montar(sid, token)
require 'twilio-ruby'
begin
http = Twilio::HTTP::Client.new(timeout: TIMEOUT)
Twilio::REST::Client.new(sid, token, nil, nil, http)
rescue ArgumentError, NameError => e
Rails.logger.warn("[ClienteTwilio] sem timeout customizado (#{e.class}: #{e.message})")
Twilio::REST::Client.new(sid, token)
end
end
end
end