class Coolsms::RestApi

Public Class Methods

api_key() click to toggle source
# File lib/coolsms/rest_api.rb, line 10
def api_key;    @@api_key    || Coolsms.api_key    end
api_secret() click to toggle source
# File lib/coolsms/rest_api.rb, line 11
def api_secret; @@api_secret || Coolsms.api_secret end
conn() click to toggle source
# File lib/coolsms/rest_api.rb, line 17
def conn
  @conn ||= Faraday.new(url: url) do |conn|
    conn.response :json
    conn.use :instrumentation
    conn.use Faraday::Response::RaiseError
    conn.adapter Coolsms.faraday_adapter || Faraday.default_adapter
  end
end
conn=(conn) click to toggle source
# File lib/coolsms/rest_api.rb, line 13
def conn=(conn)
  @conn = conn
end
url() click to toggle source
# File lib/coolsms/rest_api.rb, line 9
def url;        @@url        || Coolsms.url        end

Public Instance Methods

auth_params() click to toggle source
# File lib/coolsms/rest_api.rb, line 39
def auth_params
  timestamp = Time.now.to_i
  salt = SecureRandom.hex
  hmac_data = timestamp.to_s + salt.to_s
  signature = OpenSSL::HMAC.hexdigest('md5', self.class.api_secret, hmac_data)
  {
    api_key:    self.class.api_key,
    timestamp:  timestamp,
    salt:       salt,
    signature:  signature
  }
end
call() click to toggle source
# File lib/coolsms/rest_api.rb, line 31
def call
  raise Unimplemented, {desc: self.class.name}
end
callback() click to toggle source
# File lib/coolsms/rest_api.rb, line 35
def callback
  # do not call response, use @response
end
conn() click to toggle source
# File lib/coolsms/rest_api.rb, line 27
def conn
  self.class.conn
end
response() click to toggle source
# File lib/coolsms/rest_api.rb, line 60
def response
  @response ||= call
  callback
  @response
rescue Oj::ParseError
  raise Coolsms::RestApi::InvalidJson, api: self
rescue Faraday::Error::ClientError => e
  raise Coolsms::RestApi::ResponseError, {api: self, response: e}
rescue Coolsms::RestApi::Error => e
  e.api = self
  raise e
rescue
  raise Coolsms::RestApi::Error, api: self
end
to_params() click to toggle source
# File lib/coolsms/rest_api.rb, line 52
def to_params
  auth_params
end
to_query() click to toggle source
# File lib/coolsms/rest_api.rb, line 56
def to_query
  to_params.to_query
end