class RajaSms::Client
Public Class Methods
new(host = nil, api_key = nil)
click to toggle source
# File lib/raja_sms/client.rb, line 9 def initialize(host = nil, api_key = nil) @host = host || RajaSms.configuration.host @api_key = api_key || RajaSms.configuration.api_key raise RajaSms::InvalidHostError if @host.nil? raise RajaSms::InvalidApiKeyError if @api_key.nil? @connection ||= setup_connection end
Public Instance Methods
balance()
click to toggle source
# File lib/raja_sms/client.rb, line 43 def balance path = "/sms/api_sms_reguler_balance_json.php" payload = {apikey: @api_key} response = make_request(path, 'post', payload) body = json_parsed(response.body) attribute = { amount: body.Balance, expired: body.Expired } RajaSms::Entities::Balance.new(attribute) end
masking(phone_number, message, sending_time = '')
click to toggle source
# File lib/raja_sms/client.rb, line 27 def masking(phone_number, message, sending_time = '') path = "/sms/api_sms_masking_send_json.php" payload = make_payload(phone_number, message) payload[:datapacket].first.merge!({sendingdatetime: sending_time}) response = make_request(path, 'post', payload) json_parsed(response.body) end
otp(phone_number, message)
click to toggle source
# File lib/raja_sms/client.rb, line 35 def otp(phone_number, message) payload = make_payload(phone_number, message) path = "/sms/api_sms_otp_send_json.php" response = make_request(path, 'post', payload) json_parsed(response.body) end
regular(phone_number, message)
click to toggle source
# File lib/raja_sms/client.rb, line 19 def regular(phone_number, message) path = '/sms/api_sms_reguler_send_json.php' payload = make_payload(phone_number, message) response = make_request(path, 'post', payload) json_parsed(response.body) end
Private Instance Methods
json_parsed(body)
click to toggle source
# File lib/raja_sms/client.rb, line 90 def json_parsed(body) body_parsed = JSON.parse(body, object_class: OpenStruct) response = body_parsed.sending_respon.nil? ? body_parsed.balance_respon.first : body_parsed.sending_respon.first status = response.globalstatus.to_s raise RajaSms::ResponseError, response.globalstatustext if status != "10" response end
make_payload(phone_number, message)
click to toggle source
# File lib/raja_sms/client.rb, line 58 def make_payload(phone_number, message) raise RajaSms::InvalidPhoneNumberError if phone_number.empty? raise RajaSms::InvalidMessageError if message.empty? { apikey: @api_key, callbackurl: '', datapacket: [ { number: phone_number, message: message } ] } end
make_request(endpoint, method, payload = {}, headers = {})
click to toggle source
# File lib/raja_sms/client.rb, line 83 def make_request(endpoint, method, payload = {}, headers = {}) # make a request to raja sms return @connection.post(endpoint, payload.to_json, headers) if method == 'post' @connection.get endpoint end
setup_connection()
click to toggle source
# File lib/raja_sms/client.rb, line 73 def setup_connection # start setting up connections Faraday.new(url: @host) do |faraday| faraday.use FaradayMiddleware::RaiseHttpException faraday.response :logger # log requests to STDOUT faraday.request :url_encoded faraday.adapter Faraday.default_adapter # make requests with Net::HTTP end end