class AtomparkSmsApi::Gateway

Attributes

conn[R]
method[R]
params[R]

Public Class Methods

new(method, params) click to toggle source
# File lib/atompark-sms-api/gateway.rb, line 8
def initialize(method, params)
  @method = method
  @params = params.merge(action: method, key: AtomparkSmsApi.config.pubkey, version: '3.0')
  @params.merge!(test: true) if AtomparkSmsApi.config.test

  @conn = Faraday.new(url: AtomparkSmsApi.config.base_url)
end
perform(*args) click to toggle source
# File lib/atompark-sms-api/gateway.rb, line 4
def self.perform(*args)
  fail "Don't call me that way"
end

Public Instance Methods

perform() click to toggle source
# File lib/atompark-sms-api/gateway.rb, line 16
def perform
  AtomparkSmsApi::Response.new(perform!)
end

Private Instance Methods

checksum() click to toggle source
# File lib/atompark-sms-api/gateway.rb, line 31
def checksum
  @_checksum ||= Digest::MD5.hexdigest(params.sort.map{ |v| v[1] }.join('') + AtomparkSmsApi.config.pvtkey)
end
perform!() click to toggle source
# File lib/atompark-sms-api/gateway.rb, line 24
def perform!
  conn.post do |req|
    req.url(method.to_s)
    req.params = params.merge(sum: checksum)
  end.body
end