Class: OAuthProvider::Backends::Sequel

Inherits:
Object
  • Object
show all
Defined in:
lib/oauth_provider/backends/sequel.rb

Instance Method Summary collapse

Constructor Details

#initialize(uri) ⇒ Sequel

Returns a new instance of Sequel.



9
10
11
# File 'lib/oauth_provider/backends/sequel.rb', line 9

def initialize(uri)
  @db = Sequel.connect(uri)
end

Instance Method Details

#authorize_request_token(token) ⇒ Object



39
40
41
# File 'lib/oauth_provider/backends/sequel.rb', line 39

def authorize_request_token(token)
  @db.execute("UPDATE request_tokens SET authorized=1 WHERE shared='#{token.shared}'")
end

#fetch_access_token(shared, consumer_shared) ⇒ Object



48
49
50
51
52
53
54
55
# File 'lib/oauth_provider/backends/sequel.rb', line 48

def fetch_access_token(shared, consumer_shared)
  consumer_shared = "AND consumer_shared='#{consumer_shared}'" if consumer_shared
  @db.execute("SELECT shared, secret, request_shared, consumer_shared FROM access_tokens WHERE shared = '#{shared}' #{consumer_shared} LIMIT 1") do |row|
    consumer = fetch_consumer(row[3])
    return AccessToken.new(consumer, row[2], row[0], row[1])
  end
  nil
end

#fetch_consumer(shared) ⇒ Object



18
19
20
21
22
23
# File 'lib/oauth_provider/backends/sequel.rb', line 18

def fetch_consumer(shared)
  @db.execute("SELECT name, shared, secret, callback FROM consumers WHERE shared = '#{shared}' LIMIT 1") do |row|
    return Consumer.new(self, row[0], row[1], row[2], row[3])
  end
  nil
end

#fetch_request_token(shared, consumer_shared) ⇒ Object



30
31
32
33
34
35
36
37
# File 'lib/oauth_provider/backends/sequel.rb', line 30

def fetch_request_token(shared, consumer_shared)
  consumer_shared = "AND consumer_shared='#{consumer_shared}'" if consumer_shared
  @db.execute("SELECT shared, secret, authorized, consumer_shared FROM request_tokens WHERE shared = '#{shared}' #{consumer_shared} LIMIT 1") do |row|
    consumer = fetch_consumer(row[3])
    return RequestToken.new(consumer, row[2], row[0], row[1])
  end
  nil
end

#save_access_token(token) ⇒ Object



43
44
45
46
# File 'lib/oauth_provider/backends/sequel.rb', line 43

def save_access_token(token)
  @db.execute("INSERT INTO access_tokens (shared, secret, consumer_shared, request_shared) " \
              "VALUES ('#{token.shared}','#{token.secret}','#{token.consumer_shared}', '#{token.request_shared}')")
end

#save_consumer(consumer) ⇒ Object



13
14
15
16
# File 'lib/oauth_provider/backends/sequel.rb', line 13

def save_consumer(consumer)
  @db.execute("INSERT INTO consumers (name, shared, secret, callback) " \
              "VALUES ('#{consumer.name}', '#{consumer.shared}', '#{consumer.secret}', '#{consumer.callback}')")
end

#save_request_token(token) ⇒ Object



25
26
27
28
# File 'lib/oauth_provider/backends/sequel.rb', line 25

def save_request_token(token)
  @db.execute("INSERT INTO request_tokens (shared, secret, authorized, consumer_shared) " \
              "VALUES ('#{token.shared}','#{token.secret}',#{token.authorized ? 1 : 0},'#{token.consumer_shared}')")
end