Class: OAuthProvider::Backends::Sqlite3
- Inherits:
-
Abstract
- Object
- Abstract
- OAuthProvider::Backends::Sqlite3
show all
- Defined in:
- lib/oauth_provider/backends/sqlite3.rb
Instance Method Summary
collapse
Methods inherited from Abstract
#add_consumer, #add_user_access, #add_user_request, #destroy_user_access, #provider, #save_consumer
Constructor Details
#initialize(path) ⇒ Sqlite3
Returns a new instance of Sqlite3.
6
7
8
9
10
11
|
# File 'lib/oauth_provider/backends/sqlite3.rb', line 6
def initialize(path)
@db = SQLite3::Database.new(path)
@db.execute("CREATE TABLE IF NOT EXISTS consumers (name CHAR(50), shared_key CHAR(43) PRIMARY KEY, secret_key CHAR(43), callback CHAR(255))")
@db.execute("CREATE TABLE IF NOT EXISTS request_tokens (shared_key CHAR(22) PRIMARY KEY, secret_key CHAR(43), authorized INT, consumer_shared_key CHAR(43))")
@db.execute("CREATE TABLE IF NOT EXISTS access_tokens (shared_key CHAR(22) PRIMARY KEY, secret_key CHAR(43), request_shared_key CHAR(43), consumer_shared_key CHAR(43))")
end
|
Instance Method Details
#consumers ⇒ Object
30
31
32
33
34
35
36
|
# File 'lib/oauth_provider/backends/sqlite3.rb', line 30
def consumers
rtrn = []
@db.execute("SELECT name, callback, shared_key, secret_key FROM consumers") do |row|
rtrn << OAuthProvider::Consumer.new(self, @provider, row[1], OAuthProvider::Token.new(row[2], row[3]))
end
rtrn
end
|
#create_consumer(consumer) ⇒ Object
13
14
15
16
17
18
19
20
21
|
# File 'lib/oauth_provider/backends/sqlite3.rb', line 13
def create_consumer(consumer)
@db.execute("SELECT callback FROM consumers WHERE callback='#{consumer.callback}'") do
raise OAuthProvider::DuplicateCallback.new(consumer)
end
@db.execute("INSERT INTO consumers (name, shared_key, secret_key, callback) " \
"VALUES ('', '#{consumer.shared_key}', '#{consumer.secret_key}', '#{consumer.callback}')")
end
|
#create_user_access(token) ⇒ Object
62
63
64
65
|
# File 'lib/oauth_provider/backends/sqlite3.rb', line 62
def create_user_access(token)
@db.execute("INSERT INTO access_tokens (shared_key, secret_key, consumer_shared_key, request_shared_key) " \
"VALUES ('#{token.shared_key}','#{token.secret_key}','#{token.consumer.shared_key}', '#{token.request_shared_key}')")
end
|
#create_user_request(token) ⇒ Object
42
43
44
45
|
# File 'lib/oauth_provider/backends/sqlite3.rb', line 42
def create_user_request(token)
@db.execute("INSERT INTO request_tokens (shared_key, secret_key, authorized, consumer_shared_key) " \
"VALUES ('#{token.shared_key}','#{token.secret_key}',#{token.authorized? ? 1 : 0},'#{token.consumer.shared_key}')")
end
|
#destroy_consumer(consumer) ⇒ Object
38
39
40
|
# File 'lib/oauth_provider/backends/sqlite3.rb', line 38
def destroy_consumer(consumer)
@db.execute("DELETE FROM consumers WHERE shared_key='#{consumer.shared_key}' AND secret_key='#{consumer.secret_key}'")
end
|
#destroy_user_request(user_request) ⇒ Object
58
59
60
|
# File 'lib/oauth_provider/backends/sqlite3.rb', line 58
def destroy_user_request(user_request)
@db.execute("DELETE FROM request_tokens WHERE shared_key='#{user_request.shared_key}' AND secret_key='#{user_request.secret_key}'")
end
|
#find_consumer(shared_key) ⇒ Object
23
24
25
26
27
28
|
# File 'lib/oauth_provider/backends/sqlite3.rb', line 23
def find_consumer(shared_key)
@db.execute("SELECT name, callback, shared_key, secret_key FROM consumers WHERE shared_key='#{shared_key}' LIMIT 1") do |row|
return OAuthProvider::Consumer.new(self, @provider, row[1], OAuthProvider::Token.new(row[2], row[3]))
end
nil
end
|
#find_user_access(shared_key) ⇒ Object
67
68
69
70
71
72
|
# File 'lib/oauth_provider/backends/sqlite3.rb', line 67
def find_user_access(shared_key)
@db.execute("SELECT shared_key, secret_key, request_shared_key, consumer_shared_key FROM access_tokens WHERE shared_key = '#{shared_key}' LIMIT 1") do |row|
return OAuthProvider::UserAccess.new(self, find_consumer(row[3]), row[2], OAuthProvider::Token.new(row[0], row[1]))
end
nil
end
|
#find_user_request(shared_key) ⇒ Object
47
48
49
50
51
52
|
# File 'lib/oauth_provider/backends/sqlite3.rb', line 47
def find_user_request(shared_key)
@db.execute("SELECT shared_key, secret_key, authorized, consumer_shared_key FROM request_tokens WHERE shared_key = '#{shared_key}' LIMIT 1") do |row|
return OAuthProvider::UserRequest.new(self, self.find_consumer(row[3]), row[2].to_i!=0, OAuthProvider::Token.new(row[0], row[1]))
end
nil
end
|
#save_user_request(user_request) ⇒ Object
54
55
56
|
# File 'lib/oauth_provider/backends/sqlite3.rb', line 54
def save_user_request(user_request)
@db.execute("UPDATE request_tokens SET authorized=#{user_request.authorized? ? '1' : '0'} WHERE shared_key='#{user_request.shared_key}' AND secret_key='#{user_request.secret_key}'")
end
|