cloudapp 2.0.0.beta.3 → 2.0.0.beta.4
Sign up to get free protection for your applications and to get access to all the features.
- data/cloudapp.gemspec +3 -16
- data/lib/cloudapp/drop.rb +9 -4
- data/lib/cloudapp/drop_collection.rb +18 -3
- data/lib/cloudapp/service.rb +31 -9
- data/lib/cloudapp.rb +1 -3
- data/spec/cassettes/account_token.yml +88 -0
- data/spec/cassettes/create_bookmark.yml +75 -198
- data/spec/cassettes/create_bookmark_with_name.yml +76 -209
- data/spec/cassettes/create_bookmark_with_privacy.yml +76 -220
- data/spec/cassettes/list_drops.yml +49 -101
- data/spec/cassettes/list_drops_with_bad_token.yml +25 -37
- data/spec/cassettes/list_drops_with_filter.yml +73 -153
- data/spec/cassettes/list_drops_with_limit.yml +73 -155
- data/spec/cassettes/purge_drops.yml +259 -896
- data/spec/cassettes/setup_drops.yml +318 -666
- data/spec/cassettes/token_for_account.yml +53 -92
- data/spec/cassettes/token_for_account_with_bad_credentials.yml +51 -80
- data/spec/cassettes/upload_file.yml +119 -313
- data/spec/cassettes/upload_file_with_name.yml +121 -327
- data/spec/cassettes/upload_file_with_privacy.yml +120 -338
- data/spec/cassettes/view_drop.yml +26 -54
- data/spec/cloudapp/drop_collection_spec.rb +86 -22
- data/spec/cloudapp/drop_spec.rb +24 -1
- data/spec/cloudapp/service_spec.rb +183 -205
- data/spec/integration_spec.rb +43 -75
- data/spec/support/vcr.rb +1 -1
- metadata +3 -16
- data/lib/cloudapp/account.rb +0 -111
- data/lib/cloudapp/token.rb +0 -27
- data/spec/cassettes/delete_drop.yml +0 -383
- data/spec/cassettes/list_drops_with_href.yml +0 -287
- data/spec/cassettes/list_drops_with_href_and_filter.yml +0 -287
- data/spec/cassettes/list_drops_with_href_and_limit.yml +0 -287
- data/spec/cassettes/list_drops_with_nil_href.yml +0 -139
- data/spec/cassettes/recover_drop.yml +0 -628
- data/spec/cassettes/rename_drop.yml +0 -367
- data/spec/cassettes/trash_drop.yml +0 -478
- data/spec/cassettes/update_drop_bookmark_url.yml +0 -379
- data/spec/cassettes/update_file.yml +0 -573
- data/spec/cloudapp/account_spec.rb +0 -166
- data/spec/cloudapp/token_spec.rb +0 -33
data/cloudapp.gemspec
CHANGED
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
|
|
13
13
|
## If your rubyforge_project name is different, then edit it and comment out
|
14
14
|
## the sub! line in the Rakefile
|
15
15
|
s.name = 'cloudapp'
|
16
|
-
s.version = '2.0.0.beta.
|
17
|
-
s.date = '2012-08-
|
16
|
+
s.version = '2.0.0.beta.4'
|
17
|
+
s.date = '2012-08-25'
|
18
18
|
s.rubyforge_project = 'cloudapp'
|
19
19
|
|
20
20
|
## Make sure your summary is short. The description may be as long
|
@@ -66,7 +66,6 @@ Gem::Specification.new do |s|
|
|
66
66
|
Rakefile
|
67
67
|
cloudapp.gemspec
|
68
68
|
lib/cloudapp.rb
|
69
|
-
lib/cloudapp/account.rb
|
70
69
|
lib/cloudapp/authorized_representation.rb
|
71
70
|
lib/cloudapp/collection_json.rb
|
72
71
|
lib/cloudapp/collection_json/item.rb
|
@@ -76,33 +75,22 @@ Gem::Specification.new do |s|
|
|
76
75
|
lib/cloudapp/drop.rb
|
77
76
|
lib/cloudapp/drop_collection.rb
|
78
77
|
lib/cloudapp/service.rb
|
79
|
-
|
78
|
+
spec/cassettes/account_token.yml
|
80
79
|
spec/cassettes/create_bookmark.yml
|
81
80
|
spec/cassettes/create_bookmark_with_name.yml
|
82
81
|
spec/cassettes/create_bookmark_with_privacy.yml
|
83
|
-
spec/cassettes/delete_drop.yml
|
84
82
|
spec/cassettes/list_drops.yml
|
85
83
|
spec/cassettes/list_drops_with_bad_token.yml
|
86
84
|
spec/cassettes/list_drops_with_filter.yml
|
87
|
-
spec/cassettes/list_drops_with_href.yml
|
88
|
-
spec/cassettes/list_drops_with_href_and_filter.yml
|
89
|
-
spec/cassettes/list_drops_with_href_and_limit.yml
|
90
85
|
spec/cassettes/list_drops_with_limit.yml
|
91
|
-
spec/cassettes/list_drops_with_nil_href.yml
|
92
86
|
spec/cassettes/purge_drops.yml
|
93
|
-
spec/cassettes/recover_drop.yml
|
94
|
-
spec/cassettes/rename_drop.yml
|
95
87
|
spec/cassettes/setup_drops.yml
|
96
88
|
spec/cassettes/token_for_account.yml
|
97
89
|
spec/cassettes/token_for_account_with_bad_credentials.yml
|
98
|
-
spec/cassettes/trash_drop.yml
|
99
|
-
spec/cassettes/update_drop_bookmark_url.yml
|
100
|
-
spec/cassettes/update_file.yml
|
101
90
|
spec/cassettes/upload_file.yml
|
102
91
|
spec/cassettes/upload_file_with_name.yml
|
103
92
|
spec/cassettes/upload_file_with_privacy.yml
|
104
93
|
spec/cassettes/view_drop.yml
|
105
|
-
spec/cloudapp/account_spec.rb
|
106
94
|
spec/cloudapp/authorized_representation_spec.rb
|
107
95
|
spec/cloudapp/collection_json/item_spec.rb
|
108
96
|
spec/cloudapp/collection_json/representation_spec.rb
|
@@ -110,7 +98,6 @@ Gem::Specification.new do |s|
|
|
110
98
|
spec/cloudapp/drop_collection_spec.rb
|
111
99
|
spec/cloudapp/drop_spec.rb
|
112
100
|
spec/cloudapp/service_spec.rb
|
113
|
-
spec/cloudapp/token_spec.rb
|
114
101
|
spec/helper.rb
|
115
102
|
spec/integration_spec.rb
|
116
103
|
spec/support/files/favicon.ico
|
data/lib/cloudapp/drop.rb
CHANGED
@@ -5,10 +5,11 @@ module CloudApp
|
|
5
5
|
class Drop < OpenStruct
|
6
6
|
attr_accessor :href, :data
|
7
7
|
|
8
|
-
def initialize(collection_item)
|
9
|
-
@href
|
10
|
-
@links
|
11
|
-
@data
|
8
|
+
def initialize(collection_item, collection)
|
9
|
+
@href = collection_item.href
|
10
|
+
@links = collection_item.links
|
11
|
+
@data = collection_item.data
|
12
|
+
@collection = collection
|
12
13
|
super @data
|
13
14
|
end
|
14
15
|
|
@@ -22,6 +23,10 @@ module CloudApp
|
|
22
23
|
def embed_url() link_for_relation('embed') end
|
23
24
|
def download_url() link_for_relation('download') end
|
24
25
|
|
26
|
+
def trash() @collection.trash(self) end
|
27
|
+
def recover() @collection.recover(self) end
|
28
|
+
def delete() @collection.delete(self) end
|
29
|
+
|
25
30
|
protected
|
26
31
|
|
27
32
|
def link_for_relation(relation)
|
@@ -4,19 +4,34 @@ require 'forwardable'
|
|
4
4
|
module CloudApp
|
5
5
|
class DropCollection < SimpleDelegator
|
6
6
|
extend Forwardable
|
7
|
-
def_delegators
|
7
|
+
def_delegators :representation, :authorized?, :unauthorized?#, :link, :links
|
8
8
|
|
9
|
-
|
9
|
+
attr_reader :representation, :drop_class
|
10
|
+
|
11
|
+
def initialize(representation, service, drop_class = Drop)
|
10
12
|
@representation = representation
|
13
|
+
@service = service
|
11
14
|
@drop_class = drop_class
|
12
15
|
super drops
|
13
16
|
end
|
14
17
|
|
18
|
+
def follow(relation)
|
19
|
+
self.class.new representation.link(relation).follow, nil, drop_class
|
20
|
+
end
|
21
|
+
|
22
|
+
def has_link?(relation)
|
23
|
+
!representation.link(relation) { nil }.nil?
|
24
|
+
end
|
25
|
+
|
26
|
+
def trash(drop) @service.trash_drop drop.href end
|
27
|
+
def recover(drop) @service.recover_drop drop.href end
|
28
|
+
def delete(drop) @service.delete_drop drop.href end
|
29
|
+
|
15
30
|
protected
|
16
31
|
|
17
32
|
def drops
|
18
33
|
return [] if unauthorized?
|
19
|
-
@drops ||=
|
34
|
+
@drops ||= representation.items.map {|drop| drop_class.new(drop, self) }
|
20
35
|
end
|
21
36
|
end
|
22
37
|
end
|
data/lib/cloudapp/service.rb
CHANGED
@@ -3,6 +3,8 @@ require 'typhoeus'
|
|
3
3
|
require 'cloudapp/authorized_representation'
|
4
4
|
require 'cloudapp/collection_json'
|
5
5
|
require 'cloudapp/collection_json/tint'
|
6
|
+
require 'cloudapp/drop'
|
7
|
+
require 'cloudapp/drop_collection'
|
6
8
|
|
7
9
|
module CloudApp
|
8
10
|
class Service
|
@@ -18,6 +20,7 @@ module CloudApp
|
|
18
20
|
|
19
21
|
def initialize
|
20
22
|
super
|
23
|
+
# logger.level = Logger::INFO
|
21
24
|
logger.level = Logger::WARN
|
22
25
|
end
|
23
26
|
|
@@ -31,7 +34,14 @@ module CloudApp
|
|
31
34
|
end
|
32
35
|
end
|
33
36
|
|
34
|
-
def token_for_account(email, password)
|
37
|
+
def self.token_for_account(email, password)
|
38
|
+
representation = new.account_token email, password
|
39
|
+
return if representation.unauthorized?
|
40
|
+
|
41
|
+
representation.items.first.data['token']
|
42
|
+
end
|
43
|
+
|
44
|
+
def account_token(email, password)
|
35
45
|
authenticate_response = root
|
36
46
|
data = authenticate_response.template.
|
37
47
|
fill('email' => email, 'password' => password)
|
@@ -41,15 +51,27 @@ module CloudApp
|
|
41
51
|
end
|
42
52
|
end
|
43
53
|
|
44
|
-
def drops(
|
45
|
-
|
46
|
-
|
54
|
+
def drops(params = {})
|
55
|
+
params = params.each_with_object({}) {|(key, value), params|
|
56
|
+
params[key.to_s] = value
|
57
|
+
}
|
47
58
|
|
48
|
-
|
59
|
+
get('/') do |response|
|
60
|
+
return DropCollection.new(response, self) if response.unauthorized?
|
61
|
+
|
62
|
+
drops = response.link('drops').follow
|
63
|
+
return DropCollection.new(drops, self) if params.empty?
|
64
|
+
|
65
|
+
drops_query = drops.query 'drops-list'
|
66
|
+
href = Addressable::URI.parse drops_query.href
|
67
|
+
href.query_values = drops_query.fill params
|
68
|
+
|
69
|
+
get(href) do |response| return DropCollection.new(response, self) end
|
70
|
+
end
|
49
71
|
end
|
50
72
|
|
51
|
-
def
|
52
|
-
drops_at
|
73
|
+
def drop(href)
|
74
|
+
DropCollection.new drops_at(href), self
|
53
75
|
end
|
54
76
|
|
55
77
|
def update(href, options = {})
|
@@ -74,7 +96,7 @@ module CloudApp
|
|
74
96
|
data = collection.template.fill(attributes)
|
75
97
|
|
76
98
|
post(collection.href, data) do |response|
|
77
|
-
return response
|
99
|
+
return DropCollection.new response, self
|
78
100
|
end
|
79
101
|
end
|
80
102
|
|
@@ -84,7 +106,7 @@ module CloudApp
|
|
84
106
|
data = collection.template.fill(attributes)
|
85
107
|
|
86
108
|
post(collection.href, data) do |collection|
|
87
|
-
return upload_file(path, collection)
|
109
|
+
return DropCollection.new upload_file(path, collection), self
|
88
110
|
end
|
89
111
|
end
|
90
112
|
|
data/lib/cloudapp.rb
CHANGED
@@ -0,0 +1,88 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://api.getcloudapp.com/
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/json, text/x-yaml, application/xml, application/xhtml+xml, text/html,
|
12
|
+
text/plain
|
13
|
+
Accept-Encoding:
|
14
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
15
|
+
User-Agent:
|
16
|
+
- Ruby
|
17
|
+
response:
|
18
|
+
status:
|
19
|
+
code: 401
|
20
|
+
message: Unauthorized
|
21
|
+
headers:
|
22
|
+
Cache-Control:
|
23
|
+
- no-cache
|
24
|
+
Content-Type:
|
25
|
+
- application/vnd.collection+json; charset=utf-8
|
26
|
+
Server:
|
27
|
+
- thin 1.4.1 codename Chromeo
|
28
|
+
Www-Authenticate:
|
29
|
+
- Token realm="CloudApp"
|
30
|
+
X-Runtime:
|
31
|
+
- '0.003172'
|
32
|
+
X-Ua-Compatible:
|
33
|
+
- IE=Edge,chrome=1
|
34
|
+
Content-Length:
|
35
|
+
- '231'
|
36
|
+
Connection:
|
37
|
+
- keep-alive
|
38
|
+
body:
|
39
|
+
encoding: US-ASCII
|
40
|
+
string: ! '{"collection":{"version":"1.0","href":"https://api.getcloudapp.com/account/token","links":[{"rel":"root","href":"https://api.getcloudapp.com/"}],"template":{"data":[{"name":"email","value":null},{"name":"password","value":null}]}}}'
|
41
|
+
http_version:
|
42
|
+
recorded_at: Fri, 24 Aug 2012 20:43:21 GMT
|
43
|
+
- request:
|
44
|
+
method: post
|
45
|
+
uri: https://api.getcloudapp.com/account/token
|
46
|
+
body:
|
47
|
+
encoding: UTF-8
|
48
|
+
string: ! '{"email":"arthur@dent.com","password":"towel"}'
|
49
|
+
headers:
|
50
|
+
Content-Type:
|
51
|
+
- application/json
|
52
|
+
Accept:
|
53
|
+
- application/json, text/x-yaml, application/xml, application/xhtml+xml, text/html,
|
54
|
+
text/plain
|
55
|
+
User-Agent:
|
56
|
+
- Ruby
|
57
|
+
response:
|
58
|
+
status:
|
59
|
+
code: 201
|
60
|
+
message: Created
|
61
|
+
headers:
|
62
|
+
Cache-Control:
|
63
|
+
- max-age=0, private, must-revalidate
|
64
|
+
Content-Type:
|
65
|
+
- application/vnd.collection+json; charset=utf-8
|
66
|
+
Etag:
|
67
|
+
- ! '"4438a3f4f703a01c251b7ecc1feab772"'
|
68
|
+
Server:
|
69
|
+
- thin 1.4.1 codename Chromeo
|
70
|
+
Set-Cookie:
|
71
|
+
- _engine_session=BAh7CEkiFXVzZXJfY3JlZGVudGlhbHMGOgZFRkkiAYBhOGUwNDBkMDY3YWJkMTEyZGM1NTJhOTlkMjYyNmU1NzU0Y2FmZjc3MDEzZTc0ZDU5NTFjMTI2M2QxYTEyMGQxNThjZjI3ZDgzNmVmN2QyMmEwZjQzN2RlMjg3NGE3OWQwMWM4NWViOWFmYTVmMzQ1ZGFjZjQyZDAxNjlkMTY4MwY7AFRJIhh1c2VyX2NyZWRlbnRpYWxzX2lkBjsARmkDp4EBSSIPc2Vzc2lvbl9pZAY7AEZJIiVjM2VhMzliN2MzZDMzMjEyYWZiOGU2ZWQzNTM5MTIxZAY7AFQ%3D--3c536cf8834d3f78bbb164613a405dc6b4c4bf66;
|
72
|
+
path=/; HttpOnly
|
73
|
+
- user_credentials=a8e040d067abd112dc552a99d2626e5754caff77013e74d5951c1263d1a120d158cf27d836ef7d22a0f437de2874a79d01c85eb9afa5f345dacf42d0169d1683%3A%3A98727;
|
74
|
+
path=/; expires=Sat, 24-Nov-2012 20:43:21 GMT
|
75
|
+
X-Runtime:
|
76
|
+
- '0.015032'
|
77
|
+
X-Ua-Compatible:
|
78
|
+
- IE=Edge,chrome=1
|
79
|
+
Transfer-Encoding:
|
80
|
+
- chunked
|
81
|
+
Connection:
|
82
|
+
- keep-alive
|
83
|
+
body:
|
84
|
+
encoding: US-ASCII
|
85
|
+
string: ! '{"collection":{"version":"1.0","href":"https://api.getcloudapp.com/account/token","links":[{"rel":"root","href":"https://api.getcloudapp.com/"}],"items":[{"href":"https://api.getcloudapp.com/account/token","data":[{"name":"token","value":"abc123"}]}]}}'
|
86
|
+
http_version:
|
87
|
+
recorded_at: Fri, 24 Aug 2012 20:43:21 GMT
|
88
|
+
recorded_with: VCR 2.0.1
|
@@ -12,46 +12,36 @@ http_interactions:
|
|
12
12
|
Accept:
|
13
13
|
- application/json, text/x-yaml, application/xml, application/xhtml+xml, text/html,
|
14
14
|
text/plain
|
15
|
+
Accept-Encoding:
|
16
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
17
|
+
User-Agent:
|
18
|
+
- Ruby
|
15
19
|
response:
|
16
20
|
status:
|
17
21
|
code: 200
|
18
|
-
message:
|
19
|
-
T0s=
|
22
|
+
message: OK
|
20
23
|
headers:
|
21
|
-
|
22
|
-
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
-
|
30
|
-
|
31
|
-
|
32
|
-
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
!binary "WC1VYS1Db21wYXRpYmxl":
|
38
|
-
- !binary |-
|
39
|
-
SUU9RWRnZSxjaHJvbWU9MQ==
|
40
|
-
!binary "VHJhbnNmZXItRW5jb2Rpbmc=":
|
41
|
-
- !binary |-
|
42
|
-
Y2h1bmtlZA==
|
43
|
-
!binary "Q29ubmVjdGlvbg==":
|
44
|
-
- !binary |-
|
45
|
-
a2VlcC1hbGl2ZQ==
|
24
|
+
Cache-Control:
|
25
|
+
- max-age=0, private, must-revalidate
|
26
|
+
Content-Type:
|
27
|
+
- application/vnd.collection+json; charset=utf-8
|
28
|
+
Etag:
|
29
|
+
- ! '"44e8e003e0f1b5e38f7ca916ff4497d7"'
|
30
|
+
Server:
|
31
|
+
- thin 1.4.1 codename Chromeo
|
32
|
+
X-Runtime:
|
33
|
+
- '0.009253'
|
34
|
+
X-Ua-Compatible:
|
35
|
+
- IE=Edge,chrome=1
|
36
|
+
Content-Length:
|
37
|
+
- '139'
|
38
|
+
Connection:
|
39
|
+
- keep-alive
|
46
40
|
body:
|
47
|
-
encoding: ASCII
|
48
|
-
string: !
|
49
|
-
eyJjb2xsZWN0aW9uIjp7InZlcnNpb24iOiIxLjAiLCJocmVmIjoiaHR0cHM6
|
50
|
-
Ly9hcGkuZ2V0Y2xvdWRhcHAuY29tLyIsImxpbmtzIjpbeyJyZWwiOiJkcm9w
|
51
|
-
cyIsImhyZWYiOiJodHRwczovL2FwaS5nZXRjbG91ZGFwcC5jb20vZHJvcHMi
|
52
|
-
fV19fQ==
|
41
|
+
encoding: US-ASCII
|
42
|
+
string: ! '{"collection":{"version":"1.0","href":"https://api.getcloudapp.com/","links":[{"rel":"drops","href":"https://api.getcloudapp.com/drops"}]}}'
|
53
43
|
http_version:
|
54
|
-
recorded_at: Fri,
|
44
|
+
recorded_at: Fri, 24 Aug 2012 20:43:33 GMT
|
55
45
|
- request:
|
56
46
|
method: get
|
57
47
|
uri: https://api.getcloudapp.com/drops
|
@@ -64,115 +54,36 @@ http_interactions:
|
|
64
54
|
Accept:
|
65
55
|
- application/json, text/x-yaml, application/xml, application/xhtml+xml, text/html,
|
66
56
|
text/plain
|
57
|
+
Accept-Encoding:
|
58
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
59
|
+
User-Agent:
|
60
|
+
- Ruby
|
67
61
|
response:
|
68
62
|
status:
|
69
63
|
code: 200
|
70
|
-
message:
|
71
|
-
T0s=
|
64
|
+
message: OK
|
72
65
|
headers:
|
73
|
-
|
74
|
-
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
-
|
82
|
-
|
83
|
-
|
84
|
-
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
!binary "WC1VYS1Db21wYXRpYmxl":
|
90
|
-
- !binary |-
|
91
|
-
SUU9RWRnZSxjaHJvbWU9MQ==
|
92
|
-
!binary "VHJhbnNmZXItRW5jb2Rpbmc=":
|
93
|
-
- !binary |-
|
94
|
-
Y2h1bmtlZA==
|
95
|
-
!binary "Q29ubmVjdGlvbg==":
|
96
|
-
- !binary |-
|
97
|
-
a2VlcC1hbGl2ZQ==
|
66
|
+
Cache-Control:
|
67
|
+
- max-age=0, private, must-revalidate
|
68
|
+
Content-Type:
|
69
|
+
- application/vnd.collection+json; charset=utf-8
|
70
|
+
Etag:
|
71
|
+
- ! '"47b61ccba7fbae8a22e1be29f6eb50b8"'
|
72
|
+
Server:
|
73
|
+
- thin 1.4.1 codename Chromeo
|
74
|
+
X-Runtime:
|
75
|
+
- '0.120766'
|
76
|
+
X-Ua-Compatible:
|
77
|
+
- IE=Edge,chrome=1
|
78
|
+
Transfer-Encoding:
|
79
|
+
- chunked
|
80
|
+
Connection:
|
81
|
+
- keep-alive
|
98
82
|
body:
|
99
|
-
encoding: ASCII
|
100
|
-
string: !
|
101
|
-
eyJjb2xsZWN0aW9uIjp7InZlcnNpb24iOiIxLjAiLCJocmVmIjoiaHR0cHM6
|
102
|
-
Ly9hcGkuZ2V0Y2xvdWRhcHAuY29tL2Ryb3BzIiwibGlua3MiOlt7InJlbCI6
|
103
|
-
ImRyb3BzLXN0cmVhbSIsImhyZWYiOiJodHRwczovL2FwaS5nZXRjbG91ZGFw
|
104
|
-
cC5jb20vZHJvcHMvc3RyZWFtIn1dLCJxdWVyaWVzIjpbeyJocmVmIjoiaHR0
|
105
|
-
cHM6Ly9hcGkuZ2V0Y2xvdWRhcHAuY29tL2Ryb3BzIiwicmVsIjoiZHJvcHMt
|
106
|
-
bGlzdCIsImRhdGEiOlt7Im5hbWUiOiJmaWx0ZXIiLCJ2YWx1ZSI6ImFjdGl2
|
107
|
-
ZSJ9LHsibmFtZSI6ImxpbWl0IiwidmFsdWUiOjIwfV19XSwidGVtcGxhdGUi
|
108
|
-
OnsiZGF0YSI6W3sibmFtZSI6Im5hbWUiLCJ2YWx1ZSI6bnVsbH0seyJuYW1l
|
109
|
-
IjoicHJpdmF0ZSIsInZhbHVlIjp0cnVlfSx7Im5hbWUiOiJ0cmFzaCIsInZh
|
110
|
-
bHVlIjpmYWxzZX0seyJuYW1lIjoiYm9va21hcmtfdXJsIiwidmFsdWUiOm51
|
111
|
-
bGx9LHsibmFtZSI6ImZpbGVfc2l6ZSIsInZhbHVlIjpudWxsfV19LCJpdGVt
|
112
|
-
cyI6W3siaHJlZiI6Imh0dHBzOi8vYXBpLmdldGNsb3VkYXBwLmNvbS9kcm9w
|
113
|
-
cy8yMTE4NTg5NyIsImxpbmtzIjpbeyJyZWwiOiJjb2xsZWN0aW9uIiwiaHJl
|
114
|
-
ZiI6Imh0dHBzOi8vYXBpLmdldGNsb3VkYXBwLmNvbS9kcm9wcyJ9LHsicmVs
|
115
|
-
IjoiY2Fub25pY2FsIiwiaHJlZiI6Imh0dHA6Ly9jbC5seS9pbWFnZS8ydTNY
|
116
|
-
M28yajFpMlAifSx7InJlbCI6Imljb24iLCJocmVmIjoiaHR0cHM6Ly90aHVt
|
117
|
-
YnMuZ2V0Y2xvdWRhcHAuY29tLzJ1M1gzbzJqMWkyUCJ9LHsicmVsIjoiZW1i
|
118
|
-
ZWQiLCJocmVmIjoiaHR0cDovL2NsLmx5L2ltYWdlLzJ1M1gzbzJqMWkyUC9m
|
119
|
-
YXZpY29uLmljbyJ9LHsicmVsIjoiZG93bmxvYWQiLCJocmVmIjoiaHR0cDov
|
120
|
-
L2NsLmx5L2ltYWdlLzJ1M1gzbzJqMWkyUC9kb3dubG9hZC9mYXZpY29uLmlj
|
121
|
-
byJ9XSwiZGF0YSI6W3sibmFtZSI6ImlkIiwidmFsdWUiOjIxMTg1ODk3fSx7
|
122
|
-
Im5hbWUiOiJuYW1lIiwidmFsdWUiOiJodHRwOi8vZ2V0Y2xvdWRhcHAuY29t
|
123
|
-
In0seyJuYW1lIjoicHJpdmF0ZSIsInZhbHVlIjp0cnVlfSx7Im5hbWUiOiJ0
|
124
|
-
cmFzaCIsInZhbHVlIjpmYWxzZX0seyJuYW1lIjoidmlld3MiLCJ2YWx1ZSI6
|
125
|
-
MH0seyJuYW1lIjoiY3JlYXRlZCIsInZhbHVlIjoiMjAxMi0wOC0xN1QxODox
|
126
|
-
MTo0N1oifV19LHsiaHJlZiI6Imh0dHBzOi8vYXBpLmdldGNsb3VkYXBwLmNv
|
127
|
-
bS9kcm9wcy8yMTE4NTg5NiIsImxpbmtzIjpbeyJyZWwiOiJjb2xsZWN0aW9u
|
128
|
-
IiwiaHJlZiI6Imh0dHBzOi8vYXBpLmdldGNsb3VkYXBwLmNvbS9kcm9wcyJ9
|
129
|
-
LHsicmVsIjoiY2Fub25pY2FsIiwiaHJlZiI6Imh0dHA6Ly9jbC5seS8yZzFT
|
130
|
-
MXkzZzNiMk8ifSx7InJlbCI6Imljb24iLCJocmVmIjoiaHR0cHM6Ly9kOXlh
|
131
|
-
YzEzNnUwNDh6LmNsb3VkZnJvbnQubmV0L2ltYWdlcy90aHVtYm5haWxzL2Jv
|
132
|
-
b2ttYXJrLnBuZyJ9XSwiZGF0YSI6W3sibmFtZSI6ImlkIiwidmFsdWUiOjIx
|
133
|
-
MTg1ODk2fSx7Im5hbWUiOiJuYW1lIiwidmFsdWUiOiJodHRwOi8vZ2V0Y2xv
|
134
|
-
dWRhcHAuY29tIn0seyJuYW1lIjoicHJpdmF0ZSIsInZhbHVlIjp0cnVlfSx7
|
135
|
-
Im5hbWUiOiJ0cmFzaCIsInZhbHVlIjpmYWxzZX0seyJuYW1lIjoidmlld3Mi
|
136
|
-
LCJ2YWx1ZSI6MH0seyJuYW1lIjoiY3JlYXRlZCIsInZhbHVlIjoiMjAxMi0w
|
137
|
-
OC0xN1QxODoxMTo0NVoifV19LHsiaHJlZiI6Imh0dHBzOi8vYXBpLmdldGNs
|
138
|
-
b3VkYXBwLmNvbS9kcm9wcy8yMTE4NTg5NSIsImxpbmtzIjpbeyJyZWwiOiJj
|
139
|
-
b2xsZWN0aW9uIiwiaHJlZiI6Imh0dHBzOi8vYXBpLmdldGNsb3VkYXBwLmNv
|
140
|
-
bS9kcm9wcyJ9LHsicmVsIjoiY2Fub25pY2FsIiwiaHJlZiI6Imh0dHA6Ly9j
|
141
|
-
bC5seS9JcGZjIn0seyJyZWwiOiJpY29uIiwiaHJlZiI6Imh0dHBzOi8vZDl5
|
142
|
-
YWMxMzZ1MDQ4ei5jbG91ZGZyb250Lm5ldC9pbWFnZXMvdGh1bWJuYWlscy9i
|
143
|
-
b29rbWFyay5wbmcifV0sImRhdGEiOlt7Im5hbWUiOiJpZCIsInZhbHVlIjoy
|
144
|
-
MTE4NTg5NX0seyJuYW1lIjoibmFtZSIsInZhbHVlIjoiTmV3IERyb3AgTmFt
|
145
|
-
ZSJ9LHsibmFtZSI6InByaXZhdGUiLCJ2YWx1ZSI6ZmFsc2V9LHsibmFtZSI6
|
146
|
-
InRyYXNoIiwidmFsdWUiOmZhbHNlfSx7Im5hbWUiOiJ2aWV3cyIsInZhbHVl
|
147
|
-
IjowfSx7Im5hbWUiOiJjcmVhdGVkIiwidmFsdWUiOiIyMDEyLTA4LTE3VDE4
|
148
|
-
OjExOjQ0WiJ9XX0seyJocmVmIjoiaHR0cHM6Ly9hcGkuZ2V0Y2xvdWRhcHAu
|
149
|
-
Y29tL2Ryb3BzLzIxMTg1ODkwIiwibGlua3MiOlt7InJlbCI6ImNvbGxlY3Rp
|
150
|
-
b24iLCJocmVmIjoiaHR0cHM6Ly9hcGkuZ2V0Y2xvdWRhcHAuY29tL2Ryb3Bz
|
151
|
-
In0seyJyZWwiOiJjYW5vbmljYWwiLCJocmVmIjoiaHR0cDovL2NsLmx5L0lw
|
152
|
-
ODUifSx7InJlbCI6Imljb24iLCJocmVmIjoiaHR0cHM6Ly9kOXlhYzEzNnUw
|
153
|
-
NDh6LmNsb3VkZnJvbnQubmV0L2ltYWdlcy90aHVtYm5haWxzL2Jvb2ttYXJr
|
154
|
-
LnBuZyJ9XSwiZGF0YSI6W3sibmFtZSI6ImlkIiwidmFsdWUiOjIxMTg1ODkw
|
155
|
-
fSx7Im5hbWUiOiJuYW1lIiwidmFsdWUiOiJodHRwOi8vY2wubHkifSx7Im5h
|
156
|
-
bWUiOiJwcml2YXRlIiwidmFsdWUiOmZhbHNlfSx7Im5hbWUiOiJ0cmFzaCIs
|
157
|
-
InZhbHVlIjpmYWxzZX0seyJuYW1lIjoidmlld3MiLCJ2YWx1ZSI6MH0seyJu
|
158
|
-
YW1lIjoiY3JlYXRlZCIsInZhbHVlIjoiMjAxMi0wOC0xN1QxODoxMTozOVoi
|
159
|
-
fV19LHsiaHJlZiI6Imh0dHBzOi8vYXBpLmdldGNsb3VkYXBwLmNvbS9kcm9w
|
160
|
-
cy8yMTE4NTg4OSIsImxpbmtzIjpbeyJyZWwiOiJjb2xsZWN0aW9uIiwiaHJl
|
161
|
-
ZiI6Imh0dHBzOi8vYXBpLmdldGNsb3VkYXBwLmNvbS9kcm9wcyJ9LHsicmVs
|
162
|
-
IjoiY2Fub25pY2FsIiwiaHJlZiI6Imh0dHA6Ly9jbC5seS9pbWFnZS8xYTBW
|
163
|
-
M2EyajBCMjgifSx7InJlbCI6Imljb24iLCJocmVmIjoiaHR0cHM6Ly90aHVt
|
164
|
-
YnMuZ2V0Y2xvdWRhcHAuY29tLzFhMFYzYTJqMEIyOCJ9LHsicmVsIjoiZW1i
|
165
|
-
ZWQiLCJocmVmIjoiaHR0cDovL2NsLmx5L2ltYWdlLzFhMFYzYTJqMEIyOC9m
|
166
|
-
YXZpY29uLmljbyJ9LHsicmVsIjoiZG93bmxvYWQiLCJocmVmIjoiaHR0cDov
|
167
|
-
L2NsLmx5L2ltYWdlLzFhMFYzYTJqMEIyOC9kb3dubG9hZC9mYXZpY29uLmlj
|
168
|
-
byJ9XSwiZGF0YSI6W3sibmFtZSI6ImlkIiwidmFsdWUiOjIxMTg1ODg5fSx7
|
169
|
-
Im5hbWUiOiJuYW1lIiwidmFsdWUiOiJmYXZpY29uLmljbyJ9LHsibmFtZSI6
|
170
|
-
InByaXZhdGUiLCJ2YWx1ZSI6dHJ1ZX0seyJuYW1lIjoidHJhc2giLCJ2YWx1
|
171
|
-
ZSI6ZmFsc2V9LHsibmFtZSI6InZpZXdzIiwidmFsdWUiOjB9LHsibmFtZSI6
|
172
|
-
ImNyZWF0ZWQiLCJ2YWx1ZSI6IjIwMTItMDgtMTdUMTg6MTE6MzlaIn1dfV19
|
173
|
-
fQ==
|
83
|
+
encoding: US-ASCII
|
84
|
+
string: ! '{"collection":{"version":"1.0","href":"https://api.getcloudapp.com/drops","links":[{"rel":"drops-stream","href":"https://api.getcloudapp.com/drops/stream"}],"queries":[{"href":"https://api.getcloudapp.com/drops","rel":"drops-list","data":[{"name":"filter","value":"active"},{"name":"limit","value":20}]}],"template":{"data":[{"name":"name","value":null},{"name":"private","value":true},{"name":"trash","value":false},{"name":"bookmark_url","value":null},{"name":"file_size","value":null}]},"items":[{"href":"https://api.getcloudapp.com/drops/21399180","links":[{"rel":"collection","href":"https://api.getcloudapp.com/drops"},{"rel":"canonical","href":"http://cl.ly/IzhX"},{"rel":"icon","href":"https://d9yac136u048z.cloudfront.net/images/thumbnails/bookmark.png"}],"data":[{"name":"id","value":21399180},{"name":"name","value":"http://cl.ly"},{"name":"private","value":false},{"name":"trash","value":false},{"name":"views","value":0},{"name":"created","value":"2012-08-24T20:43:24Z"}]},{"href":"https://api.getcloudapp.com/drops/21399179","links":[{"rel":"collection","href":"https://api.getcloudapp.com/drops"},{"rel":"canonical","href":"http://cl.ly/image/2D0r2k0z2u2E"},{"rel":"icon","href":"https://thumbs.getcloudapp.com/2D0r2k0z2u2E"},{"rel":"embed","href":"http://cl.ly/image/2D0r2k0z2u2E/favicon.ico"},{"rel":"download","href":"http://cl.ly/image/2D0r2k0z2u2E/download/favicon.ico"}],"data":[{"name":"id","value":21399179},{"name":"name","value":"favicon.ico"},{"name":"private","value":true},{"name":"trash","value":false},{"name":"views","value":0},{"name":"created","value":"2012-08-24T20:43:22Z"}]}]}}'
|
174
85
|
http_version:
|
175
|
-
recorded_at: Fri,
|
86
|
+
recorded_at: Fri, 24 Aug 2012 20:43:33 GMT
|
176
87
|
- request:
|
177
88
|
method: post
|
178
89
|
uri: https://api.getcloudapp.com/drops
|
@@ -182,74 +93,40 @@ http_interactions:
|
|
182
93
|
headers:
|
183
94
|
Authorization:
|
184
95
|
- Token token="abc123"
|
185
|
-
|
96
|
+
Content-Type:
|
186
97
|
- application/json
|
187
98
|
Accept:
|
188
99
|
- application/json, text/x-yaml, application/xml, application/xhtml+xml, text/html,
|
189
100
|
text/plain
|
101
|
+
User-Agent:
|
102
|
+
- Ruby
|
190
103
|
response:
|
191
104
|
status:
|
192
105
|
code: 201
|
193
|
-
message:
|
194
|
-
Q3JlYXRlZA==
|
106
|
+
message: Created
|
195
107
|
headers:
|
196
|
-
|
197
|
-
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
-
|
205
|
-
|
206
|
-
|
207
|
-
-
|
208
|
-
|
209
|
-
|
210
|
-
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
!binary "WC1SdW50aW1l":
|
216
|
-
- !binary |-
|
217
|
-
MC4wNjc2MDU=
|
218
|
-
!binary "WC1VYS1Db21wYXRpYmxl":
|
219
|
-
- !binary |-
|
220
|
-
SUU9RWRnZSxjaHJvbWU9MQ==
|
221
|
-
!binary "VHJhbnNmZXItRW5jb2Rpbmc=":
|
222
|
-
- !binary |-
|
223
|
-
Y2h1bmtlZA==
|
224
|
-
!binary "Q29ubmVjdGlvbg==":
|
225
|
-
- !binary |-
|
226
|
-
a2VlcC1hbGl2ZQ==
|
108
|
+
Cache-Control:
|
109
|
+
- max-age=0, private, must-revalidate
|
110
|
+
Content-Type:
|
111
|
+
- application/vnd.collection+json; charset=utf-8
|
112
|
+
Etag:
|
113
|
+
- ! '"62043352a419fa740e0cc79766384e51"'
|
114
|
+
Server:
|
115
|
+
- thin 1.4.1 codename Chromeo
|
116
|
+
Set-Cookie:
|
117
|
+
- _engine_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFRkkiJTIxNWEwZDdjYzQ4YzhmNjNkNjNkYzA3ZjhkYjI4Yzg3BjsAVA%3D%3D--25497c79703f55d2ba0bd061e86b103a0f636c08;
|
118
|
+
path=/; HttpOnly
|
119
|
+
X-Runtime:
|
120
|
+
- '0.035032'
|
121
|
+
X-Ua-Compatible:
|
122
|
+
- IE=Edge,chrome=1
|
123
|
+
Content-Length:
|
124
|
+
- '1005'
|
125
|
+
Connection:
|
126
|
+
- keep-alive
|
227
127
|
body:
|
228
|
-
encoding: ASCII
|
229
|
-
string: !
|
230
|
-
eyJjb2xsZWN0aW9uIjp7InZlcnNpb24iOiIxLjAiLCJocmVmIjoiaHR0cHM6
|
231
|
-
Ly9hcGkuZ2V0Y2xvdWRhcHAuY29tL2Ryb3BzIiwibGlua3MiOlt7InJlbCI6
|
232
|
-
ImRyb3BzLXN0cmVhbSIsImhyZWYiOiJodHRwczovL2FwaS5nZXRjbG91ZGFw
|
233
|
-
cC5jb20vZHJvcHMvc3RyZWFtIn1dLCJxdWVyaWVzIjpbeyJocmVmIjoiaHR0
|
234
|
-
cHM6Ly9hcGkuZ2V0Y2xvdWRhcHAuY29tL2Ryb3BzIiwicmVsIjoiZHJvcHMt
|
235
|
-
bGlzdCIsImRhdGEiOlt7Im5hbWUiOiJmaWx0ZXIiLCJ2YWx1ZSI6ImFjdGl2
|
236
|
-
ZSJ9LHsibmFtZSI6ImxpbWl0IiwidmFsdWUiOjIwfV19XSwidGVtcGxhdGUi
|
237
|
-
OnsiZGF0YSI6W3sibmFtZSI6Im5hbWUiLCJ2YWx1ZSI6bnVsbH0seyJuYW1l
|
238
|
-
IjoicHJpdmF0ZSIsInZhbHVlIjp0cnVlfSx7Im5hbWUiOiJ0cmFzaCIsInZh
|
239
|
-
bHVlIjpmYWxzZX0seyJuYW1lIjoiYm9va21hcmtfdXJsIiwidmFsdWUiOm51
|
240
|
-
bGx9LHsibmFtZSI6ImZpbGVfc2l6ZSIsInZhbHVlIjpudWxsfV19LCJpdGVt
|
241
|
-
cyI6W3siaHJlZiI6Imh0dHBzOi8vYXBpLmdldGNsb3VkYXBwLmNvbS9kcm9w
|
242
|
-
cy8yMTE4NTg5OSIsImxpbmtzIjpbeyJyZWwiOiJjb2xsZWN0aW9uIiwiaHJl
|
243
|
-
ZiI6Imh0dHBzOi8vYXBpLmdldGNsb3VkYXBwLmNvbS9kcm9wcyJ9LHsicmVs
|
244
|
-
IjoiY2Fub25pY2FsIiwiaHJlZiI6Imh0dHA6Ly9jbC5seS8wTjB3MUMxZjFi
|
245
|
-
MjMifSx7InJlbCI6Imljb24iLCJocmVmIjoiaHR0cHM6Ly9kOXlhYzEzNnUw
|
246
|
-
NDh6LmNsb3VkZnJvbnQubmV0L2ltYWdlcy90aHVtYm5haWxzL2Jvb2ttYXJr
|
247
|
-
LnBuZyJ9XSwiZGF0YSI6W3sibmFtZSI6ImlkIiwidmFsdWUiOjIxMTg1ODk5
|
248
|
-
fSx7Im5hbWUiOiJuYW1lIiwidmFsdWUiOiJodHRwOi8vZ2V0Y2xvdWRhcHAu
|
249
|
-
Y29tIn0seyJuYW1lIjoicHJpdmF0ZSIsInZhbHVlIjp0cnVlfSx7Im5hbWUi
|
250
|
-
OiJ0cmFzaCIsInZhbHVlIjpmYWxzZX0seyJuYW1lIjoidmlld3MiLCJ2YWx1
|
251
|
-
ZSI6MH0seyJuYW1lIjoiY3JlYXRlZCIsInZhbHVlIjoiMjAxMi0wOC0xN1Qx
|
252
|
-
ODoxMTo0OFoifV19XX19
|
128
|
+
encoding: US-ASCII
|
129
|
+
string: ! '{"collection":{"version":"1.0","href":"https://api.getcloudapp.com/drops","links":[{"rel":"drops-stream","href":"https://api.getcloudapp.com/drops/stream"}],"queries":[{"href":"https://api.getcloudapp.com/drops","rel":"drops-list","data":[{"name":"filter","value":"active"},{"name":"limit","value":20}]}],"template":{"data":[{"name":"name","value":null},{"name":"private","value":true},{"name":"trash","value":false},{"name":"bookmark_url","value":null},{"name":"file_size","value":null}]},"items":[{"href":"https://api.getcloudapp.com/drops/21399186","links":[{"rel":"collection","href":"https://api.getcloudapp.com/drops"},{"rel":"canonical","href":"http://cl.ly/182Y3i0P0h03"},{"rel":"icon","href":"https://d9yac136u048z.cloudfront.net/images/thumbnails/bookmark.png"}],"data":[{"name":"id","value":21399186},{"name":"name","value":"http://getcloudapp.com"},{"name":"private","value":true},{"name":"trash","value":false},{"name":"views","value":0},{"name":"created","value":"2012-08-24T20:43:34Z"}]}]}}'
|
253
130
|
http_version:
|
254
|
-
recorded_at: Fri,
|
255
|
-
recorded_with: VCR 2.0.
|
131
|
+
recorded_at: Fri, 24 Aug 2012 20:43:34 GMT
|
132
|
+
recorded_with: VCR 2.0.1
|