Class: Firefighter::Identitytoolkit

Inherits:
Object
  • Object
show all
Includes:
Web
Defined in:
lib/firefighter/identitytoolkit.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Web

#call, #logger, #sse

Constructor Details

#initialize(api_key:, service_account_email:) ⇒ Identitytoolkit

Returns a new instance of Identitytoolkit.



13
14
15
16
# File 'lib/firefighter/identitytoolkit.rb', line 13

def initialize(api_key:, service_account_email:)
  @api_key = api_key
  @service_account_email = 
end

Class Method Details

.from_envObject



5
6
7
8
9
10
11
# File 'lib/firefighter/identitytoolkit.rb', line 5

def self.from_env
  config = {
    api_key: ENV['FIREBASE_WEB_API_KEY'],
    service_account_email: ENV['FIREBASE_SERVICE_ACCOUNT_EMAIL'],
  }
  new(config)
end

Instance Method Details

#account_info(id_token, local_ids: [], emails: []) ⇒ Object



28
29
30
31
32
33
34
35
36
# File 'lib/firefighter/identitytoolkit.rb', line 28

def (id_token, local_ids: [],	emails: [])
  url = endpoint('getAccountInfo')
  data = {
    idToken: id_token,
    localId: local_ids,
    email: emails,
  }
  call(:post, url, data)
end

#download_accounts(access_token = TokenGenerator.from_env.fetch_access_token) ⇒ Object



38
39
40
41
42
43
44
45
46
# File 'lib/firefighter/identitytoolkit.rb', line 38

def download_accounts(access_token = TokenGenerator.from_env.fetch_access_token)
  users = []

  headers = {Authorization: "Bearer #{access_token}" }
  url = endpoint('downloadAccount')
  paginate(url, headers: headers) { |data| users << data['users'] }

  users.flatten.compact
end

#signup(email, password) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/firefighter/identitytoolkit.rb', line 18

def (email, password)
  url = endpoint('signupNewUser')
  data = {
    email: email,
    password: password,
    returnSecureToken: true
  }
  call(:post, url, data)
end