Class: SkipEmbedded::RpService::Client

Inherits:
Object
  • Object
show all
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

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, url, params) ⇒ Client

Returns a new instance of Client.

Raises:

  • (ArgumentError)


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

#backendObject

Returns the value of attribute backend.



10
11
12
# File 'lib/skip_embedded/rp_service/client.rb', line 10

def backend
  @backend
end

#connectionObject

Returns the value of attribute connection.



9
10
11
# File 'lib/skip_embedded/rp_service/client.rb', line 9

def connection
  @connection
end

#keyObject (readonly)

Returns the value of attribute key.



47
48
49
# File 'lib/skip_embedded/rp_service/client.rb', line 47

def key
  @key
end

#mapperObject (readonly)

Returns the value of attribute mapper.



47
48
49
# File 'lib/skip_embedded/rp_service/client.rb', line 47

def mapper
  @mapper
end

#nameObject (readonly)

Returns the value of attribute name.



47
48
49
# File 'lib/skip_embedded/rp_service/client.rb', line 47

def name
  @name
end

#secretObject (readonly)

Returns the value of attribute secret.



47
48
49
# File 'lib/skip_embedded/rp_service/client.rb', line 47

def secret
  @secret
end

#urlObject (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_classObject



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_urlObject



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_urlObject



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_urlObject



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_urlObject



75
76
77
# File 'lib/skip_embedded/rp_service/client.rb', line 75

def user_url
  @mapper.users_endpoint.to_s
end