module Elefeely
Constants
- VERSION
Public Class Methods
phone_numbers()
click to toggle source
# File lib/elefeely.rb, line 11 def self.phone_numbers request(:get, phone_numbers_uri) end
send_feeling(params)
click to toggle source
# File lib/elefeely.rb, line 15 def self.send_feeling(params) request(:post, feelings_uri, body: params) end
unsubscribe_number(phone_number)
click to toggle source
# File lib/elefeely.rb, line 23 def self.unsubscribe_number(phone_number) request(:post, phone_number_uri(phone_number), body: {verified: false}) end
verify_number(phone_number)
click to toggle source
# File lib/elefeely.rb, line 19 def self.verify_number(phone_number) request(:post, phone_number_uri(phone_number), body: {verified: true}) end
Private Class Methods
api_directory()
click to toggle source
# File lib/elefeely.rb, line 29 def self.api_directory request(:get, api_host) end
connection()
click to toggle source
# File lib/elefeely.rb, line 50 def self.connection ::Typhoeus::Request end
feelings_uri()
click to toggle source
# File lib/elefeely.rb, line 37 def self.feelings_uri signed_url(api_directory['feelings_url']) end
parse_response(response)
click to toggle source
# File lib/elefeely.rb, line 54 def self.parse_response(response) if response.code == 200 JSON.parse(response.body) elsif response.code == 404 nil else raise response.body end end
phone_number_uri(phone_number)
click to toggle source
# File lib/elefeely.rb, line 41 def self.phone_number_uri(phone_number) signed_url(api_directory['phone_url'].gsub('{number}', phone_number)) end
phone_numbers_uri()
click to toggle source
# File lib/elefeely.rb, line 33 def self.phone_numbers_uri signed_url(api_directory['phones_url']) end
request(verb, *params)
click to toggle source
# File lib/elefeely.rb, line 45 def self.request(verb, *params) response = connection.send(verb, *params) parse_response(response) end
signature(url)
click to toggle source
# File lib/elefeely.rb, line 70 def self.signature(url) validate_credentials! OpenSSL::HMAC.hexdigest(OpenSSL::Digest::Digest.new('sha512'), source_secret, url) end
signed_url(url)
click to toggle source
# File lib/elefeely.rb, line 64 def self.signed_url(url) signed_url = url signed_url << "?source_key=#{source_key}×tamp=#{Time.now.to_i}" signed_url << "&signature=#{signature(signed_url)}" end