adobeshare 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +4 -0
- data/README.txt +1 -1
- data/examples/sample.rb +0 -0
- data/lib/adobeshare/client.rb +55 -54
- data/lib/adobeshare/node.rb +3 -3
- data/lib/adobeshare/version.rb +2 -2
- metadata +53 -46
data/History.txt
CHANGED
data/README.txt
CHANGED
@@ -19,7 +19,7 @@ a Ruby library for "Adobe Share" using REST Web Service APIs.
|
|
19
19
|
client.apikey = Your API Key
|
20
20
|
client.secret = Your Shared Secret
|
21
21
|
client.username = Your Adobe ID
|
22
|
-
client.password = Your Adobe ID
|
22
|
+
client.password = Your Adobe ID password
|
23
23
|
|
24
24
|
=== Login
|
25
25
|
|
data/examples/sample.rb
CHANGED
File without changes
|
data/lib/adobeshare/client.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
#
|
2
2
|
# Adobe Share API for Ruby
|
3
3
|
#
|
4
|
-
# Copyright (c) KATO Hideyuki, 2007. All rights reserved.
|
4
|
+
# Copyright (c) KATO Hideyuki, 2007-2008. All rights reserved.
|
5
5
|
#
|
6
6
|
require 'rexml/document'
|
7
7
|
|
8
8
|
include REXML
|
9
9
|
|
10
10
|
module AdobeShare
|
11
|
-
DEFAULT_ENDPOINT = "https://api.share.
|
11
|
+
DEFAULT_ENDPOINT = "https://api.share.acrobat.com/webservices/api/v1/" # :nodoc:
|
12
12
|
ENDPOINT_AUTH = DEFAULT_ENDPOINT + "auth/" # :nodoc:
|
13
13
|
ENDPOINT_SESSIONS = DEFAULT_ENDPOINT + "sessions/" # :nodoc:
|
14
14
|
ENDPOINT_DC = DEFAULT_ENDPOINT + "dc/" # :nodoc:
|
@@ -20,7 +20,7 @@ module AdobeShare
|
|
20
20
|
# User-Agent
|
21
21
|
UA = "AdobeShare::Client-#{VERSION::STRING}" # :nodoc:
|
22
22
|
|
23
|
-
# User's API Key
|
23
|
+
# User's API Key
|
24
24
|
attr_accessor :apikey
|
25
25
|
# User's session shared secret
|
26
26
|
attr_accessor :secret
|
@@ -34,14 +34,14 @@ module AdobeShare
|
|
34
34
|
attr_reader :sessionid
|
35
35
|
|
36
36
|
#
|
37
|
-
def initialize
|
37
|
+
def initialize(proxy=nil)
|
38
38
|
@client = HTTPClient.new(proxy, UA)
|
39
39
|
end
|
40
40
|
|
41
41
|
# Login to use Adobe Share service
|
42
42
|
def login
|
43
43
|
authtoken = get_authtoken
|
44
|
-
start_sessions
|
44
|
+
start_sessions(authtoken)
|
45
45
|
end
|
46
46
|
|
47
47
|
# Logout from the servce
|
@@ -57,28 +57,29 @@ module AdobeShare
|
|
57
57
|
uri = ENDPOINT_DC
|
58
58
|
end
|
59
59
|
res = http_client_request("GET", uri)
|
60
|
-
node = Node.new
|
61
|
-
node.to_hash
|
60
|
+
node = Node.new(res)
|
61
|
+
return node.to_hash
|
62
62
|
end
|
63
63
|
|
64
64
|
# Get the source of a document
|
65
|
-
def get_source
|
66
|
-
get_node_content
|
65
|
+
def get_source(nodeid)
|
66
|
+
get_node_content(nodeid, RENDITION_SOURCE)
|
67
67
|
end
|
68
68
|
|
69
69
|
# Get the thumbnail of a document
|
70
|
-
def get_thumbnail
|
71
|
-
get_node_content
|
70
|
+
def get_thumbnail(nodeid)
|
71
|
+
get_node_content(nodeid, RENDITION_THUMBNAIL)
|
72
72
|
end
|
73
73
|
|
74
74
|
# Get the specified rendition of a document
|
75
|
-
def get_node_content
|
75
|
+
def get_node_content(nodeid, rendition)
|
76
76
|
uri = ENDPOINT_DC + nodeid + "/" + rendition + "/"
|
77
77
|
res = http_client_request("GET", uri)
|
78
|
+
return res
|
78
79
|
end
|
79
80
|
|
80
81
|
# Delete a node
|
81
|
-
def delete_node
|
82
|
+
def delete_node(nodeid)
|
82
83
|
uri = ENDPOINT_DC + nodeid + "/"
|
83
84
|
res = http_client_request("DELETE", uri)
|
84
85
|
end
|
@@ -88,11 +89,11 @@ module AdobeShare
|
|
88
89
|
uri = ENDPOINT_DC + nodeid + "/"
|
89
90
|
|
90
91
|
# request xml
|
91
|
-
req_xml = Element.new
|
92
|
-
file = req_xml.add_element
|
93
|
-
file.add_element
|
94
|
-
file.add_element
|
95
|
-
file.add_element
|
92
|
+
req_xml = Element.new("request")
|
93
|
+
file = req_xml.add_element("file")
|
94
|
+
file.add_element("name")
|
95
|
+
file.add_element("description")
|
96
|
+
file.add_element("renditions")
|
96
97
|
file.elements["name"].text = filename
|
97
98
|
file.elements["description"].text = description
|
98
99
|
file.elements["renditions"].text = renditions
|
@@ -143,33 +144,33 @@ module AdobeShare
|
|
143
144
|
else
|
144
145
|
uri = ENDPOINT_DC
|
145
146
|
end
|
146
|
-
req = Element.new
|
147
|
-
folder = req.add_element
|
148
|
-
folder.add_element
|
149
|
-
folder.add_element
|
147
|
+
req = Element.new("request")
|
148
|
+
folder = req.add_element("folder")
|
149
|
+
folder.add_element("name")
|
150
|
+
folder.add_element("description")
|
150
151
|
folder.elements["name"].text = name
|
151
152
|
folder.elements["description"].text = description
|
152
153
|
res = http_client_request("POST", uri, req)
|
153
|
-
doc = Document.new
|
154
|
+
doc = Document.new(res)
|
154
155
|
end
|
155
156
|
|
156
157
|
# Share a file
|
157
158
|
def share_file(nodeid, users, message, level)
|
158
159
|
uri = ENDPOINT_DC + nodeid + "/share/"
|
159
|
-
req = Element.new
|
160
|
-
share = req.add_element
|
160
|
+
req = Element.new("request")
|
161
|
+
share = req.add_element("share")
|
161
162
|
users = [""] unless users
|
162
163
|
users.each{|e|
|
163
|
-
user = Element.new
|
164
|
+
user = Element.new("user")
|
164
165
|
user.text = e
|
165
|
-
share.add_element
|
166
|
+
share.add_element(user)
|
166
167
|
}
|
167
|
-
req.add_element
|
168
|
-
req.add_element
|
168
|
+
req.add_element("message")
|
169
|
+
req.add_element("level")
|
169
170
|
req.elements["message"].text = message
|
170
171
|
req.elements["level"].text = level
|
171
172
|
res = http_client_request("PUT", uri, req)
|
172
|
-
doc = Document.new
|
173
|
+
doc = Document.new(res)
|
173
174
|
end
|
174
175
|
|
175
176
|
# Unshare a file
|
@@ -180,26 +181,26 @@ module AdobeShare
|
|
180
181
|
# Update a share file
|
181
182
|
def update_share(nodeid, users_to_add, users_to_remove, message)
|
182
183
|
uri = ENDPOINT_DC + nodeid + "/share/"
|
183
|
-
req = Element.new
|
184
|
-
share = req.add_element
|
184
|
+
req = Element.new("request")
|
185
|
+
share = req.add_element("share")
|
185
186
|
users_to_add = [""] unless users_to_add
|
186
187
|
users_to_add.each{|e|
|
187
|
-
user = Element.new
|
188
|
+
user = Element.new("user")
|
188
189
|
user.text = e
|
189
|
-
share.add_element
|
190
|
+
share.add_element(user)
|
190
191
|
}
|
191
|
-
unshare = req.add_element
|
192
|
+
unshare = req.add_element("unshare")
|
192
193
|
users_to_remove = [""] unless users_to_remove
|
193
194
|
users_to_remove.each{|e|
|
194
|
-
user = Element.new
|
195
|
+
user = Element.new("user")
|
195
196
|
user.text = e
|
196
|
-
unshare.add_element
|
197
|
+
unshare.add_element(user)
|
197
198
|
}
|
198
|
-
req.add_element
|
199
|
-
req.add_element
|
199
|
+
req.add_element("message")
|
200
|
+
req.add_element("level")
|
200
201
|
req.elements["message"].text = message
|
201
202
|
res = http_client_request("POST", uri, req)
|
202
|
-
doc = Document.new
|
203
|
+
doc = Document.new(res)
|
203
204
|
end
|
204
205
|
|
205
206
|
private
|
@@ -208,25 +209,25 @@ module AdobeShare
|
|
208
209
|
def get_authtoken
|
209
210
|
raise ParameterError unless @username && @password
|
210
211
|
uri = ENDPOINT_AUTH
|
211
|
-
req = Element.new
|
212
|
-
req.add_element
|
213
|
-
req.add_element
|
212
|
+
req = Element.new("request")
|
213
|
+
req.add_element("username")
|
214
|
+
req.add_element("password")
|
214
215
|
req.elements["username"].text = username
|
215
216
|
req.elements["password"].text = password
|
216
217
|
res = http_client_request("POST", uri, req)
|
217
|
-
doc = Document.new
|
218
|
+
doc = Document.new(res)
|
218
219
|
authtoken = doc.elements['/response/authtoken/'].text
|
219
|
-
authtoken
|
220
|
+
return authtoken
|
220
221
|
end
|
221
222
|
|
222
223
|
# Starting a new session
|
223
|
-
def start_sessions
|
224
|
+
def start_sessions(authtoken)
|
224
225
|
uri = ENDPOINT_SESSIONS
|
225
|
-
req = Element.new
|
226
|
-
req.add_element
|
226
|
+
req = Element.new("request")
|
227
|
+
req.add_element("authtoken")
|
227
228
|
req.elements["authtoken"].text = authtoken
|
228
229
|
res = http_client_request("POST", uri, req)
|
229
|
-
doc = Document.new
|
230
|
+
doc = Document.new(res)
|
230
231
|
@sessionid = doc.elements['/response/sessionid/'].text
|
231
232
|
@secret = doc.elements['/response/secret'].text
|
232
233
|
@name = doc.elements['/response/name'].text
|
@@ -252,14 +253,14 @@ module AdobeShare
|
|
252
253
|
auth_string << "sessionid=\"#{@sessionid}\"," if @sessionid
|
253
254
|
auth_string << "apikey=\"#{@apikey}\",data=\"#{data}\",sig=\"#{sig}\""
|
254
255
|
headers["Authorization"] = auth_string
|
255
|
-
headers
|
256
|
+
return headers
|
256
257
|
end
|
257
258
|
|
258
259
|
# Performs a generic HTTP request.
|
259
260
|
def http_client_request(method, uri_s, request=nil, header_add={})
|
260
|
-
uri = URI.parse
|
261
|
-
headers = make_headers
|
262
|
-
headers = headers.merge
|
261
|
+
uri = URI.parse(uri_s)
|
262
|
+
headers = make_headers(method, uri)
|
263
|
+
headers = headers.merge(header_add)
|
263
264
|
case method
|
264
265
|
when "GET"
|
265
266
|
res = @client.get(uri, nil, headers)
|
@@ -281,7 +282,7 @@ module AdobeShare
|
|
281
282
|
body = res.body.content
|
282
283
|
raise RequestError, "#{status_code} #{reason_phrase} (#{body})"
|
283
284
|
end
|
284
|
-
body
|
285
|
+
return body
|
285
286
|
end
|
286
287
|
end
|
287
288
|
|
data/lib/adobeshare/node.rb
CHANGED
@@ -23,7 +23,7 @@ module AdobeShare
|
|
23
23
|
# Node Object Utility
|
24
24
|
#
|
25
25
|
class Node
|
26
|
-
def initialize
|
26
|
+
def initialize(node_xml)
|
27
27
|
@xml = node_xml
|
28
28
|
end
|
29
29
|
|
@@ -33,7 +33,7 @@ module AdobeShare
|
|
33
33
|
# XXX
|
34
34
|
# I Think it's not cool.
|
35
35
|
# Maybe there is some good way to exchange from xml to hash...?
|
36
|
-
doc = Document.new
|
36
|
+
doc = Document.new(@xml)
|
37
37
|
node = Hash.new
|
38
38
|
doc.elements["/response/node"].attributes.each{|k, v|
|
39
39
|
node[k.to_sym] = v
|
@@ -48,7 +48,7 @@ module AdobeShare
|
|
48
48
|
node[:children] << child
|
49
49
|
}
|
50
50
|
end
|
51
|
-
node
|
51
|
+
return node
|
52
52
|
end
|
53
53
|
end
|
54
54
|
end
|
data/lib/adobeshare/version.rb
CHANGED
metadata
CHANGED
@@ -1,33 +1,37 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.4
|
3
|
-
specification_version: 1
|
4
2
|
name: adobeshare
|
5
3
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.0.
|
7
|
-
date: 2007-10-13 00:00:00 +09:00
|
8
|
-
summary: Adobe Share API for Ruby
|
9
|
-
require_paths:
|
10
|
-
- lib
|
11
|
-
email: hideyuki@kato.jp
|
12
|
-
homepage: http://adobeshare.rubyforge.org
|
13
|
-
rubyforge_project: adobeshare
|
14
|
-
description: Adobe Share API for Ruby
|
15
|
-
autorequire:
|
16
|
-
default_executable:
|
17
|
-
bindir: bin
|
18
|
-
has_rdoc: true
|
19
|
-
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.0.0
|
24
|
-
version:
|
4
|
+
version: 0.0.4
|
25
5
|
platform: ruby
|
26
|
-
signing_key:
|
27
|
-
cert_chain:
|
28
|
-
post_install_message:
|
29
6
|
authors:
|
30
7
|
- KATO Hideyuki
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-04-06 00:00:00 +09:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: httpclient
|
17
|
+
version_requirement:
|
18
|
+
version_requirements: !ruby/object:Gem::Requirement
|
19
|
+
requirements:
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 2.1.2
|
23
|
+
version:
|
24
|
+
description: Adobe Share API for Ruby
|
25
|
+
email: hideyuki@kato.jp
|
26
|
+
executables: []
|
27
|
+
|
28
|
+
extensions: []
|
29
|
+
|
30
|
+
extra_rdoc_files:
|
31
|
+
- History.txt
|
32
|
+
- License.txt
|
33
|
+
- Manifest.txt
|
34
|
+
- README.txt
|
31
35
|
files:
|
32
36
|
- History.txt
|
33
37
|
- License.txt
|
@@ -42,30 +46,33 @@ files:
|
|
42
46
|
- examples/sample.rb
|
43
47
|
- examples/config.yaml.sample
|
44
48
|
- setup.rb
|
45
|
-
|
46
|
-
|
47
|
-
|
49
|
+
has_rdoc: true
|
50
|
+
homepage: http://adobeshare.rubyforge.org
|
51
|
+
post_install_message:
|
48
52
|
rdoc_options:
|
49
53
|
- --main
|
50
54
|
- README.txt
|
51
|
-
|
52
|
-
-
|
53
|
-
|
54
|
-
|
55
|
-
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
55
|
+
require_paths:
|
56
|
+
- lib
|
57
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: "0"
|
62
|
+
version:
|
63
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: "0"
|
68
|
+
version:
|
60
69
|
requirements: []
|
61
70
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
version: 2.1.2
|
71
|
-
version:
|
71
|
+
rubyforge_project: adobeshare
|
72
|
+
rubygems_version: 1.1.0
|
73
|
+
signing_key:
|
74
|
+
specification_version: 2
|
75
|
+
summary: Adobe Share API for Ruby
|
76
|
+
test_files:
|
77
|
+
- test/test_adobeshare.rb
|
78
|
+
- test/test_helper.rb
|