dropbox_api 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/.yardopts +1 -0
- data/CHANGES.md +7 -0
- data/README.md +37 -12
- data/TODO.md +33 -3
- data/api_coverage.md +8 -6
- data/api_reference.md +25 -0
- data/lib/dropbox_api.rb +25 -1
- data/lib/dropbox_api/authenticator.rb +5 -9
- data/lib/dropbox_api/endpoints/base.rb +11 -0
- data/lib/dropbox_api/endpoints/files/get_thumbnail.rb +30 -6
- data/lib/dropbox_api/endpoints/files/upload.rb +18 -6
- data/lib/dropbox_api/endpoints/sharing/add_file_member.rb +60 -0
- data/lib/dropbox_api/endpoints/sharing/add_folder_member.rb +11 -8
- data/lib/dropbox_api/endpoints/sharing/list_folder_members.rb +16 -6
- data/lib/dropbox_api/endpoints/users/get_account_batch.rb +19 -0
- data/lib/dropbox_api/endpoints/users/get_current_account.rb +16 -0
- data/lib/dropbox_api/endpoints/users/get_space_usage.rb +16 -0
- data/lib/dropbox_api/errors/add_file_member_error.rb +6 -0
- data/lib/dropbox_api/errors/basic_error.rb +3 -0
- data/lib/dropbox_api/errors/file_member_action_error.rb +10 -0
- data/lib/dropbox_api/errors/sharing_file_access_error.rb +11 -0
- data/lib/dropbox_api/errors/too_many_requests_error.rb +19 -0
- data/lib/dropbox_api/metadata/access_level.rb +18 -0
- data/lib/dropbox_api/metadata/add_file_member_result.rb +19 -0
- data/lib/dropbox_api/metadata/add_member.rb +26 -54
- data/lib/dropbox_api/metadata/base.rb +53 -10
- data/lib/dropbox_api/metadata/basic_account.rb +19 -20
- data/lib/dropbox_api/metadata/deleted.rb +7 -8
- data/lib/dropbox_api/metadata/field.rb +3 -2
- data/lib/dropbox_api/metadata/file.rb +20 -17
- data/lib/dropbox_api/metadata/file_link.rb +26 -27
- data/lib/dropbox_api/metadata/file_member_action.rb +30 -0
- data/lib/dropbox_api/metadata/folder.rb +11 -8
- data/lib/dropbox_api/metadata/folder_sharing_info.rb +5 -6
- data/lib/dropbox_api/metadata/link_permissions.rb +9 -10
- data/lib/dropbox_api/metadata/member.rb +47 -0
- data/lib/dropbox_api/metadata/member_action_collection.rb +44 -0
- data/lib/dropbox_api/metadata/member_permission.rb +7 -0
- data/lib/dropbox_api/metadata/member_permission_list.rb +7 -0
- data/lib/dropbox_api/metadata/name.rb +7 -8
- data/lib/dropbox_api/metadata/parent_folder_access_info.rb +7 -0
- data/lib/dropbox_api/metadata/shared_folder.rb +14 -15
- data/lib/dropbox_api/metadata/shared_folder_policy.rb +5 -6
- data/lib/dropbox_api/metadata/space_allocation.rb +10 -0
- data/lib/dropbox_api/metadata/space_usage.rb +14 -0
- data/lib/dropbox_api/metadata/team_member_info.rb +9 -10
- data/lib/dropbox_api/result_builder.rb +1 -1
- data/lib/dropbox_api/results/add_file_member_result_list.rb +20 -0
- data/lib/dropbox_api/results/basic_account_batch.rb +7 -0
- data/lib/dropbox_api/version.rb +1 -1
- data/rails_setup.md +84 -0
- metadata +26 -2
@@ -0,0 +1,14 @@
|
|
1
|
+
module DropboxApi::Metadata
|
2
|
+
# Example of a serialized {SpaceUsage} object:
|
3
|
+
# {
|
4
|
+
# "used": 167685342,
|
5
|
+
# "allocation": {
|
6
|
+
# ".tag": "individual",
|
7
|
+
# "allocated": 2147483648
|
8
|
+
# }
|
9
|
+
# }
|
10
|
+
class SpaceUsage < Base
|
11
|
+
field :used, String
|
12
|
+
field :allocation, DropboxApi::Metadata::SpaceAllocation
|
13
|
+
end
|
14
|
+
end
|
@@ -1,14 +1,13 @@
|
|
1
1
|
module DropboxApi::Metadata
|
2
|
-
#
|
3
|
-
#
|
4
|
-
# {
|
5
|
-
#
|
6
|
-
#
|
7
|
-
#
|
8
|
-
#
|
9
|
-
#
|
10
|
-
#
|
11
|
-
# }
|
2
|
+
# Example of a serialized {TeamMemberInfo} object:
|
3
|
+
# {
|
4
|
+
# "team_info": {
|
5
|
+
# "id": "dbtid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I",
|
6
|
+
# "name": "Acme, Inc."
|
7
|
+
# },
|
8
|
+
# "display_name": "Roger Rabbit",
|
9
|
+
# "member_id": "dbmid:abcd1234"
|
10
|
+
# }
|
12
11
|
class TeamMemberInfo < Base
|
13
12
|
field :team_info, DropboxApi::Metadata::Team
|
14
13
|
field :display_name, String
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module DropboxApi::Results
|
2
|
+
# Example of a result of the +add_file_member+ endpoint:
|
3
|
+
# [{
|
4
|
+
# "member":{
|
5
|
+
# ".tag": "email",
|
6
|
+
# "email": "somebody@test.com"
|
7
|
+
# },
|
8
|
+
# "result": {
|
9
|
+
# ".tag": "success",
|
10
|
+
# "success": {
|
11
|
+
# ".tag": "viewer"
|
12
|
+
# }
|
13
|
+
# }
|
14
|
+
# }]
|
15
|
+
class AddFileMemberResultList < Array
|
16
|
+
def initialize(members)
|
17
|
+
super(members.map { |m| DropboxApi::Metadata::AddFileMemberResult.new m })
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/dropbox_api/version.rb
CHANGED
data/rails_setup.md
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
# @title Rails setup
|
2
|
+
|
3
|
+
# Standard OAuth 2 flow set up
|
4
|
+
|
5
|
+
This document describes how to implement the OAuth2 flow in a Rails
|
6
|
+
application, the process is represented in the following diagram:
|
7
|
+
|
8
|
+

