Class: Firebased::Account

Inherits:
Object
  • Object
show all
Defined in:
lib/firebased/account.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(email, pass, token = nil) ⇒ Account

Returns a new instance of Account.



11
12
13
14
15
16
17
# File 'lib/firebased/account.rb', line 11

def initialize(email, pass, token = nil)
  @email = email
  @pass  = pass
  @token = token
  @bases = {}
  login! unless token
end

Instance Attribute Details

#basesObject (readonly)

Returns the value of attribute bases.



9
10
11
# File 'lib/firebased/account.rb', line 9

def bases
  @bases
end

#emailObject (readonly)

Returns the value of attribute email.



9
10
11
# File 'lib/firebased/account.rb', line 9

def email
  @email
end

#passObject (readonly)

Returns the value of attribute pass.



9
10
11
# File 'lib/firebased/account.rb', line 9

def pass
  @pass
end

#tokenObject (readonly)

Returns the value of attribute token.



9
10
11
# File 'lib/firebased/account.rb', line 9

def token
  @token
end

Instance Method Details

#create_firebase(name, app_name = nil) ⇒ Firebased::Firebase

Create a new firebase

Parameters:

  • name (String)

    slug/url-friendly app name

  • app_name (String) (defaults to: nil)

    title of firebase

Returns:



35
36
37
38
39
40
41
42
# File 'lib/firebased/account.rb', line 35

def create_firebase(name, app_name = nil)
  params   = { token: @token, appName: app_name || name }
  response = Faraday.post("#{FIRE_BASE}/#{name}", params)
  response = JSON.parse(response.body)
  firebase = Firebased::Firebase.new(name, @token) if response["success"]
  @bases[name] = firebase
  return firebase
end

#delete_firebase(name) ⇒ Firebased::Firebase

Delete an existing firebase

Parameters:

  • name (String)

    slug/url-friendly app name

Returns:



60
61
62
63
64
65
66
# File 'lib/firebased/account.rb', line 60

def delete_firebase(name)
  params   = { "_method" => "DELETE", namespace: name, token: @token }
  response = Faraday.post("#{FIRE_BASE}/#{name}", params)
  response = JSON.parse(response.body)
  p response["error"]
  @bases.delete(name) unless response["error"]
end

#get_firebase(name) ⇒ Firebased::Firebase

Fetch an existing firebase

Parameters:

  • name (String)

    slug/url-friendly app name

Returns:



50
51
52
# File 'lib/firebased/account.rb', line 50

def get_firebase(name)
  @bases[name] || Firebased::Firebase.new(name, @token)
end

#login!Object

Fetches admin token if not passed on initialize



21
22
23
24
25
26
# File 'lib/firebased/account.rb', line 21

def login!
  params     = { email: email, password: pass }
  response   = Faraday.get("#{ACCOUNT_BASE}/login", params)
  attributes = JSON.parse(response.body)
  @token     = attributes["adminToken"]
end