redbooth-ruby 0.1.1 → 0.1.3
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.
- checksums.yaml +4 -4
- data/lib/redbooth-ruby.rb +2 -2
- data/lib/redbooth-ruby/file.rb +6 -2
- data/lib/redbooth-ruby/request/connection.rb +70 -28
- data/lib/redbooth-ruby/request/info.rb +2 -1
- data/lib/redbooth-ruby/version.rb +2 -2
- data/redbooth-ruby.gemspec +1 -1
- data/spec/cassettes/RedboothRuby_File/_download_to_path/downloads_a_file_to_a_path.yml +179 -0
- data/spec/redbooth-ruby/file_spec.rb +8 -0
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d6dd0b91631fad3635e4e0fc83d44f87a15760cb
|
4
|
+
data.tar.gz: a88346e81a79e57af855446b69af90d011ed0140
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ccde9979fff86dcc2c47c6f705d49c86770f16b6706f66dcc74a679dfde637cda88d077422c693e7fe232d46315542e8d1ede5729a2fd37868e6fd8e97cc674
|
7
|
+
data.tar.gz: c274f5514b38eb104dc5b6f0921d6051e6843b82b044b9a9f40e5165e13b21ce41d40083e6e62ac4702ed964aa7e0f93d03e6123b21421b071435c8157042dae
|
data/lib/redbooth-ruby.rb
CHANGED
@@ -7,7 +7,7 @@ module RedboothRuby
|
|
7
7
|
DOMAIN_BASE = nil
|
8
8
|
API_BASE_PATH = 'api'
|
9
9
|
API_VERSION = '3'
|
10
|
-
ROOT_PATH = File.dirname(__FILE__)
|
10
|
+
ROOT_PATH = ::File.dirname(__FILE__)
|
11
11
|
|
12
12
|
autoload :Base, 'redbooth-ruby/base'
|
13
13
|
autoload :Client, 'redbooth-ruby/client'
|
@@ -123,4 +123,4 @@ module RedboothRuby
|
|
123
123
|
@@configuration[:api_version] ||= '3'
|
124
124
|
@@configuration[:use_ssl] ||= true
|
125
125
|
end
|
126
|
-
end
|
126
|
+
end
|
data/lib/redbooth-ruby/file.rb
CHANGED
@@ -26,9 +26,13 @@ module RedboothRuby
|
|
26
26
|
|
27
27
|
# Returns a blop with the file data
|
28
28
|
#
|
29
|
+
# @param [String] style The style to use
|
30
|
+
# @param [String] path The path to save the file to
|
29
31
|
# @return [String] the object metadata
|
30
|
-
def download(style='original')
|
31
|
-
|
32
|
+
def download(style='original', path=nil)
|
33
|
+
options = { session: session }
|
34
|
+
options[:download_path] = path unless path.nil?
|
35
|
+
request = RedboothRuby.request(:download, nil, "files/#{id}/download/#{style}/#{name}", {}, options)
|
32
36
|
request.body
|
33
37
|
end
|
34
38
|
|
@@ -2,6 +2,7 @@ require 'net/http/post/multipart'
|
|
2
2
|
|
3
3
|
module RedboothRuby
|
4
4
|
module Request
|
5
|
+
# Connection class
|
5
6
|
class Connection
|
6
7
|
include Helpers
|
7
8
|
attr_reader :access_token, :request_data
|
@@ -28,30 +29,69 @@ module RedboothRuby
|
|
28
29
|
# amazon s3 without authentication headers
|
29
30
|
#
|
30
31
|
def download_file_with_redirect
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
32
|
+
max_redirects = access_token.options.fetch(:max_redirects, 20)
|
33
|
+
response = access_token.send(
|
34
|
+
:get,
|
35
|
+
URI.encode(api_url),
|
36
|
+
redirect_count: max_redirects + 1
|
37
|
+
)
|
38
|
+
return response unless [302, 301].include? response.status
|
39
|
+
|
40
|
+
url = response.headers['Location']
|
41
|
+
uri = URI.parse(url)
|
42
|
+
http = download_http(uri)
|
43
|
+
http.start do |inner_http|
|
44
|
+
download_file(uri, inner_http)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
# Generate a download http from a URI
|
49
|
+
#
|
50
|
+
# @param [URI] uri The URI to use
|
51
|
+
def download_http(uri)
|
52
|
+
http = Net::HTTP.new(uri.host, Net::HTTP.https_default_port)
|
53
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
54
|
+
http.use_ssl = RedboothRuby.configuration[:use_ssl]
|
55
|
+
http
|
56
|
+
end
|
57
|
+
|
58
|
+
# Download a file using different strategies
|
59
|
+
#
|
60
|
+
# @param [URI] uri The URI to use
|
61
|
+
# @param [Net::HTTP] http The http to use
|
62
|
+
# @return [Mixed] The downloaded file or the result of the download
|
63
|
+
def download_file(uri, http)
|
64
|
+
if @info.options.key?(:download_path)
|
65
|
+
download_to_path(uri, http, @info.options[:download_path])
|
66
|
+
else
|
67
|
+
http.request(Net::HTTP::Get.new(uri))
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
# Download a file to a path
|
72
|
+
#
|
73
|
+
# @param [URI] uri The URI to use
|
74
|
+
# @param [Net::HTTP] http The http to use
|
75
|
+
# @param [String] path The path to save the file to
|
76
|
+
# @return [Mixed] The result of the operation
|
77
|
+
def download_to_path(uri, http, path)
|
78
|
+
request = Net::HTTP::Get.new uri
|
79
|
+
|
80
|
+
http.request request do |response|
|
81
|
+
open path, 'w' do |io|
|
82
|
+
response.read_body do |chunk|
|
83
|
+
io.write chunk
|
42
84
|
end
|
43
|
-
|
44
|
-
response
|
85
|
+
io.write "\n"
|
45
86
|
end
|
87
|
+
end
|
46
88
|
end
|
47
89
|
|
48
90
|
def set_request_data
|
49
91
|
@request_data = []
|
50
92
|
@request_data << @info.http_method if @info
|
51
93
|
@request_data << api_url
|
52
|
-
unless use_url_params?
|
53
|
-
@request_data << { body: body_hash }
|
54
|
-
end
|
94
|
+
@request_data << { body: body_hash } unless use_url_params?
|
55
95
|
end
|
56
96
|
|
57
97
|
protected
|
@@ -62,18 +102,22 @@ module RedboothRuby
|
|
62
102
|
def multipart_request
|
63
103
|
::File.open(body_file_attrs[:local_path]) do |file|
|
64
104
|
req = Net::HTTP::Post::Multipart.new(
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
105
|
+
api_url,
|
106
|
+
body_hash.merge(
|
107
|
+
'asset' => UploadIO.new(
|
108
|
+
file,
|
109
|
+
'application/octet-stream',
|
110
|
+
body_file_attrs[:name]
|
71
111
|
)
|
112
|
+
)
|
72
113
|
)
|
73
114
|
req['Authorization'] = "Bearer #{access_token.token}"
|
74
115
|
# access_token.sign! req
|
75
116
|
if RedboothRuby.configuration[:use_ssl]
|
76
|
-
http = Net::HTTP.new(
|
117
|
+
http = Net::HTTP.new(
|
118
|
+
RedboothRuby.configuration[:api_base],
|
119
|
+
Net::HTTP.https_default_port
|
120
|
+
)
|
77
121
|
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
78
122
|
http.use_ssl = RedboothRuby.configuration[:use_ssl]
|
79
123
|
else
|
@@ -138,13 +182,11 @@ module RedboothRuby
|
|
138
182
|
def api_url
|
139
183
|
url = "#{ api_url_method}#{api_url_domain }"
|
140
184
|
url += "#{ RedboothRuby.configuration[:api_base] }"
|
141
|
-
url += "#{ api_url_path }"
|
142
|
-
url += "#{ api_url_version }"
|
185
|
+
url += "#{ api_url_path }#{ api_url_version }"
|
143
186
|
if @info
|
144
187
|
url += @info.url
|
145
|
-
if use_url_params? &&
|
146
|
-
|
147
|
-
end
|
188
|
+
url += '?' + encoded_www_body if use_url_params? &&
|
189
|
+
!body_hash.empty?
|
148
190
|
end
|
149
191
|
url
|
150
192
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module RedboothRuby
|
2
2
|
module Request
|
3
3
|
class Info
|
4
|
-
attr_accessor :http_method, :api_url, :data, :subdomain, :session, :base_path
|
4
|
+
attr_accessor :http_method, :api_url, :data, :subdomain, :session, :base_path, :options
|
5
5
|
|
6
6
|
def initialize(http_method, subdomain, api_url, data, options = {})
|
7
7
|
@http_method = http_method
|
@@ -10,6 +10,7 @@ module RedboothRuby
|
|
10
10
|
@data = data
|
11
11
|
@base_path = RedboothRuby.configuration[:api_base_path]
|
12
12
|
@session = options[:session]
|
13
|
+
@options = options
|
13
14
|
end
|
14
15
|
|
15
16
|
def url
|
@@ -1,3 +1,3 @@
|
|
1
1
|
module RedboothRuby
|
2
|
-
VERSION = '0.1.
|
3
|
-
end
|
2
|
+
VERSION = '0.1.3'
|
3
|
+
end
|
data/redbooth-ruby.gemspec
CHANGED
@@ -6,7 +6,7 @@ require 'redbooth-ruby/version'
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = 'redbooth-ruby'
|
8
8
|
s.version = RedboothRuby::VERSION
|
9
|
-
s.authors = ['Andres Bravo', 'Carlos Saura']
|
9
|
+
s.authors = ['Andres Bravo', 'Carlos Saura', 'Bruno Pedro']
|
10
10
|
s.email = ['support@redbooth.com']
|
11
11
|
s.homepage = 'https://github.com/teambox/redbooth-ruby'
|
12
12
|
s.summary = %q{API wrapper for Redbooth.}
|
@@ -0,0 +1,179 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://localhost:3000/api/3/files?per_page=1
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Faraday v0.9.1
|
12
|
+
Authorization:
|
13
|
+
- Bearer _frank_access_token_
|
14
|
+
Accept-Encoding:
|
15
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
16
|
+
Accept:
|
17
|
+
- "*/*"
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
X-Redbooth-From-Cache:
|
24
|
+
- 'off'
|
25
|
+
Paginationlinks:
|
26
|
+
- <http://localhost:3000/api/3/files?page=2&per_page=1>; rel="next", <http://localhost:3000/api/3/files?page=11&per_page=1>;
|
27
|
+
rel="last"
|
28
|
+
Paginationtotalpages:
|
29
|
+
- '11'
|
30
|
+
Paginationperpage:
|
31
|
+
- '1'
|
32
|
+
Paginationcurrentpage:
|
33
|
+
- '1'
|
34
|
+
Paginationtotalobjects:
|
35
|
+
- '11'
|
36
|
+
Content-Type:
|
37
|
+
- application/json; charset=utf-8
|
38
|
+
X-Ua-Compatible:
|
39
|
+
- IE=Edge,chrome=1
|
40
|
+
Etag:
|
41
|
+
- '"ae01415e8048e399fd81f25d26c6e310"'
|
42
|
+
Cache-Control:
|
43
|
+
- max-age=0, private, must-revalidate
|
44
|
+
X-Request-Id:
|
45
|
+
- 0bfe336727051d89857050ce15c31358
|
46
|
+
X-Runtime:
|
47
|
+
- '0.213858'
|
48
|
+
Connection:
|
49
|
+
- close
|
50
|
+
Server:
|
51
|
+
- thin 1.6.1 codename Death Proof
|
52
|
+
body:
|
53
|
+
encoding: UTF-8
|
54
|
+
string: '[{"created_at":1436345699,"updated_at":1436353739,"id":11,"name":"Security
|
55
|
+
Report <script>alert(''filename'').txt","backend":"redbooth","project_id":14,"parent_id":10,"backend_id":"8","is_dir":false,"is_downloadable":true,"is_previewable":true,"is_embeddable":false,"is_private":false,"mime_type":"text/plain","public_token":null,"pinned":false,"size":0,"user_id":8,"can_be_moved":true,"can_be_deleted":true,"type":"File"}]'
|
56
|
+
http_version:
|
57
|
+
recorded_at: Wed, 08 Jul 2015 13:14:29 GMT
|
58
|
+
- request:
|
59
|
+
method: get
|
60
|
+
uri: http://localhost:3000/api/3/files/11/download/original/Security%20Report%20%3Cscript%3Ealert('filename').txt
|
61
|
+
body:
|
62
|
+
encoding: US-ASCII
|
63
|
+
string: ''
|
64
|
+
headers:
|
65
|
+
User-Agent:
|
66
|
+
- Faraday v0.9.1
|
67
|
+
Authorization:
|
68
|
+
- Bearer _frank_access_token_
|
69
|
+
Accept-Encoding:
|
70
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
71
|
+
Accept:
|
72
|
+
- "*/*"
|
73
|
+
response:
|
74
|
+
status:
|
75
|
+
code: 200
|
76
|
+
message: OK
|
77
|
+
headers:
|
78
|
+
Cache-Control:
|
79
|
+
- private, max-age=31557600
|
80
|
+
Content-Disposition:
|
81
|
+
- attachment; filename="Security Report <script>alert('filename').txt"
|
82
|
+
Content-Transfer-Encoding:
|
83
|
+
- binary
|
84
|
+
Content-Type:
|
85
|
+
- text/plain
|
86
|
+
X-Ua-Compatible:
|
87
|
+
- IE=Edge,chrome=1
|
88
|
+
X-Request-Id:
|
89
|
+
- cd130f8e7b0b9e1e2cde9936b0fcaeb6
|
90
|
+
X-Runtime:
|
91
|
+
- '0.227045'
|
92
|
+
Connection:
|
93
|
+
- close
|
94
|
+
Server:
|
95
|
+
- thin 1.6.1 codename Death Proof
|
96
|
+
body:
|
97
|
+
encoding: ASCII-8BIT
|
98
|
+
string: !binary |-
|
99
|
+
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
|
153
|
+
kt5wJ9UoDfJdnu+5f2dA9cFkrfQGo4Bl4k/y441ozBIMWLs6/GeKum5QeCJ1
|
154
|
+
n9HGH4tfCWCNFuAbXQCvSv5xsHoBUEsHCGnP65qyAAAAKAEAAFBLAwQUAAgI
|
155
|
+
CABwPLtEAAAAAAAAAAAAAAAAEwAAAFtDb250ZW50X1R5cGVzXS54bWytk8tO
|
156
|
+
QjEQhp/Ad2i6JbTgwhjDgYWXpZqIDzC2czgNvaVTbm9vzwGMGgQTWPUy//zf
|
157
|
+
3zYdTdbOsiUmMsFXfCgGnKFXQRs/q/j79Kl/yxll8Bps8FjxDRKfjK9G001E
|
158
|
+
YqXZU8WbnOOdlKQadEAiRPSlUofkIJdlmskIag4zlNeDwY1UwWf0uZ9bDz4e
|
159
|
+
PWANC5vZ47psb4MktMTZ/VbYsioOMVqjIJe6XHr9i9LfEUTp7DTUmEi9IuDy
|
160
|
+
IKGt/A3Y9b2Um0lGI3uFlJ/BFZVcW6kTrMoF0X4yFMfdDsQNdW0U6qAWrrSI
|
161
|
+
nVHvOJfyxiKdDaOYEDQ1iNlZsTU9RW4goX7LqT32pQN89z6RYxXS/COE+cUj
|
162
|
+
lFE4MP4f/E5MshvOf/mfQb789zlk99HGn1BLBwjZpyj5KwEAAKgDAABQSwEC
|
163
|
+
FAAUAAgICABwPLtEH5pgKMwAAADuAQAAGAAAAAAAAAAAAAAAAAAAAAAAeGwv
|
164
|
+
ZHJhd2luZ3MvZHJhd2luZzEueG1sUEsBAhQAFAAICAgAcDy7RKqIj89YAQAA
|
165
|
+
FQMAABgAAAAAAAAAAAAAAAAAEgEAAHhsL3dvcmtzaGVldHMvc2hlZXQxLnht
|
166
|
+
bFBLAQIUABQACAgIAHA8u0QucoNDtAAAACoBAAAjAAAAAAAAAAAAAAAAALAC
|
167
|
+
AAB4bC93b3Jrc2hlZXRzL19yZWxzL3NoZWV0MS54bWwucmVsc1BLAQIUABQA
|
168
|
+
CAgIAHA8u0SvvYJ0dAAAAIAAAAAUAAAAAAAAAAAAAAAAALUDAAB4bC9zaGFy
|
169
|
+
ZWRTdHJpbmdzLnhtbFBLAQIUABQACAgIAHA8u0QTKIolpgEAALUDAAANAAAA
|
170
|
+
AAAAAAAAAAAAAGsEAAB4bC9zdHlsZXMueG1sUEsBAhQAFAAICAgAcDy7RE/d
|
171
|
+
OZc8AQAA2wIAAA8AAAAAAAAAAAAAAAAATAYAAHhsL3dvcmtib29rLnhtbFBL
|
172
|
+
AQIUABQACAgIAHA8u0QmD+2r2AAAADUCAAAaAAAAAAAAAAAAAAAAAMUHAAB4
|
173
|
+
bC9fcmVscy93b3JrYm9vay54bWwucmVsc1BLAQIUABQACAgIAHA8u0Rpz+ua
|
174
|
+
sgAAACgBAAALAAAAAAAAAAAAAAAAAOUIAABfcmVscy8ucmVsc1BLAQIUABQA
|
175
|
+
CAgIAHA8u0TZpyj5KwEAAKgDAAATAAAAAAAAAAAAAAAAANAJAABbQ29udGVu
|
176
|
+
dF9UeXBlc10ueG1sUEsFBgAAAAAJAAkAWQIAADwLAAAAAA==
|
177
|
+
http_version:
|
178
|
+
recorded_at: Wed, 08 Jul 2015 13:14:30 GMT
|
179
|
+
recorded_with: VCR 2.9.3
|
@@ -93,4 +93,12 @@ describe RedboothRuby::File, vcr: 'files' do
|
|
93
93
|
open("#{ File.dirname(__FILE__) }/../../temp/spec/files/test_download.txt", 'w') { |f| f.puts subject }
|
94
94
|
end
|
95
95
|
end
|
96
|
+
|
97
|
+
describe '.download_to_path' do
|
98
|
+
it 'downloads a file to a path' do
|
99
|
+
collection = client.file(:index, per_page: 1)
|
100
|
+
file = collection.all.first
|
101
|
+
file.download('original', "#{ File.dirname(__FILE__) }/../../temp/spec/files/test_download_to_path.txt")
|
102
|
+
end
|
103
|
+
end
|
96
104
|
end
|
metadata
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redbooth-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andres Bravo
|
8
8
|
- Carlos Saura
|
9
|
+
- Bruno Pedro
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date: 2015-
|
13
|
+
date: 2015-07-08 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: json
|
@@ -202,6 +203,7 @@ files:
|
|
202
203
|
- spec/cassettes/RedboothRuby_File/_create/makes_a_new_POST_request_using_the_correct_API_endpoint_to_create_a_specific_file.yml
|
203
204
|
- spec/cassettes/RedboothRuby_File/_delete/makes_a_new_DELETE_request_using_the_correct_API_endpoint_to_delete_a_specific_comment.yml
|
204
205
|
- spec/cassettes/RedboothRuby_File/_download/downloads_a_file.yml
|
206
|
+
- spec/cassettes/RedboothRuby_File/_download_to_path/downloads_a_file_to_a_path.yml
|
205
207
|
- spec/cassettes/RedboothRuby_File/_index/.yml
|
206
208
|
- spec/cassettes/RedboothRuby_File/_index/makes_a_new_GET_request_using_the_correct_API_endpoint_to_receive_comments_collection.yml
|
207
209
|
- spec/cassettes/RedboothRuby_File/_initialize/.yml
|
@@ -391,7 +393,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
391
393
|
version: '0'
|
392
394
|
requirements: []
|
393
395
|
rubyforge_project:
|
394
|
-
rubygems_version: 2.4.
|
396
|
+
rubygems_version: 2.4.3
|
395
397
|
signing_key:
|
396
398
|
specification_version: 4
|
397
399
|
summary: API wrapper for Redbooth.
|
@@ -424,6 +426,7 @@ test_files:
|
|
424
426
|
- spec/cassettes/RedboothRuby_File/_create/makes_a_new_POST_request_using_the_correct_API_endpoint_to_create_a_specific_file.yml
|
425
427
|
- spec/cassettes/RedboothRuby_File/_delete/makes_a_new_DELETE_request_using_the_correct_API_endpoint_to_delete_a_specific_comment.yml
|
426
428
|
- spec/cassettes/RedboothRuby_File/_download/downloads_a_file.yml
|
429
|
+
- spec/cassettes/RedboothRuby_File/_download_to_path/downloads_a_file_to_a_path.yml
|
427
430
|
- spec/cassettes/RedboothRuby_File/_index/.yml
|
428
431
|
- spec/cassettes/RedboothRuby_File/_index/makes_a_new_GET_request_using_the_correct_API_endpoint_to_receive_comments_collection.yml
|
429
432
|
- spec/cassettes/RedboothRuby_File/_initialize/.yml
|