Class: OAuthProvider::Backends::DataMapper

Inherits:
Abstract
  • Object
show all
Defined in:
lib/oauth_provider/backends/data_mapper.rb,
lib/oauth_provider/backends/data_mapper/consumer.rb,
lib/oauth_provider/backends/data_mapper/user_access.rb,
lib/oauth_provider/backends/data_mapper/user_request.rb

Defined Under Namespace

Classes: Consumer, UserAccess, UserRequest

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(repository = :default) ⇒ DataMapper

Returns a new instance of DataMapper.



7
8
9
# File 'lib/oauth_provider/backends/data_mapper.rb', line 7

def initialize(repository = :default)
  @repository = repository
end

Instance Method Details

#consumersObject



11
12
13
14
15
16
17
# File 'lib/oauth_provider/backends/data_mapper.rb', line 11

def consumers
  with_repository do
    Consumer.all.map do |c|
      c.to_oauth(self)
    end
  end
end

#create_consumer(consumer) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/oauth_provider/backends/data_mapper.rb', line 19

def create_consumer(consumer)
  with_repository do
    raise DuplicateCallback.new(consumer) if Consumer.first(:callback => consumer.callback)
    model = Consumer.new(:callback => consumer.callback,
                         :shared_key => consumer.shared_key,
                         :secret_key => consumer.secret_key)
    model.save || raise("Failed to create Consumer: #{model.inspect}, #{model.errors.inspect}")
  end
end

#create_user_access(user_access) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
# File 'lib/oauth_provider/backends/data_mapper.rb', line 66

def create_user_access(user_access)
  with_repository do
    if consumer = consumer_for(user_access.consumer.shared_key)
      u = consumer.user_accesses.create(:request_shared_key => user_access.request_shared_key,
                                        :shared_key => user_access.shared_key,
                                        :secret_key => user_access.secret_key)
    else
      raise ConsumerNotFound.new(user_access.consumer.shared_key)
    end
  end
end

#create_user_request(user_request) ⇒ Object



39
40
41
42
43
44
45
46
47
# File 'lib/oauth_provider/backends/data_mapper.rb', line 39

def create_user_request(user_request)
  with_repository do
    if consumer = consumer_for(user_request.consumer.shared_key)
      consumer.user_requests.create(:shared_key => user_request.shared_key,
                                    :secret_key => user_request.secret_key,
                                    :authorized => user_request.authorized?)
    end
  end
end

#destroy_consumer(consumer) ⇒ Object



34
35
36
37
# File 'lib/oauth_provider/backends/data_mapper.rb', line 34

def destroy_consumer(consumer)
  consumer = consumer_for(consumer.shared_key)
  consumer && consumer.destroy
end

#destroy_user_request(user_request) ⇒ Object



61
62
63
64
# File 'lib/oauth_provider/backends/data_mapper.rb', line 61

def destroy_user_request(user_request)
  user_request = user_request_for(user_request.shared_key)
  user_request && user_request.destroy
end

#find_consumer(shared_key) ⇒ Object



29
30
31
32
# File 'lib/oauth_provider/backends/data_mapper.rb', line 29

def find_consumer(shared_key)
  consumer = consumer_for(shared_key)
  consumer && consumer.to_oauth(self)
end

#find_user_access(shared_key) ⇒ Object



78
79
80
81
82
83
# File 'lib/oauth_provider/backends/data_mapper.rb', line 78

def find_user_access(shared_key)
  with_repository do
    user_access = UserAccess.first(:shared_key => shared_key)
    user_access && user_access.to_oauth(self)
  end
end

#find_user_request(shared_key) ⇒ Object



49
50
51
52
# File 'lib/oauth_provider/backends/data_mapper.rb', line 49

def find_user_request(shared_key)
  user_request = user_request_for(shared_key)
  user_request && user_request.to_oauth(self)
end

#save_user_request(user_request) ⇒ Object



54
55
56
57
58
59
# File 'lib/oauth_provider/backends/data_mapper.rb', line 54

def save_user_request(user_request)
  if model = user_request_for(user_request.shared_key)
    model.authorized = user_request.authorized?
    model.save || raise("Failed to save UserRequest: #{user_request.shared_key}, #{model.errors.inspect}")
  end
end