Class: ProveKeybase::KeybaseClient

Inherits:
Object
  • Object
show all
Defined in:
lib/prove_keybase/keybase_client.rb

Instance Method Summary collapse

Constructor Details

#initialize(proof_params, base_url) ⇒ KeybaseClient

Returns a new instance of KeybaseClient.



2
3
4
5
6
7
8
9
# File 'lib/prove_keybase/keybase_client.rb', line 2

def initialize(proof_params, base_url)
  @proof_params = proof_params
  api_url = File.join(base_url, '/_/api/1.0/')
  @api_conn = Faraday::Connection.new(url: api_url) do |faraday|
    faraday.response :json
    faraday.adapter :net_http
  end
end

Instance Method Details

#pic_urlObject



11
12
13
14
15
16
# File 'lib/prove_keybase/keybase_client.rb', line 11

def pic_url
  res = @api_conn.get('user/pic_url.json', username: @proof_params[:kb_username]).body
  res.fetch('pic_url')
rescue NoMethodError, KeyError, Faraday::Error
  ProveKeybase.configuration.default_keybase_avatar_url
end

#proof_live?Boolean

Returns:

  • (Boolean)


25
26
27
28
29
30
# File 'lib/prove_keybase/keybase_client.rb', line 25

def proof_live?
  res = @api_conn.get('sig/proof_live.json', @proof_params).body
  res.fetch('proof_live', false)
rescue Faraday::Error
  false
end

#proof_valid?Boolean

Returns:

  • (Boolean)


18
19
20
21
22
23
# File 'lib/prove_keybase/keybase_client.rb', line 18

def proof_valid?
  res = @api_conn.get('sig/proof_valid.json', @proof_params).body
  res.fetch('proof_valid', false)
rescue Faraday::Error
  false
end

#remote_statusObject



32
33
34
35
36
37
# File 'lib/prove_keybase/keybase_client.rb', line 32

def remote_status
  # allow network and unexpected response errors to bubble up
  res = @api_conn.get('sig/proof_live.json', @proof_params).body
  { proof_valid: res.fetch('proof_valid'),
    proof_live: res.fetch('proof_live') }
end