Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .env
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,6 @@ REDIS_PORT=6379
REDIS_PASSWORD=
TWILIO_ACCOUNT_SID=a
TWILIO_ACCOUNT_TOKEN=b
TWILIO_PHONE_NUMBER=c
TWILIO_PHONE_NUMBER=c
SCRAPPER_SERVICE=https://sms-scrapper.rover.quenecesito.org/sms
RETRY_COUNT=3
1 change: 1 addition & 0 deletions .ruby-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2.7.0
53 changes: 44 additions & 9 deletions workers/sms_request_worker.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
require "net/http"
require "json"
require "sidekiq"
require "rack/env"
require "sinatra/activerecord"
Expand All @@ -9,20 +11,53 @@
end
class SmsRequestWorker
include Sidekiq::Worker
sidekiq_options :retry => ENV['RETRY_COUNT'].to_i

def perform(sms_request_id)
puts "::::::::::::::::::::::::::::::::::::::::::::::::::: Worker doing somthing \n"
puts "::::::::::::::::::::::::::::::::::::::::::::::::::: Worker doing something \n"

sms_request=SmsRequest.find(sms_request_id)

# GET MESSAGE
message = "Buxos ya llegan los sms, solo falta integrar con scraping XD"
if sms_request
uri = URI("#{ENV['SCRAPPER_ENDPOINT']}/#{sms_request.dui}")
read_timeout = ENV['SCRAPPER_READ_TIMEOUT'].to_i
open_timeout = ENV['SCRAPPER_OPEN_TIMEOUT'].to_i

begin
Net::HTTP.start(uri.host,uri.port,
:use_ssl => uri.scheme == 'https',
:read_timeout => read_timeout,
:open_timeout => open_timeout) do |http|
request = Net::HTTP::Get.new uri
response = http.request request
end

if response.code == 200
response = JSON.parse(response.read_body)

if sms_request
resp=TwilioSms.send_sms(sms_request.phone, message)
message = ""
# Re-escribiendo el mensaje
if response["success"] == true
message = "Usted es beneficiario de los $300USD"
else
message = "Usted no es beneficiario. Llame al 2565-5555 si aplica al criterio de seleccion"
end

resp=TwilioSms.send_sms(sms_request.phone, message)

sms_request.update_column(:status, 1)
sms_request.update_column(:last_error, resp)
p "The work is done: #{sms_request.inspect}"
sms_request.update_column(:status, 1)
sms_request.update_column(:last_error, resp)

p "The work is done: #{sms_request.inspect}"
else
p "Request failed with HTTP error code "+response.code.to_s
end

rescue Net::ReadTimeout => exception
STDERR.puts "ReadTimeout error"
rescue Net::OpenTimeout => exception
STDERR.puts "OpenTimeout error"
end
end
end
end
end