Class: SkipEmbedded::RpService::Client
- Inherits:
-
Object
- Object
- SkipEmbedded::RpService::Client
- Defined in:
- lib/skip_embedded/rp_service/client.rb
Defined Under Namespace
Classes: Mapper
Constant Summary collapse
- @@connection_class =
SkipEmbedded::RpService::HttpConnection
Instance Attribute Summary collapse
-
#backend ⇒ Object
Returns the value of attribute backend.
-
#connection ⇒ Object
Returns the value of attribute connection.
-
#key ⇒ Object
readonly
Returns the value of attribute key.
-
#mapper ⇒ Object
readonly
Returns the value of attribute mapper.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#secret ⇒ Object
readonly
Returns the value of attribute secret.
-
#url ⇒ Object
readonly
Returns the value of attribute url.
Class Method Summary collapse
- .connection_class ⇒ Object
- .connection_class=(klass) ⇒ Object
- .register!(name, service, params, conn = nil) ⇒ Object
Instance Method Summary collapse
- #add_user(*values) ⇒ Object
- #group_sync_url ⇒ Object
- #group_url(gid) ⇒ Object
- #groups_url ⇒ Object
-
#initialize(name, url, params) ⇒ Client
constructor
A new instance of Client.
- #oauth(token, secret) ⇒ Object
- #sync_groups(groups) ⇒ Object
- #sync_users(users) ⇒ Object
- #user_sync_url ⇒ Object
- #user_url ⇒ Object
Constructor Details
#initialize(name, url, params) ⇒ Client
Returns a new instance of Client.
56 57 58 59 60 61 62 63 64 65 |
# File 'lib/skip_embedded/rp_service/client.rb', line 56 def initialize(name, url, params) params = params.with_indifferent_access @key = params[:consumer_key] || params[:key] @secret = params[:consumer_secret] || params[:secret] raise ArgumentError.new("key and secret required in #{params.inspect}") unless @key && @secret @name = name @url = url @mapper = Mapper.new(url) end |
Instance Attribute Details
#backend ⇒ Object
Returns the value of attribute backend.
10 11 12 |
# File 'lib/skip_embedded/rp_service/client.rb', line 10 def backend @backend end |
#connection ⇒ Object
Returns the value of attribute connection.
9 10 11 |
# File 'lib/skip_embedded/rp_service/client.rb', line 9 def connection @connection end |
#key ⇒ Object (readonly)
Returns the value of attribute key.
47 48 49 |
# File 'lib/skip_embedded/rp_service/client.rb', line 47 def key @key end |
#mapper ⇒ Object (readonly)
Returns the value of attribute mapper.
47 48 49 |
# File 'lib/skip_embedded/rp_service/client.rb', line 47 def mapper @mapper end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
47 48 49 |
# File 'lib/skip_embedded/rp_service/client.rb', line 47 def name @name end |
#secret ⇒ Object (readonly)
Returns the value of attribute secret.
47 48 49 |
# File 'lib/skip_embedded/rp_service/client.rb', line 47 def secret @secret end |
#url ⇒ Object (readonly)
Returns the value of attribute url.
47 48 49 |
# File 'lib/skip_embedded/rp_service/client.rb', line 47 def url @url end |
Class Method Details
.connection_class ⇒ Object
17 18 19 |
# File 'lib/skip_embedded/rp_service/client.rb', line 17 def self.connection_class @@connection_class end |
.connection_class=(klass) ⇒ Object
14 15 16 |
# File 'lib/skip_embedded/rp_service/client.rb', line 14 def self.connection_class=(klass) @@connection_class = klass end |
.register!(name, service, params, conn = nil) ⇒ Object
48 49 50 51 52 53 54 |
# File 'lib/skip_embedded/rp_service/client.rb', line 48 def self.register!(name, service, params, conn = nil) mapper = Mapper.new(service) conn ||= connection_class.new response = conn.post_via_webservice_util(mapper.register_endpoint.to_s, "skip"=>params)["skip"] returning(new(name, service, response)){|c| c.connection = conn } end |
Instance Method Details
#add_user(*values) ⇒ Object
91 92 93 94 95 96 |
# File 'lib/skip_embedded/rp_service/client.rb', line 91 def add_user(*values) data = Util.user_data(*values) response = connection.post_via_webservice_util(user_url, "user" => data)["user"] backend.add_access_token(values.first, response["access_token"], response["access_secret"]) end |
#group_sync_url ⇒ Object
83 84 85 |
# File 'lib/skip_embedded/rp_service/client.rb', line 83 def group_sync_url @mapper.groups_sync_endpoint.to_s end |
#group_url(gid) ⇒ Object
71 72 73 |
# File 'lib/skip_embedded/rp_service/client.rb', line 71 def group_url(gid) "#{@mapper.groups_endpoint}/#{gid}" end |
#groups_url ⇒ Object
67 68 69 |
# File 'lib/skip_embedded/rp_service/client.rb', line 67 def groups_url @mapper.groups_endpoint.to_s end |
#oauth(token, secret) ⇒ Object
87 88 89 |
# File 'lib/skip_embedded/rp_service/client.rb', line 87 def oauth(token, secret) OauthProxy.new(self, token, secret) end |
#sync_groups(groups) ⇒ Object
107 108 109 110 111 112 113 114 |
# File 'lib/skip_embedded/rp_service/client.rb', line 107 def sync_groups(groups) data = groups.map{|args| Util.group_data(*args) } response = connection.post_via_webservice_util(group_sync_url, "groups" => data) response["groups"].each do |created| backend.update_group(created["gid"], created) end end |
#sync_users(users) ⇒ Object
98 99 100 101 102 103 104 105 |
# File 'lib/skip_embedded/rp_service/client.rb', line 98 def sync_users(users) data = users.map{|values| Util.user_data(*values) } response = connection.post_via_webservice_util(user_sync_url, "users"=> data)["users"] response.each do |created| backend.add_access_token(created["identity_url"], created["access_token"], created["access_secret"]) end end |
#user_sync_url ⇒ Object
79 80 81 |
# File 'lib/skip_embedded/rp_service/client.rb', line 79 def user_sync_url @mapper.users_sync_endpoint.to_s end |
#user_url ⇒ Object
75 76 77 |
# File 'lib/skip_embedded/rp_service/client.rb', line 75 def user_url @mapper.users_endpoint.to_s end |