class Skipio

Public Class Methods

new(options) click to toggle source
# File lib/skipio.rb, line 8
def initialize(options)
  @token = options[:token]
  @api_server = options[:api_server] || :dev
end

Public Instance Methods

api_server() click to toggle source
# File lib/skipio.rb, line 58
def api_server
  if @api_server == :prod
    'https://app.skipio.com'
  elsif :dev
    'https://stage.skipio.com'
  end
end
contact_list(params = nil) click to toggle source

params = { page: 1, per: 10 }

# File lib/skipio.rb, line 14
def contact_list(params = nil)
  page_parameters = params || { page: 1, per: 10 }
  url = 'v2/contacts'
  response = process_by_url(url, :get, page_parameters)
  JSON.parse(response)
end
find_contact(contact_id) click to toggle source

contact_id = Contact#id

# File lib/skipio.rb, line 22
def find_contact(contact_id)
  url = "/v2/contacts/#{contact_id}"
  response = process_by_url(url, :get)
  JSON.parse(response)
end
process_by_url(url, action, options = {}) click to toggle source

action = :get / :post / :put url = ‘v1/contacts’ options = { params: { Hash: parameters }, json: { Hash: json } }

# File lib/skipio.rb, line 46
def process_by_url(url, action, options = {})
  uri = URI.parse("#{api_server}/api/#{url}?token=#{@token}&#{options[:params]}")
  if action == :get
    response = Net::HTTP.get(uri)
  elsif action == :post
    json_data = options[:json].to_json
    response = create_by_url(uri, json_data)
  end

  response
end
request_parameters(request_parameters) click to toggle source
# File lib/skipio.rb, line 37
def request_parameters(request_parameters)
  uri = Addressable::URI.new
  uri.query_values = request_parameters
  uri.query
end
send_message(params = {}) click to toggle source

params = { recipients: ‘Comma Separated User UUID’, message: ‘body message’ }

# File lib/skipio.rb, line 29
def send_message(params = {})
  url = 'v2/messages'
  json_data = build_json_message_data(params)
  options = { json: json_data }
  response = process_by_url(url, :post, options)
  JSON.parse(response.body)
end

Private Instance Methods

build_json_message_data(params) click to toggle source
# File lib/skipio.rb, line 76
def build_json_message_data(params)
  {
    "recipients": [
      params[:recipients]
    ],
    "message": {
      "body": params[:message]
    }
  }
end
create_by_url(uri, json_data) click to toggle source
# File lib/skipio.rb, line 68
def create_by_url(uri, json_data)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  request = Net::HTTP::Post.new(uri.request_uri, {'Content-Type' => 'application/json'})
  request.set_form_data(JSON.parse(json_data))
  http.request(request)
end