Class: Authy::OneTouch

Inherits:
API
  • Object
show all
Defined in:
lib/authy/onetouch.rb

Constant Summary collapse

MAX_STRING_SIZE =

Maximum String size for the parameters

200

Constants inherited from API

API::MAX_TOKEN_SIZE, API::MIN_TOKEN_SIZE

Class Method Summary collapse

Methods inherited from API

delete_user, register_user, request_phone_call, request_qr_code, request_sms, user_status, verify

Methods included from URL

included

Class Method Details

.approval_request_status(params) ⇒ Object



40
41
42
43
44
# 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) ⇒ Object

options:

:id
:details Hash containing the approval request details
:hidden_details
:phone_number The persons phone number.


12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 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)
    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