class MegafonSms::Client

Constants

URL

Attributes

adapter[RW]
connection[R]
login[R]
password[R]
response[R]

Public Class Methods

new(login, password) click to toggle source
# File lib/megafon_sms/client.rb, line 15
def initialize(login, password)
  @adapter = Faraday.default_adapter
  @login = login
  @password = password

  @connection = Faraday.new do |conn|
    conn.response :json, content_type: /\bjson$/
    conn.adapter adapter
  end
end

Public Instance Methods

failure?() click to toggle source
# File lib/megafon_sms/client.rb, line 37
def failure?
  !success?
end
send(from:, to:, message:, callback_url: nil, msg_id: nil) click to toggle source
# File lib/megafon_sms/client.rb, line 26
def send(from:, to:, message:, callback_url: nil, msg_id: nil)
  body = { from: from, to: to.to_i, message: message.to_s, callback_url: callback_url, msg_id: msg_id }.to_json
  @response = connection.post(URL, body, headers)
rescue StandardError => e
  raise MegafonSms::Error, e
end
success?() click to toggle source
# File lib/megafon_sms/client.rb, line 33
def success?
  response && response.status == 200 && response.body["result"]["status"]["code"] == 0
end

Private Instance Methods

headers() click to toggle source
# File lib/megafon_sms/client.rb, line 43
def headers
  {
    "Content-Type" => "application/json",
    "Authorization" => "Basic #{Base64.encode64([login, password].join(":"))}"
  }
end