class SmsService::Service::Bulksms
Public Class Methods
api_url_for_batch()
click to toggle source
# File lib/sms_service/services/bulksms.rb, line 33 def self.api_url_for_batch uri=URI.parse(@api_url) @api_url="#{uri.scheme}://#{uri.host}#{gateway_for_batch_sms}" end
api_url_for_single_sms()
click to toggle source
# File lib/sms_service/services/bulksms.rb, line 28 def self.api_url_for_single_sms uri=URI.parse(@api_url) @api_url="#{uri.scheme}://#{uri.host}#{gateway_for_single_sms}" end
default_api()
click to toggle source
# File lib/sms_service/services/bulksms.rb, line 19 def self.default_api "http://www.bulksms.co.uk:5567" end
gateway_for_batch_sms()
click to toggle source
# File lib/sms_service/services/bulksms.rb, line 42 def self.gateway_for_batch_sms "/eapi/submission/send_batch/1/1.0" end
gateway_for_single_sms()
click to toggle source
# File lib/sms_service/services/bulksms.rb, line 38 def self.gateway_for_single_sms "/eapi/submission/send_sms/2/2.0" end
name()
click to toggle source
# File lib/sms_service/services/bulksms.rb, line 15 def self.name "BulkSMS" end
new(params)
click to toggle source
# File lib/sms_service/services/bulksms.rb, line 6 def initialize params @params=params self.class.set_api_url self.class.default_api unless self.class.url_address == nil self.class.set_api_url self.class.url_address @params.delete :eapi_url end end
set_api_url(host)
click to toggle source
# File lib/sms_service/services/bulksms.rb, line 23 def self.set_api_url host uri=URI.parse host @api_url="#{uri.scheme}://#{uri.host}#{gateway_for_single_sms}" end
url_address()
click to toggle source
# File lib/sms_service/services/bulksms.rb, line 50 def self.url_address SmsService::Configuration.instance.data[:bulksms][:eapi_url] end
Public Instance Methods
api_url()
click to toggle source
# File lib/sms_service/services/bulksms.rb, line 46 def api_url @api_url end
make_request(sms,sms_type='single')
click to toggle source
# File lib/sms_service/services/bulksms.rb, line 66 def make_request sms,sms_type='single' results=[] @api_url=(sms_type=='multi' ? self.class.api_url_for_batch : self.class.api_url_for_single_sms) append_query=(sms_type=='multi' ? {:batch_data=>to_batch(sms)} : {:msisdn=>sms.to,:message=>sms.text}) form_data=convert_keys_to_s @params.merge! append_query result=call_api api_url,form_data #result='0|IN_PROGRESS|887906255' response = SmsService::Result::Bulksms.fetch_response result results << response results end
send(message)
click to toggle source
# File lib/sms_service/services/bulksms.rb, line 60 def send message results=[] messages=(Message.new message).extract messages.length == 1 ? make_request(messages.first) : make_request(messages,'multi') end
set_form_data(request, form_data)
click to toggle source
# File lib/sms_service/services/bulksms.rb, line 78 def set_form_data request, form_data request.set_form_data(form_data) request.body=request.body.gsub("%2C",",") if request.body.to_s.include?("batch_data") end
sms_url(params)
click to toggle source
# File lib/sms_service/services/bulksms.rb, line 54 def sms_url params query=@params.merge! params query=@params.map {|k,v| "#{k}=#{v}"}.join('&') api_url+"?"+query end
to_batch(messages)
click to toggle source
# File lib/sms_service/services/bulksms.rb, line 83 def to_batch messages messages.inject("msisdn,message\n") {|result,sms| result+"\"#{sms.to.to_s}\",\"#{sms.text.to_s}\"\n" } end