class Authy::OneTouch
Constants
- MAX_STRING_SIZE
Maximum String size for the parameters
Public Class Methods
approval_request_status(params)
click to toggle source
# File lib/authy/onetouch.rb, line 40 def self.approval_request_status(params) uuid = params.delete(:uuid) || params.delete('uuid') get_request("onetouch/json/approval_requests/#{uuid}") end
send_approval_request(params)
click to toggle source
options:
:id :details Hash containing the approval request details :hidden_details :phone_number The persons phone number.
# File lib/authy/onetouch.rb, line 12 def self.send_approval_request(params) user_id = params.delete(:id) || params.delete('id') message = (params.delete(:message) || params.delete('message')).to_s details = params.delete(:details) || params.delete('details') hidden_details = params.delete(:hidden_details) || params.delete('hidden_details') logos = params.delete(:logos) || params.delete('logos') seconds_to_expire = params.delete(:seconds_to_expire) || params.delete('seconds_to_expire') return invalid_response("message cannot be blank") if message.nil? || message.empty? return invalid_response('user id is invalid') unless is_digit?(user_id) begin self.clean_hash!(details) self.clean_hash!(hidden_details) logos = self.clean_logos!(logos) rescue => e return invalid_response("Invalid parameters: #{e.message}") end params = { message: message[0, MAX_STRING_SIZE] } params[:details] = details unless details.nil? params[:hidden_details] = hidden_details unless hidden_details.nil? params[:logos] = logos unless logos.nil? params[:seconds_to_expire] = seconds_to_expire unless seconds_to_expire.nil? post_request("onetouch/json/users/#{user_id}/approval_requests", params) end
Private Class Methods
clean_hash!(test_hash)
click to toggle source
# File lib/authy/onetouch.rb, line 47 def self.clean_hash!(test_hash) return if test_hash.nil? # Allow nil hash raise "Hash expected. Got: #{test_hash.class}" unless test_hash.is_a? Hash test_hash = test_hash.map { |k, v| [k, v.to_s] }.to_h end
clean_logos!(logos)
click to toggle source
# File lib/authy/onetouch.rb, line 54 def self.clean_logos!(logos) return if logos.nil? # Allow nil logos raise "Array expected. Got #{logos.class}" unless logos.is_a? Array logos = logos.map do |logo| raise "Invalid logo format: #{logo}" unless logo.is_a? Hash res = logo.delete(:res) || logo.delete('res') url = logo.delete(:url) || logo.delete('url') raise "Logo should include res and url" if res.nil? || url.nil? # We ignore any additional parameter on the logos, and truncate # string size to the maximum allowed. { res: res[0, MAX_STRING_SIZE], url: url[0, MAX_STRING_SIZE] } end end