Class: Authy::API

Inherits:
Object
  • Object
show all
Extended by:
HTTPClient::IncludeClient
Includes:
URL
Defined in:
lib/authy/api.rb

Overview

Authy.api_key = ‘foo’

Authy.api_uri = 'http://test-authy-api.heroku.com/'

Constant Summary collapse

USER_AGENT =
"authy-ruby"

Class Method Summary collapse

Methods included from URL

included

Class Method Details

.build_error_response(error = "blank uri param found") ⇒ Object



98
99
100
101
102
103
104
105
106
107
108
109
# File 'lib/authy/api.rb', line 98

def self.build_error_response(error = "blank uri param found")
  OpenStruct.new({
    'status' => 400,
    'body' => {
      'success' => false,
      'message' => error,
      'errors' => {
        'message' => error
      }
    }.to_json
  })
end

.delete_user(params) ⇒ Object

options: :id user id



63
64
65
66
67
# File 'lib/authy/api.rb', line 63

def self.delete_user(params)
  user_id = params.delete(:id) || params.delete('id')

  post_request("protected/json/users/delete/:user_id", params.merge({"user_id" =>user_id}))
end

.get_request(uri, params = {}) ⇒ Object



85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/authy/api.rb', line 85

def self.get_request(uri, params = {})
  uri_params = keys_to_verify(uri, params)
  state, error = validate_for_url(uri_params, params)
  response = if state
               url = "#{Authy.api_uri}/#{eval_uri(uri, params)}"
               params = clean_uri_params(uri_params, params)
               http_client.get(url, escape_params({:api_key => Authy.api_key}.merge(params)))
             else
               build_error_response(error)
             end
  Authy::Response.new(response)
end

.post_request(uri, params = {}) ⇒ Object



71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/authy/api.rb', line 71

def self.post_request(uri, params = {})
  uri_params = keys_to_verify(uri, params)
  state, error = validate_for_url(uri_params, params)

  response = if state
               url = "#{Authy.api_uri}/#{eval_uri(uri, params)}"
               params = clean_uri_params(uri_params, params)
               http_client.post(url, :body => escape_query({:api_key => Authy.api_key}.merge(params)))
             else
               build_error_response(error)
             end
  Authy::Response.new(response)
end

.register_user(attributes) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/authy/api.rb', line 15

def self.register_user(attributes)
  api_key = attributes.delete(:api_key)
  params = {
    :user => attributes,
    :api_key => api_key || Authy.api_key
  }

  url = "#{Authy.api_uri}/protected/json/users/new"
  response = http_client.post(url, :body => escape_query(params))

  Authy::User.new(response)
end

.request_phone_call(params) ⇒ Object

options: :id user id :force force phone_call



55
56
57
58
59
# File 'lib/authy/api.rb', line 55

def self.request_phone_call(params)
  user_id = params.delete(:id) || params.delete('id')

  get_request("protected/json/call/:user_id", params.merge({"user_id" => user_id}))
end

.request_sms(params) ⇒ Object

options: :id user id :force force sms



46
47
48
49
50
# File 'lib/authy/api.rb', line 46

def self.request_sms(params)
  user_id = params.delete(:id) || params.delete('id')

  get_request("protected/json/sms/:user_id", params.merge({"user_id" => user_id}))
end

.verify(params) ⇒ Object

options: :id user id :token authy token entered by the user :force (true|false) force to check even if the cellphone is not confirmed



33
34
35
36
37
38
39
40
41
# File 'lib/authy/api.rb', line 33

def self.verify(params)
  token = params.delete(:token) || params.delete('token')
  user_id = params.delete(:id) || params.delete('id')
  params[:force] = true if params[:force].nil? && params['force'].nil?

  get_request("protected/json/verify/:token/:user_id", params.merge({
                                                                      "token" => token,
                                                                      "user_id" => user_id}))
end