class Smess::HttpBase

Attributes

sms[R]

Public Class Methods

new(config) click to toggle source
Calls superclass method Smess::Output::new
# File lib/smess/outputs/http_base.rb, line 8
def initialize(config)
  super
  HTTPI.log_level = :debug
end

Public Instance Methods

sender_id() click to toggle source
# File lib/smess/outputs/http_base.rb, line 14
def sender_id
  @sender_id || Smess.config.default_sender_id
end

Private Instance Methods

from() click to toggle source
# File lib/smess/outputs/http_base.rb, line 22
def from
  sms.originator || sender_id
end
http_get(request) click to toggle source
# File lib/smess/outputs/http_base.rb, line 34
def http_get(request)
  http_request(:get, request)
end
http_post(request) click to toggle source
# File lib/smess/outputs/http_base.rb, line 38
def http_post(request)
  http_request(:post, request)
end
http_request(method, request) click to toggle source
# File lib/smess/outputs/http_base.rb, line 42
def http_request(method, request)
  response = HTTPI.send(method, request)
  normal_result(response)
rescue => e
  logger.warn response
  result_for_error(e)
end
message_id() click to toggle source
# File lib/smess/outputs/http_base.rb, line 26
def message_id
  @message_id ||= Digest::MD5.hexdigest "#{Time.now.strftime('%Y%m%d%H%M%S')}#{sms.to}-#{SecureRandom.hex(6)}"
end
request() click to toggle source
# File lib/smess/outputs/http_base.rb, line 30
def request
  @request ||= HTTPI::Request.new
end
result_data() click to toggle source
# File lib/smess/outputs/http_base.rb, line 62
def result_data
  {
    to: sms.to,
    text: sms.message.strip_nongsm_chars,
    from: from
  }
end
result_for_error(e) click to toggle source
# File lib/smess/outputs/http_base.rb, line 50
def result_for_error(e)
  {
    response_code: '-1',
    response: {
      temporaryError: 'true',
      responseCode: '-1',
      responseText: e.message
    },
    data: result_data
  }
end