class Smess::GlobalMouth

Attributes

password[RW]
sender_id[RW]
username[RW]

Public Instance Methods

deliver() click to toggle source
# File lib/smess/outputs/global_mouth.rb, line 7
def deliver
  generate_mac_hash
  request.url = "#{url}?#{params.to_query}"
  http_get request
end
validate_config() click to toggle source
# File lib/smess/outputs/global_mouth.rb, line 14
def validate_config
  @username  = config.fetch(:username)
  @password  = config.fetch(:password)
  @sender_id = config.fetch(:sender_id)
end

Private Instance Methods

compute_hash(values = []) click to toggle source
# File lib/smess/outputs/global_mouth.rb, line 41
def compute_hash(values = [])
  hash = "#{username}#{values.join}"
  auth_hash = Digest::MD5.hexdigest "#{username}:#{password}"
  Digest::MD5.hexdigest "#{hash}#{auth_hash}"
end
generate_mac_hash() click to toggle source
# File lib/smess/outputs/global_mouth.rb, line 47
def generate_mac_hash
  params[:hash] = compute_hash(
    [sms.message.strip_nongsm_chars.encode("ISO-8859-1"), params[:originator], params[:msisdn]]
  )
end
normal_result(response) click to toggle source
# File lib/smess/outputs/global_mouth.rb, line 53
def normal_result(response)
  response_code = response.body.split(/\n/).first
  response_code = "0" if response_code == "200"
  # Successful response
  {
    message_id: message_id,
    response_code: response_code.to_s,
    response: {body: response.body},
    destination_address: sms.to,
    data: result_data
  }
end
params() click to toggle source
# File lib/smess/outputs/global_mouth.rb, line 30
def params
  @params ||= {
    username: username,
    msisdn: "+#{sms.to}",
    body: sms.message.strip_nongsm_chars.encode("ISO-8859-1"),
    originator: from,
    ref: message_id,
    dlr: "true"
  }
end
url() click to toggle source
# File lib/smess/outputs/global_mouth.rb, line 26
def url
  config.fetch(:url) || "https://mcm.globalmouth.com:8443/api/mcm"
end