Class: App
- Inherits:
-
Object
show all
- Includes:
- Utils
- Defined in:
- lib/sacrifice/app.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Utils
#bad_request_message, #handle_bad_request
Constructor Details
#initialize(attrs) ⇒ App
Returns a new instance of App.
10
11
12
13
|
# File 'lib/sacrifice/app.rb', line 10
def initialize(attrs)
@name, @id, @secret = attrs[:name].to_s, attrs[:id].to_s, attrs[:secret].to_s
validate!
end
|
Instance Attribute Details
#id ⇒ Object
Returns the value of attribute id.
8
9
10
|
# File 'lib/sacrifice/app.rb', line 8
def id
@id
end
|
#name ⇒ Object
Returns the value of attribute name.
8
9
10
|
# File 'lib/sacrifice/app.rb', line 8
def name
@name
end
|
#secret ⇒ Object
Returns the value of attribute secret.
8
9
10
|
# File 'lib/sacrifice/app.rb', line 8
def secret
@secret
end
|
Class Method Details
.all ⇒ Object
57
58
59
60
61
62
63
|
# File 'lib/sacrifice/app.rb', line 57
def self.all
if DB[:apps]
DB[:apps].map { |attrs| new(attrs) }
else
[]
end
end
|
.create!(attrs) ⇒ Object
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/sacrifice/app.rb', line 19
def self.create!(attrs)
new_app = new(attrs)
if all.find { |app| app.name == new_app.name }
raise ArgumentError, "App names must be unique, and there is already an app named \"#{new_app.name}\"."
end
DB.update do |data|
data[:apps] ||= []
data[:apps] << new_app.attrs
end
end
|
.find_by_name(name) ⇒ Object
65
66
67
|
# File 'lib/sacrifice/app.rb', line 65
def self.find_by_name(name)
all.find { |a| a.name == name }
end
|
Instance Method Details
#access_token ⇒ Object
69
70
71
|
# File 'lib/sacrifice/app.rb', line 69
def access_token
@access_token ||= AccessToken.get(id, secret)
end
|
#attrs ⇒ Object
15
16
17
|
# File 'lib/sacrifice/app.rb', line 15
def attrs
{name: name, id: id, secret: secret}
end
|
#create_user(options = {}) ⇒ Object
42
43
44
45
46
47
|
# File 'lib/sacrifice/app.rb', line 42
def create_user(options = {})
handle_bad_request do
user_data = RestClient.post(users_url, {access_token: access_token}.merge(options))
User.new(JSON.parse(user_data))
end
end
|
#find_user(user_id) ⇒ Object
73
74
75
76
77
|
# File 'lib/sacrifice/app.rb', line 73
def find_user(user_id)
users.find { |user|
user.id.to_s == user_id.to_s
}
end
|
#rm_user(uid) ⇒ Object
49
50
51
52
53
54
|
# File 'lib/sacrifice/app.rb', line 49
def rm_user(uid)
handle_bad_request do
url = rm_user_url(uid, access_token)
RestClient.delete(url)
end
end
|
#users ⇒ Object
32
33
34
35
36
37
38
39
40
|
# File 'lib/sacrifice/app.rb', line 32
def users
handle_bad_request do
users_data = RestClient.get(users_url, params: {access_token: access_token})
JSON.parse(users_data)["data"].map do |user_data|
User.new(user_data)
end
end
end
|