|
9
|
+
|
10
|
+
Source: [https://www.dropbox.com/developers/reference/oauth-guide#oauth-2-on-the-web](https://www.dropbox.com/developers/reference/oauth-guide#oauth-2-on-the-web)
|
11
|
+
|
12
|
+
## 1. Set up some new routes
|
13
|
+
|
14
|
+
You'll have to create a couple of new routes:
|
15
|
+
|
16
|
+
```ruby
|
17
|
+
get 'dropbox/auth' => 'dropbox#auth'
|
18
|
+
get 'dropbox/auth_callback' => 'dropbox#auth_callback'
|
19
|
+
```
|
20
|
+
|
21
|
+
We'll use `dropbox/auth` to perform the step 2 in the diagram, i.e. this route
|
22
|
+
will redirect to Dropbox.
|
23
|
+
|
24
|
+
The other route, `dropbox/auth_callback`, will process the authentication token
|
25
|
+
that we'll receive from Dropbox. Steps 4 & 5.
|
26
|
+
|
27
|
+
## 2. Set up a Dropbox controller
|
28
|
+
|
29
|
+
```ruby
|
30
|
+
class DropboxController < ApplicationController
|
31
|
+
# Example call:
|
32
|
+
# GET /dropbox/auth
|
33
|
+
def auth
|
34
|
+
url = authenticator.authorize_url :redirect_uri => redirect_uri
|
35
|
+
|
36
|
+
redirect_to url
|
37
|
+
end
|
38
|
+
|
39
|
+
# Example call:
|
40
|
+
# GET /dropbox/auth_callback?code=VofXAX8DO1sAAAAAAAACUKBwkDZyMg1zKT0f_FNONeA
|
41
|
+
def auth_callback
|
42
|
+
auth_bearer = authenticator.get_token(params[:code],
|
43
|
+
:redirect_uri => redirect_uri)
|
44
|
+
token = auth_bearer.token # This line is step 5 in the diagram.
|
45
|
+
|
46
|
+
# At this stage you may want to persist the reusable token we've acquired.
|
47
|
+
# Remember that it's bound to the Dropbox account of your user.
|
48
|
+
|
49
|
+
# If you persist this token, you can use it in subsequent requests or
|
50
|
+
# background jobs to perform calls to Dropbox API such as the following.
|
51
|
+
folders = DropboxApi::Client.new(token).list_folder "/"
|
52
|
+
end
|
53
|
+
|
54
|
+
private
|
55
|
+
|
56
|
+
def authenticator
|
57
|
+
client_id = "az8ykn83kecoodq"
|
58
|
+
client_secret = "ozp1pxo8e563fc5"
|
59
|
+
|
60
|
+
DropboxApi::Authenticator.new(client_id, client_secret)
|
61
|
+
end
|
62
|
+
|
63
|
+
def redirect_uri
|
64
|
+
dropbox_auth_callback_url # => http://localhost:3000/dropbox/auth_callback
|
65
|
+
end
|
66
|
+
end
|
67
|
+
```
|
68
|
+
|
69
|
+
## 3. Set up redirect URI in your Dropbox app settings
|
70
|
+
|
71
|
+
In the previous code, you probably noticed that we're providing a `redirect_uri`
|
72
|
+
parameter. This is where the user will be redirected to after accepting our
|
73
|
+
application.
|
74
|
+
|
75
|
+
However, Dropbox will only redirect to a set of whitelisted URIs, so
|
76
|
+
you'll need to add yours to the list. That's very easy:
|
77
|
+
|
78
|
+
1. Log in to your Dropbox developer account at
|
79
|
+
[www.dropbox.com/developers](https://www.dropbox.com/developers).
|
80
|
+
2. On the menu, click on "My Apps". Then click on your application to edit its
|
81
|
+
settings.
|
82
|
+
4. On the OAuth 2 section, add the redirect URI that maps to the
|
83
|
+
`auth_callback` method that we've implemented above. For example,
|
84
|
+
`www.yourapp.com/dropbox/oauth_callback`.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dropbox_api
|
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
|
- Jesús Burgos
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -124,12 +124,15 @@ files:
|
|
124
124
|
- ".gitignore"
|
125
125
|
- ".rspec"
|
126
126
|
- ".travis.yml"
|
127
|
+
- ".yardopts"
|
128
|
+
- CHANGES.md
|
127
129
|
- Gemfile
|
128
130
|
- LICENSE
|
129
131
|
- README.md
|
130
132
|
- Rakefile
|
131
133
|
- TODO.md
|
132
134
|
- api_coverage.md
|
135
|
+
- api_reference.md
|
133
136
|
- bin/console
|
134
137
|
- bin/setup
|
135
138
|
- dropbox_api.gemspec
|
@@ -160,12 +163,17 @@ files:
|
|
160
163
|
- lib/dropbox_api/endpoints/options_validator.rb
|
161
164
|
- lib/dropbox_api/endpoints/rpc.rb
|
162
165
|
- lib/dropbox_api/endpoints/rpc_notify.rb
|
166
|
+
- lib/dropbox_api/endpoints/sharing/add_file_member.rb
|
163
167
|
- lib/dropbox_api/endpoints/sharing/add_folder_member.rb
|
164
168
|
- lib/dropbox_api/endpoints/sharing/create_shared_link_with_settings.rb
|
165
169
|
- lib/dropbox_api/endpoints/sharing/list_folder_members.rb
|
166
170
|
- lib/dropbox_api/endpoints/sharing/list_shared_links.rb
|
167
171
|
- lib/dropbox_api/endpoints/sharing/share_folder.rb
|
168
172
|
- lib/dropbox_api/endpoints/users/get_account.rb
|
173
|
+
- lib/dropbox_api/endpoints/users/get_account_batch.rb
|
174
|
+
- lib/dropbox_api/endpoints/users/get_current_account.rb
|
175
|
+
- lib/dropbox_api/endpoints/users/get_space_usage.rb
|
176
|
+
- lib/dropbox_api/errors/add_file_member_error.rb
|
169
177
|
- lib/dropbox_api/errors/add_folder_member_error.rb
|
170
178
|
- lib/dropbox_api/errors/add_member_selector_error.rb
|
171
179
|
- lib/dropbox_api/errors/already_shared_error.rb
|
@@ -174,6 +182,7 @@ files:
|
|
174
182
|
- lib/dropbox_api/errors/create_shared_link_with_settings_error.rb
|
175
183
|
- lib/dropbox_api/errors/delete_error.rb
|
176
184
|
- lib/dropbox_api/errors/download_error.rb
|
185
|
+
- lib/dropbox_api/errors/file_member_action_error.rb
|
177
186
|
- lib/dropbox_api/errors/get_account_error.rb
|
178
187
|
- lib/dropbox_api/errors/get_metadata_error.rb
|
179
188
|
- lib/dropbox_api/errors/http_error.rb
|
@@ -191,10 +200,14 @@ files:
|
|
191
200
|
- lib/dropbox_api/errors/share_folder_error.rb
|
192
201
|
- lib/dropbox_api/errors/share_path_error.rb
|
193
202
|
- lib/dropbox_api/errors/shared_folder_access_error.rb
|
203
|
+
- lib/dropbox_api/errors/sharing_file_access_error.rb
|
204
|
+
- lib/dropbox_api/errors/too_many_requests_error.rb
|
194
205
|
- lib/dropbox_api/errors/upload_error.rb
|
195
206
|
- lib/dropbox_api/errors/upload_write_failed_error.rb
|
196
207
|
- lib/dropbox_api/errors/write_conflict_error.rb
|
197
208
|
- lib/dropbox_api/errors/write_error.rb
|
209
|
+
- lib/dropbox_api/metadata/access_level.rb
|
210
|
+
- lib/dropbox_api/metadata/add_file_member_result.rb
|
198
211
|
- lib/dropbox_api/metadata/add_member.rb
|
199
212
|
- lib/dropbox_api/metadata/base.rb
|
200
213
|
- lib/dropbox_api/metadata/basic_account.rb
|
@@ -202,20 +215,30 @@ files:
|
|
202
215
|
- lib/dropbox_api/metadata/field.rb
|
203
216
|
- lib/dropbox_api/metadata/file.rb
|
204
217
|
- lib/dropbox_api/metadata/file_link.rb
|
218
|
+
- lib/dropbox_api/metadata/file_member_action.rb
|
205
219
|
- lib/dropbox_api/metadata/folder.rb
|
206
220
|
- lib/dropbox_api/metadata/folder_link.rb
|
207
221
|
- lib/dropbox_api/metadata/folder_sharing_info.rb
|
208
222
|
- lib/dropbox_api/metadata/link_permissions.rb
|
223
|
+
- lib/dropbox_api/metadata/member.rb
|
224
|
+
- lib/dropbox_api/metadata/member_action_collection.rb
|
225
|
+
- lib/dropbox_api/metadata/member_permission.rb
|
226
|
+
- lib/dropbox_api/metadata/member_permission_list.rb
|
209
227
|
- lib/dropbox_api/metadata/name.rb
|
228
|
+
- lib/dropbox_api/metadata/parent_folder_access_info.rb
|
210
229
|
- lib/dropbox_api/metadata/resource.rb
|
211
230
|
- lib/dropbox_api/metadata/shared_folder.rb
|
212
231
|
- lib/dropbox_api/metadata/shared_folder_policy.rb
|
213
232
|
- lib/dropbox_api/metadata/shared_link.rb
|
233
|
+
- lib/dropbox_api/metadata/space_allocation.rb
|
234
|
+
- lib/dropbox_api/metadata/space_usage.rb
|
214
235
|
- lib/dropbox_api/metadata/team.rb
|
215
236
|
- lib/dropbox_api/metadata/team_member_info.rb
|
216
237
|
- lib/dropbox_api/middleware/decode_result.rb
|
217
238
|
- lib/dropbox_api/result_builder.rb
|
239
|
+
- lib/dropbox_api/results/add_file_member_result_list.rb
|
218
240
|
- lib/dropbox_api/results/base.rb
|
241
|
+
- lib/dropbox_api/results/basic_account_batch.rb
|
219
242
|
- lib/dropbox_api/results/get_temporary_link_result.rb
|
220
243
|
- lib/dropbox_api/results/list_folder_get_latest_cursor_result.rb
|
221
244
|
- lib/dropbox_api/results/list_folder_longpoll_result.rb
|
@@ -228,6 +251,7 @@ files:
|
|
228
251
|
- lib/dropbox_api/results/shared_folder_members.rb
|
229
252
|
- lib/dropbox_api/results/void_result.rb
|
230
253
|
- lib/dropbox_api/version.rb
|
254
|
+
- rails_setup.md
|
231
255
|
homepage: https://github.com/Jesus/dropbox_api
|
232
256
|
licenses:
|
233
257
|
- MIT
|