class Fortytwoish::Client

Attributes

encoding[R]
response_body[R]
token[R]

Public Class Methods

new(token:, encoding: GSM7) click to toggle source
# File lib/fortytwoish/client.rb, line 8
def initialize(token:, encoding: GSM7)
  @token = token
  @encoding = encoding
end

Public Instance Methods

send(numbers, message) click to toggle source
# File lib/fortytwoish/client.rb, line 13
def send(numbers, message)
  response = send_message(numbers, message)
  @response_body = response.body
  response.code
end

Private Instance Methods

body(numbers, message) click to toggle source
# File lib/fortytwoish/client.rb, line 39
def body(numbers, message)
  {
    destinations: numbers.map { |number| { number: number } },
    sms_content: {
      message: message,
      encoding: encoding
    }
  }.to_json
end
build_request(uri, numbers, message) click to toggle source
# File lib/fortytwoish/client.rb, line 31
def build_request(uri, numbers, message)
  request = Net::HTTP::Post.new(uri.path)
  request['Content-Type'] = 'application/json; charset=utf-8'
  request['Authorization'] = "Token #{token}"
  request.body = body(numbers, message)
  request
end
send_message(numbers, message) click to toggle source
# File lib/fortytwoish/client.rb, line 23
def send_message(numbers, message)
  uri = URI 'https://rest.fortytwo.com/1/im'
  request = build_request(uri, numbers, message)
  Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
    http.request request
  end
end