trabajo-afectivo/app/models/channel/driver/sms/massenversand.rb

52 lines
1.6 KiB
Ruby
Raw Normal View History

class Channel::Driver::Sms::Massenversand
NAME = 'sms/massenversand'.freeze
def send(options, attr, _notification = false)
Rails.logger.info "Sending SMS to recipient #{attr[:recipient]}"
return true if Setting.get('import_mode')
Rails.logger.info "Backend sending Massenversand SMS to #{attr[:recipient]}"
begin
url = build_url(options, attr)
if Setting.get('developer_mode') != true
response = Faraday.get(url).body
raise response if !response.match?('OK')
end
true
rescue => e
Rails.logger.debug "Massenversand error: #{e.inspect}"
raise e
end
end
def self.definition
{
name: 'Massenversand',
adapter: 'sms/massenversand',
notification: [
{ name: 'options::gateway', display: 'Gateway', tag: 'input', type: 'text', limit: 200, null: false, placeholder: 'https://gate1.goyyamobile.com/sms/sendsms.asp', default: 'https://gate1.goyyamobile.com/sms/sendsms.asp' },
{ name: 'options::token', display: 'Token', tag: 'input', type: 'text', limit: 200, null: false, placeholder: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' },
{ name: 'options::sender', display: 'Sender', tag: 'input', type: 'text', limit: 200, null: false, placeholder: '00491710000000' },
]
}
end
private
def build_url(options, attr)
params = {
authToken: options[:token],
getID: 1,
msg: attr[:message],
msgtype: 'c',
receiver: attr[:recipient],
sender: options[:sender]
}
options[:gateway] + '?' + URI.encode_www_form(params)
end
end