class SMSBao::Request

Attributes

params[RW]
uri[RW]

Public Class Methods

new(action, recipients = nil, content = nil) click to toggle source
# File lib/sms_bao.rb, line 27
def initialize(action, recipients = nil, content = nil)
  @params = { u: SMSBao.username, p: SMSBao.md5_password }
  @params[:m] = Array(recipients).join(',') if recipients
  @params[:c] = "#{SMSBao.signature} #{content}" if content

  @uri = URI(BASE_GATEWAY % action)
  @uri.query = URI.encode_www_form(params)
end

Public Instance Methods

perform!() click to toggle source
# File lib/sms_bao.rb, line 36
def perform!
  timeout = SMSBao.timeout

  response = Net::HTTP.start(uri.host,
                              uri.port,
                              open_timeout: timeout,
                              read_timeout: timeout) do |http|
    http.get(uri.request_uri)
  end

  code, error_msg = response.body.split("\n")
  code == '0' ? error_msg : raise(RequestException.new(code))
end