class SmsTeknik::Client

Attributes

id[RW]
pass[RW]
user[RW]

Public Class Methods

endpoint() click to toggle source
# File lib/sms_teknik/client.rb, line 34
def self.endpoint
  @endpoint || "https://api.smsteknik.se"
end
endpoint=(value) click to toggle source
# File lib/sms_teknik/client.rb, line 38
def self.endpoint=(value)
  @endpoint = value
end
new(options = {}) click to toggle source
# File lib/sms_teknik/client.rb, line 8
def initialize(options = {})
  @id = options[:id]
  @user = options[:user]
  @pass = options[:pass]
end

Public Instance Methods

deliver(message) click to toggle source
# File lib/sms_teknik/client.rb, line 14
def deliver(message)
  req =  Net::HTTP::Post.new(uri)
  req.add_field "Content-Type", "text/xml"
  req.body = SmsTeknik::XMLTemplates.text_message(
    recipients: message.to,
    message: message.body,
    sender: message.from,
    send_date: Time.now.strftime("%Y-%m-%d"),
    send_time: Time.now.strftime("%H:%M")
  )

  # Fetch Request
  res = http.request(req)
  SmsTeknik.logger.info "[SmsTeknik] Message sent with status #{res.code} and response \"#{res.body}\""
  return true
rescue StandardError => e
  SmsTeknik.logger.error "[SmsTeknik] HTTP Request failed (#{e.message})"
  return false
end

Private Instance Methods

http() click to toggle source
# File lib/sms_teknik/client.rb, line 49
def http
  Net::HTTP.new(uri.host, uri.port).tap do |h|
    h.use_ssl = true
    h.verify_mode = OpenSSL::SSL::VERIFY_PEER
  end
end
uri() click to toggle source
# File lib/sms_teknik/client.rb, line 44
def uri
  params = URI.encode_www_form(id: id, user: user, pass: pass)
  URI("#{self.class.endpoint}/send/xml/?#{params}")
end