adobeshare 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|