dropbox_api 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +3 -1
- data/.yardopts +8 -1
- data/README.md +11 -14
- data/TODO.md +4 -0
- data/api_coverage.md +5 -4
- data/lib/dropbox_api.rb +9 -0
- data/lib/dropbox_api/client.rb +1 -0
- data/lib/dropbox_api/endpoints/files/copy.rb +0 -1
- data/lib/dropbox_api/endpoints/files/create_folder.rb +0 -1
- data/lib/dropbox_api/endpoints/files/delete.rb +0 -1
- data/lib/dropbox_api/endpoints/files/download.rb +0 -1
- data/lib/dropbox_api/endpoints/files/get_metadata.rb +0 -1
- data/lib/dropbox_api/endpoints/files/get_preview.rb +0 -1
- data/lib/dropbox_api/endpoints/files/get_temporary_link.rb +0 -1
- data/lib/dropbox_api/endpoints/files/get_thumbnail.rb +0 -1
- data/lib/dropbox_api/endpoints/files/list_folder.rb +0 -1
- data/lib/dropbox_api/endpoints/files/list_folder_continue.rb +0 -1
- data/lib/dropbox_api/endpoints/files/list_folder_get_latest_cursor.rb +17 -14
- data/lib/dropbox_api/endpoints/files/list_folder_longpoll.rb +5 -6
- data/lib/dropbox_api/endpoints/files/list_revisions.rb +0 -1
- data/lib/dropbox_api/endpoints/files/move.rb +0 -1
- data/lib/dropbox_api/endpoints/files/restore.rb +0 -1
- data/lib/dropbox_api/endpoints/files/save_url.rb +0 -1
- data/lib/dropbox_api/endpoints/files/save_url_check_job_status.rb +0 -1
- data/lib/dropbox_api/endpoints/files/search.rb +0 -1
- data/lib/dropbox_api/endpoints/files/upload.rb +0 -1
- data/lib/dropbox_api/endpoints/files/upload_session_append_v2.rb +33 -0
- data/lib/dropbox_api/endpoints/files/upload_session_finish.rb +26 -0
- data/lib/dropbox_api/endpoints/files/upload_session_start.rb +38 -0
- data/lib/dropbox_api/endpoints/sharing/add_file_member.rb +0 -1
- data/lib/dropbox_api/endpoints/sharing/add_folder_member.rb +0 -1
- data/lib/dropbox_api/endpoints/sharing/create_shared_link_with_settings.rb +3 -3
- data/lib/dropbox_api/endpoints/sharing/list_folder_members.rb +0 -1
- data/lib/dropbox_api/endpoints/sharing/list_shared_links.rb +0 -1
- data/lib/dropbox_api/endpoints/sharing/share_folder.rb +0 -1
- data/lib/dropbox_api/endpoints/users/get_account.rb +0 -1
- data/lib/dropbox_api/endpoints/users/get_account_batch.rb +0 -1
- data/lib/dropbox_api/endpoints/users/get_current_account.rb +0 -1
- data/lib/dropbox_api/endpoints/users/get_space_usage.rb +0 -1
- data/lib/dropbox_api/errors/basic_error.rb +3 -0
- data/lib/dropbox_api/errors/upload_session_finish_error.rb +9 -0
- data/lib/dropbox_api/errors/upload_session_lookup_error.rb +10 -0
- data/lib/dropbox_api/errors/upload_session_offset_error.rb +8 -0
- data/lib/dropbox_api/metadata/commit_info.rb +9 -0
- data/lib/dropbox_api/metadata/resource.rb +1 -1
- data/lib/dropbox_api/metadata/upload_session_cursor.rb +11 -0
- data/lib/dropbox_api/metadata/write_mode.rb +21 -15
- data/lib/dropbox_api/results/upload_session_start.rb +7 -0
- data/lib/dropbox_api/version.rb +1 -1
- data/yardoc/endpoint_handler.rb +67 -0
- data/yardoc/helpers/html_helper.rb +22 -0
- data/yardoc/rspec.rb +35 -0
- data/yardoc/templates/default/fulldoc/html/css/common.css +4 -0
- data/yardoc/templates/default/layout/html/setup.rb +0 -0
- data/yardoc/templates/default/method_details/html/specs.erb +22 -0
- data/yardoc/templates/default/method_details/setup.rb +4 -0
- data/yardoc/templates/default/method_details/text/specs.erb +9 -0
- metadata +19 -4
- data/api_reference.md +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c0eede08a0f815d30642620662824beb4772cd27
|
4
|
+
data.tar.gz: ffcd6a73b9f84613db886767ea931d86c23189b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9135f8db610192f4ec44b63b9133a61d06d0610f8c070732f8164e00f27ecb2a68c27b5aaf2b1092c44cb97cff980aaa2afca322146cbc07b9f6d86afff1a8c3
|
7
|
+
data.tar.gz: cc47310f7f6007517a1074137c5872c51c4f8da491f1ef09391c7a7d3678ae102e37c336af9cdaeddcb6f39da1601363b4f4f25ebf5c71285422f73086543d0c
|
data/.travis.yml
CHANGED
data/.yardopts
CHANGED
data/README.md
CHANGED
@@ -72,11 +72,11 @@ auth_bearer.token #=> "VofXAX8D..."
|
|
72
72
|
#### Standard OAuth 2 flow
|
73
73
|
|
74
74
|
This is what many web applications will use. The process is described in
|
75
|
-
Dropbox's [OAuth guide]
|
75
|
+
Dropbox's [OAuth guide]
|
76
|
+
(https://www.dropbox.com/developers/reference/oauth-guide#oauth-2-on-the-web).
|
76
77
|
|
77
78
|
If you have a Rails application, you might be interested in this [setup
|
78
|
-
|
79
|
-
|
79
|
+
guide](http://www.rubydoc.info/gems/dropbox_api/file/rails_setup.md).
|
80
80
|
|
81
81
|
### Performing API calls
|
82
82
|
|
@@ -98,14 +98,10 @@ result.has_more?
|
|
98
98
|
#=> false
|
99
99
|
```
|
100
100
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
- [Files](http://www.rubydoc.info/gems/dropbox_api/DropboxApi/Endpoints/Files)
|
107
|
-
- [Sharing](http://www.rubydoc.info/gems/dropbox_api/DropboxApi/Endpoints/Sharing)
|
108
|
-
- [Users](http://www.rubydoc.info/gems/dropbox_api/DropboxApi/Endpoints/Users)
|
101
|
+
The instance of `Client` we've initialized is the one you'll be using to
|
102
|
+
perform API calls. You can check the class' documentation to find
|
103
|
+
[all available endpoints]
|
104
|
+
(http://www.rubydoc.info/gems/dropbox_api/DropboxApi/Client)
|
109
105
|
|
110
106
|
## Dependencies
|
111
107
|
|
@@ -127,9 +123,10 @@ commits and tags, and push the `.gem` file to
|
|
127
123
|
|
128
124
|
## Contributing
|
129
125
|
|
130
|
-
Any help will be much appreciated.
|
131
|
-
of the [endpoints that are still pending]
|
132
|
-
|
126
|
+
Any help will be much appreciated. The easiest way to help is to implement one
|
127
|
+
or more of the [endpoints that are still pending]
|
128
|
+
(http://www.rubydoc.info/gems/dropbox_api/file/api_coverage.md). To see how the
|
129
|
+
endpoints are implemented, check out the `lib/dropbox_api/endpoints` folder.
|
133
130
|
|
134
131
|
If you want to help but you're unsure how to get started, please get in touch
|
135
132
|
by opening an issue.
|
data/TODO.md
CHANGED
@@ -31,6 +31,10 @@ TOKEN: VofXAX8DO1sAAAAAAAAEEyqrmzbYmFVaDQKj48yVUfhyhfOomXiG8emqP1xQGRnJ
|
|
31
31
|
|
32
32
|
# Release guide
|
33
33
|
|
34
|
+
Previous checks:
|
35
|
+
- CI passing?
|
36
|
+
|
37
|
+
Release process:
|
34
38
|
1. Bump version in `version.rb`.
|
35
39
|
2. Create tag and write release notes in Github.com.
|
36
40
|
3. `git fetch`
|
data/api_coverage.md
CHANGED
@@ -7,7 +7,8 @@ you need is missing. This document indicates what endpoints have been
|
|
7
7
|
implemented.
|
8
8
|
|
9
9
|
Full moon means fully implemented. Half moon means that the basic functionality
|
10
|
-
of the endpoint has been implemented but some options may be missing.
|
10
|
+
of the endpoint has been implemented but some options may be missing. Guess
|
11
|
+
what new moon means.
|
11
12
|
|
12
13
|
## Files namespace
|
13
14
|
|
@@ -42,11 +43,11 @@ API call | Status
|
|
42
43
|
`/search` | 🌔
|
43
44
|
`/upload` | 🌕
|
44
45
|
`/upload_session/append` | 🌑
|
45
|
-
`/upload_session/append_v2` |
|
46
|
-
`/upload_session/finish` |
|
46
|
+
`/upload_session/append_v2` | 🌕
|
47
|
+
`/upload_session/finish` | 🌕
|
47
48
|
`/upload_session/finish_batch` | 🌑
|
48
49
|
`/upload_session/finish_batch/check` | 🌑
|
49
|
-
`/upload_session/start` |
|
50
|
+
`/upload_session/start` | 🌕
|
50
51
|
|
51
52
|
## Sharing namespace
|
52
53
|
API call | Status
|
data/lib/dropbox_api.rb
CHANGED
@@ -40,7 +40,9 @@ require 'dropbox_api/metadata/folder_link'
|
|
40
40
|
require 'dropbox_api/metadata/shared_link'
|
41
41
|
require 'dropbox_api/metadata/space_allocation'
|
42
42
|
require 'dropbox_api/metadata/space_usage'
|
43
|
+
require 'dropbox_api/metadata/upload_session_cursor'
|
43
44
|
require 'dropbox_api/metadata/write_mode'
|
45
|
+
require 'dropbox_api/metadata/commit_info'
|
44
46
|
|
45
47
|
require 'dropbox_api/errors/http_error'
|
46
48
|
require 'dropbox_api/errors/basic_error'
|
@@ -71,6 +73,9 @@ require 'dropbox_api/errors/list_folder_longpoll_error'
|
|
71
73
|
require 'dropbox_api/errors/preview_error'
|
72
74
|
require 'dropbox_api/errors/add_member_selector_error'
|
73
75
|
require 'dropbox_api/errors/shared_folder_access_error'
|
76
|
+
require 'dropbox_api/errors/upload_session_offset_error'
|
77
|
+
require 'dropbox_api/errors/upload_session_lookup_error'
|
78
|
+
require 'dropbox_api/errors/upload_session_finish_error'
|
74
79
|
require 'dropbox_api/errors/upload_write_failed_error'
|
75
80
|
require 'dropbox_api/errors/upload_error'
|
76
81
|
require 'dropbox_api/errors/poll_error'
|
@@ -96,6 +101,7 @@ require 'dropbox_api/results/search_result'
|
|
96
101
|
require 'dropbox_api/results/share_folder_launch'
|
97
102
|
require 'dropbox_api/results/shared_folder_members'
|
98
103
|
require 'dropbox_api/results/void_result'
|
104
|
+
require 'dropbox_api/results/upload_session_start'
|
99
105
|
|
100
106
|
require 'dropbox_api/client'
|
101
107
|
require 'dropbox_api/connection_builder'
|
@@ -125,6 +131,9 @@ require 'dropbox_api/endpoints/files/save_url'
|
|
125
131
|
require 'dropbox_api/endpoints/files/save_url_check_job_status'
|
126
132
|
require 'dropbox_api/endpoints/files/search'
|
127
133
|
require 'dropbox_api/endpoints/files/upload'
|
134
|
+
require 'dropbox_api/endpoints/files/upload_session_start'
|
135
|
+
require 'dropbox_api/endpoints/files/upload_session_append_v2'
|
136
|
+
require 'dropbox_api/endpoints/files/upload_session_finish'
|
128
137
|
require 'dropbox_api/endpoints/sharing/add_file_member'
|
129
138
|
require 'dropbox_api/endpoints/sharing/add_folder_member'
|
130
139
|
require 'dropbox_api/endpoints/sharing/list_folder_members'
|
data/lib/dropbox_api/client.rb
CHANGED
@@ -5,7 +5,6 @@ module DropboxApi::Endpoints::Files
|
|
5
5
|
ResultType = DropboxApi::Metadata::Resource
|
6
6
|
ErrorType = DropboxApi::Errors::RelocationError
|
7
7
|
|
8
|
-
# @method copy(from, to)
|
9
8
|
# Copy a file or folder to a different location in the user's Dropbox.
|
10
9
|
# If the source path is a folder all its contents will be copied.
|
11
10
|
#
|
@@ -5,7 +5,6 @@ module DropboxApi::Endpoints::Files
|
|
5
5
|
ResultType = DropboxApi::Metadata::Folder
|
6
6
|
ErrorType = DropboxApi::Errors::CreateFolderError
|
7
7
|
|
8
|
-
# @method create_folder(path)
|
9
8
|
# Create a folder at a given path.
|
10
9
|
#
|
11
10
|
# @param path [String] Path in the user's Dropbox to create.
|
@@ -5,7 +5,6 @@ module DropboxApi::Endpoints::Files
|
|
5
5
|
ResultType = DropboxApi::Metadata::Resource
|
6
6
|
ErrorType = DropboxApi::Errors::DeleteError
|
7
7
|
|
8
|
-
# @method delete(path)
|
9
8
|
# Delete the file or folder at a given path.
|
10
9
|
#
|
11
10
|
# If the path is a folder, all its contents will be deleted too.
|
@@ -5,7 +5,6 @@ module DropboxApi::Endpoints::Files
|
|
5
5
|
ResultType = DropboxApi::Metadata::File
|
6
6
|
ErrorType = DropboxApi::Errors::PreviewError
|
7
7
|
|
8
|
-
# @method get_preview(path)
|
9
8
|
# Get a preview for a file. Currently previews are only generated for the
|
10
9
|
# files with the following extensions: .doc, .docx, .docm, .ppt, .pps,
|
11
10
|
# .ppsx, .ppsm, .pptx, .pptm, .xls, .xlsx, .xlsm, .rtf
|
@@ -5,7 +5,6 @@ module DropboxApi::Endpoints::Files
|
|
5
5
|
ResultType = DropboxApi::Results::GetTemporaryLinkResult
|
6
6
|
ErrorType = DropboxApi::Errors::GetMetadataError
|
7
7
|
|
8
|
-
# @method get_temporary_link(path)
|
9
8
|
# Get a temporary link to stream content of a file. This link will expire
|
10
9
|
# in four hours and afterwards you will get 410 Gone. Content-Type of the
|
11
10
|
# link is determined automatically by the file's mime type.
|
@@ -8,7 +8,6 @@ module DropboxApi::Endpoints::Files
|
|
8
8
|
ResultType = DropboxApi::Results::ListFolderResult
|
9
9
|
ErrorType = DropboxApi::Errors::ListFolderContinueError
|
10
10
|
|
11
|
-
# @method list_folder_continue(cursor)
|
12
11
|
# Once a cursor has been retrieved from `list_folder`, use this to paginate
|
13
12
|
# through all files and retrieve updates to the folder.
|
14
13
|
#
|
@@ -7,21 +7,24 @@ module DropboxApi::Endpoints::Files
|
|
7
7
|
|
8
8
|
include DropboxApi::Endpoints::OptionsValidator
|
9
9
|
|
10
|
-
#
|
11
|
-
#
|
12
|
-
#
|
13
|
-
#
|
14
|
-
#
|
10
|
+
# A way to quickly get a cursor for the folder's state. Unlike
|
11
|
+
# {DropboxApi::API#list_folder}, this doesn't return any entries. This
|
12
|
+
# endpoint is for app which only needs to know about new files and
|
13
|
+
# modifications and doesn't need to know about files that already exist in
|
14
|
+
# Dropbox.
|
15
15
|
#
|
16
|
-
# @
|
17
|
-
# @option recursive [Boolean] If
|
18
|
-
# applied recursively to all subfolders and the response will
|
19
|
-
# contents of all subfolders. The default for this field is
|
20
|
-
#
|
21
|
-
#
|
22
|
-
#
|
23
|
-
#
|
24
|
-
#
|
16
|
+
# @option options path [String] The path to the folder you want to read.
|
17
|
+
# @option options recursive [Boolean] If +true+, the list folder operation
|
18
|
+
# will be applied recursively to all subfolders and the response will
|
19
|
+
# contain contents of all subfolders. The default for this field is
|
20
|
+
# +false+.
|
21
|
+
# @option options include_media_info [Boolean] If +true+,
|
22
|
+
# +FileMetadata.media_info+ is set for photo and video. The default for
|
23
|
+
# this field is +false+.
|
24
|
+
# @option options include_deleted [Boolean] If +true+,
|
25
|
+
# {DropboxApi::Metadata::DeletedMetadata} will be returned for deleted
|
26
|
+
# file or folder, otherwise {DropboxApi::Errors::LookupError} will be
|
27
|
+
# returned. The default for this field is +false+.
|
25
28
|
add_endpoint :list_folder_get_latest_cursor do |options = {}|
|
26
29
|
validate_options([
|
27
30
|
:path,
|
@@ -7,7 +7,6 @@ module DropboxApi::Endpoints::Files
|
|
7
7
|
|
8
8
|
include DropboxApi::Endpoints::OptionsValidator
|
9
9
|
|
10
|
-
# @method list_folder_longpoll(path, options = {})
|
11
10
|
# A longpoll endpoint to wait for changes on an account. In conjunction
|
12
11
|
# with list_folder, this call gives you a low-latency way to monitor an
|
13
12
|
# account for file changes. The connection will block until there are
|
@@ -17,11 +16,11 @@ module DropboxApi::Endpoints::Files
|
|
17
16
|
#
|
18
17
|
# @param cursor [String] A cursor as returned by list_folder or
|
19
18
|
# list_folder_continue.
|
20
|
-
# @option timeout [Numeric] A timeout in seconds. The request will
|
21
|
-
# for at most this length of time, plus up to 90 seconds of random
|
22
|
-
# added to avoid the thundering herd problem. Care should be taken
|
23
|
-
# using this parameter, as some network infrastructure does not
|
24
|
-
# long timeouts. The default for this field is 30.
|
19
|
+
# @option options timeout [Numeric] A timeout in seconds. The request will
|
20
|
+
# block for at most this length of time, plus up to 90 seconds of random
|
21
|
+
# jitter added to avoid the thundering herd problem. Care should be taken
|
22
|
+
# when using this parameter, as some network infrastructure does not
|
23
|
+
# support long timeouts. The default for this field is 30.
|
25
24
|
add_endpoint :list_folder_longpoll do |cursor, options = {}|
|
26
25
|
validate_options([
|
27
26
|
:timeout
|
@@ -7,7 +7,6 @@ module DropboxApi::Endpoints::Files
|
|
7
7
|
|
8
8
|
include DropboxApi::Endpoints::OptionsValidator
|
9
9
|
|
10
|
-
# @method move(from, to, options)
|
11
10
|
# Move a file or folder to a different location in the user's Dropbox.
|
12
11
|
#
|
13
12
|
# If the source path is a folder all its contents will be moved.
|
@@ -5,7 +5,6 @@ module DropboxApi::Endpoints::Files
|
|
5
5
|
ResultType = DropboxApi::Metadata::File
|
6
6
|
ErrorType = DropboxApi::Errors::RestoreError
|
7
7
|
|
8
|
-
# @method restore(path, rev)
|
9
8
|
# Restore a file to a specific revision
|
10
9
|
#
|
11
10
|
# @param path [String] The path to the file you want to restore.
|
@@ -5,7 +5,6 @@ module DropboxApi::Endpoints::Files
|
|
5
5
|
ResultType = DropboxApi::Results::SaveUrlResult
|
6
6
|
ErrorType = DropboxApi::Errors::SaveUrlError
|
7
7
|
|
8
|
-
# @method save_url(path, url)
|
9
8
|
# Save a specified URL into a file in user's Dropbox. If the given path
|
10
9
|
# already exists, the file will be renamed to avoid the conflict (e.g.
|
11
10
|
# myfile (1).txt).
|
@@ -5,7 +5,6 @@ module DropboxApi::Endpoints::Files
|
|
5
5
|
ResultType = DropboxApi::Results::SaveUrlJobStatus
|
6
6
|
ErrorType = DropboxApi::Errors::PollError
|
7
7
|
|
8
|
-
# @method save_url_check_job_status(job_id)
|
9
8
|
# Check the status of a +save_url+ job.
|
10
9
|
#
|
11
10
|
# @param job_id [String] Id of the asynchronous job. This is the value of
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module DropboxApi::Endpoints::Files
|
2
|
+
class UploadSessionAppendV2 < DropboxApi::Endpoints::ContentUpload
|
3
|
+
Method = :post
|
4
|
+
Path = "/2/files/upload_session/append_v2".freeze
|
5
|
+
ResultType = DropboxApi::Results::VoidResult
|
6
|
+
ErrorType = DropboxApi::Errors::UploadSessionLookupError
|
7
|
+
|
8
|
+
include DropboxApi::Endpoints::OptionsValidator
|
9
|
+
|
10
|
+
# Append more data to an upload session.
|
11
|
+
#
|
12
|
+
# When the parameter +close+ is set, this call will close the session.
|
13
|
+
#
|
14
|
+
# A single request should not upload more than 150 MB of file contents.
|
15
|
+
#
|
16
|
+
# @param cursor [DropboxApi::Metadata::UploadSessionCursor] Contains the
|
17
|
+
# upload session ID and the offset.
|
18
|
+
# @option options close [Boolean] If +true+, the current session will be
|
19
|
+
# closed, at which point you won't be able to call
|
20
|
+
# {Client#upload_session_append_v2} anymore with the current session.
|
21
|
+
# The default for this field is +false+.
|
22
|
+
# @see UploadSessionCursor
|
23
|
+
add_endpoint :upload_session_append_v2 do |cursor, content, options = {}|
|
24
|
+
validate_options([
|
25
|
+
:close
|
26
|
+
], options)
|
27
|
+
|
28
|
+
perform_request(options.merge({
|
29
|
+
:cursor => cursor.to_hash
|
30
|
+
}), content)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module DropboxApi::Endpoints::Files
|
2
|
+
class UploadSessionFinish < DropboxApi::Endpoints::ContentUpload
|
3
|
+
Method = :post
|
4
|
+
Path = "/2/files/upload_session/finish".freeze
|
5
|
+
ResultType = DropboxApi::Metadata::File
|
6
|
+
ErrorType = DropboxApi::Errors::UploadSessionFinishError
|
7
|
+
|
8
|
+
include DropboxApi::Endpoints::OptionsValidator
|
9
|
+
|
10
|
+
# Finish an upload session and save the uploaded data to the given file
|
11
|
+
# path.
|
12
|
+
#
|
13
|
+
# A single request should not upload more than 150 MB of file contents.
|
14
|
+
#
|
15
|
+
# @param cursor [DropboxApi::Metadata::UploadSessionCursor] Contains the
|
16
|
+
# upload session ID and the offset.
|
17
|
+
# @param commit [DropboxApi::Metadata::CommitInfo] Contains the path and
|
18
|
+
# other optional modifiers for the commit.
|
19
|
+
add_endpoint :upload_session_finish do |cursor, commit, content = nil|
|
20
|
+
perform_request({
|
21
|
+
:cursor => cursor.to_hash,
|
22
|
+
:commit => commit.to_hash
|
23
|
+
}, content)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module DropboxApi::Endpoints::Files
|
2
|
+
class UploadSessionStart < DropboxApi::Endpoints::ContentUpload
|
3
|
+
Method = :post
|
4
|
+
Path = "/2/files/upload_session/start".freeze
|
5
|
+
ResultType = DropboxApi::Results::UploadSessionStart
|
6
|
+
ErrorType = nil
|
7
|
+
|
8
|
+
include DropboxApi::Endpoints::OptionsValidator
|
9
|
+
|
10
|
+
# Upload sessions allow you to upload a single file in one or more
|
11
|
+
# requests, for example where the size of the file is greater than 150 MB.
|
12
|
+
#
|
13
|
+
# This call starts a new upload session with the given data. You can then
|
14
|
+
# use {Client#upload_session_append_v2} to add more data and
|
15
|
+
# {Client#upload_session_finish} to save all the data to a file in Dropbox.
|
16
|
+
#
|
17
|
+
# A single request should not upload more than 150 MB of file contents.
|
18
|
+
#
|
19
|
+
# @option options close [Boolean] If +true+, the current session will be
|
20
|
+
# closed, at which point you won't be able to call
|
21
|
+
# {Client#upload_session_append_v2} anymore with the current session.
|
22
|
+
# The default for this field is +false+.
|
23
|
+
# @return [DropboxApi::Metadata::UploadSessionCursor] The session cursor
|
24
|
+
# that you can use to continue the upload afterwards.
|
25
|
+
add_endpoint :upload_session_start do |content, options = {}|
|
26
|
+
validate_options([
|
27
|
+
:close
|
28
|
+
], options)
|
29
|
+
|
30
|
+
session = perform_request(options, content)
|
31
|
+
|
32
|
+
DropboxApi::Metadata::UploadSessionCursor.new({
|
33
|
+
"session_id" => session.session_id,
|
34
|
+
"offset" => content.size
|
35
|
+
})
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -7,7 +7,6 @@ module DropboxApi::Endpoints::Sharing
|
|
7
7
|
|
8
8
|
include DropboxApi::Endpoints::OptionsValidator
|
9
9
|
|
10
|
-
# @method add_file_member(file, members, options = {})
|
11
10
|
# Adds specified members to a file.
|
12
11
|
#
|
13
12
|
# The +members+ parameter can be an +Array+ or a single member element. Each
|
@@ -7,7 +7,6 @@ module DropboxApi::Endpoints::Sharing
|
|
7
7
|
|
8
8
|
include DropboxApi::Endpoints::OptionsValidator
|
9
9
|
|
10
|
-
# @method add_folder_member(folder_id, members, options = {})
|
11
10
|
# Allows an owner or editor (if the ACL update policy allows) of a shared
|
12
11
|
# folder to add another member.
|
13
12
|
#
|
@@ -5,14 +5,14 @@ module DropboxApi::Endpoints::Sharing
|
|
5
5
|
ResultType = DropboxApi::Metadata::SharedLink
|
6
6
|
ErrorType = DropboxApi::Errors::CreateSharedLinkWithSettingsError
|
7
7
|
|
8
|
-
# @method create_shared_link_with_settings(path, settings = {})
|
9
8
|
# Create a shared link with custom settings. If no settings are given then
|
10
9
|
# the default visibility is :public. (The resolved
|
11
10
|
# visibility, though, may depend on other aspects such as team and shared
|
12
11
|
# folder settings).
|
13
12
|
#
|
14
|
-
# @param path [String]
|
15
|
-
# @
|
13
|
+
# @param path [String] The path to be shared by the shared link.
|
14
|
+
# @param settings [SharedLinkSettings] The requested settings for the newly
|
15
|
+
# created shared link This field is optional.
|
16
16
|
# @return [DropboxApi::Metadata::SharedLink]
|
17
17
|
add_endpoint :create_shared_link_with_settings do |path, settings = {}|
|
18
18
|
# NOTE: This endpoint accepts an additional option `settings` which
|
@@ -7,7 +7,6 @@ module DropboxApi::Endpoints::Sharing
|
|
7
7
|
|
8
8
|
include DropboxApi::Endpoints::OptionsValidator
|
9
9
|
|
10
|
-
# @method list_folder_members(folder_id, actions = [], options = {})
|
11
10
|
# Returns shared folder membership by its folder ID.
|
12
11
|
#
|
13
12
|
# Apps must have full Dropbox access to use this endpoint.
|
@@ -5,7 +5,6 @@ module DropboxApi::Endpoints::Users
|
|
5
5
|
ResultType = DropboxApi::Metadata::BasicAccount
|
6
6
|
ErrorType = DropboxApi::Errors::GetAccountError
|
7
7
|
|
8
|
-
# @method get_account(account_id)
|
9
8
|
# Get information about a user's account.
|
10
9
|
#
|
11
10
|
# @param account_id [String] A user's account identifier.
|
@@ -5,7 +5,6 @@ module DropboxApi::Endpoints::Users
|
|
5
5
|
ResultType = DropboxApi::Results::BasicAccountBatch
|
6
6
|
ErrorType = DropboxApi::Errors::GetAccountError
|
7
7
|
|
8
|
-
# @method get_account_batch(account_ids)
|
9
8
|
# Get information about multiple user accounts. At most 300 accounts may
|
10
9
|
# be queried per request.
|
11
10
|
#
|
@@ -5,7 +5,6 @@ module DropboxApi::Endpoints::Users
|
|
5
5
|
ResultType = DropboxApi::Metadata::BasicAccount
|
6
6
|
ErrorType = nil
|
7
7
|
|
8
|
-
# @method get_current_account
|
9
8
|
# Get information about the current user's account.
|
10
9
|
#
|
11
10
|
# @return [BasicAccount] Detailed information about the current user's account.
|
@@ -5,7 +5,6 @@ module DropboxApi::Endpoints::Users
|
|
5
5
|
ResultType = DropboxApi::Metadata::SpaceUsage
|
6
6
|
ErrorType = nil
|
7
7
|
|
8
|
-
# @method get_space_usage
|
9
8
|
# Get the space usage information for the current user's account.
|
10
9
|
#
|
11
10
|
# @return [SpaceUsage] Information about a user's space usage and quota.
|
@@ -34,6 +34,8 @@ module DropboxApi::Errors
|
|
34
34
|
class CantNestSharedFolderError < BasicError; end
|
35
35
|
class CantShareOutsideTeamError < BasicError; end
|
36
36
|
class ContainsSharedFolderError < BasicError; end
|
37
|
+
class CursorClosedError < BasicError; end
|
38
|
+
class CursorNotClosedError < BasicError; end
|
37
39
|
class DisallowedNameError < BasicError; end
|
38
40
|
class DisallowedSharedLinkPolicyError < BasicError; end
|
39
41
|
class DownloadFailedError < BasicError; end
|
@@ -83,6 +85,7 @@ module DropboxApi::Errors
|
|
83
85
|
class TooManyFilesError < BasicError; end
|
84
86
|
class TooManyMembersError < BasicError; end
|
85
87
|
class TooManyPendingInvitesError < BasicError; end
|
88
|
+
class TooManySharedFolderTargetsError < BasicError; end
|
86
89
|
class UnmountedError < BasicError; end
|
87
90
|
class UnsupportedContentError < BasicError; end
|
88
91
|
class UnsupportedExtensionError < BasicError; end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
module DropboxApi::Errors
|
2
|
+
class UploadSessionLookupError < BasicError
|
3
|
+
ErrorSubtypes = {
|
4
|
+
:not_found => NotFoundError,
|
5
|
+
:incorrect_offset => UploadSessionOffsetError,
|
6
|
+
:closed => CursorClosedError,
|
7
|
+
:not_closed => CursorNotClosedError
|
8
|
+
}.freeze
|
9
|
+
end
|
10
|
+
end
|
@@ -2,7 +2,7 @@ module DropboxApi::Metadata
|
|
2
2
|
# This class is used as an adapter so we can create an object of the pertinent
|
3
3
|
# class when we need to infer the type from the data.
|
4
4
|
#
|
5
|
-
# For example, calling Resource.new({".tag" => "file", :name => ...}) will
|
5
|
+
# For example, calling +Resource.new({".tag" => "file", :name => ...})+ will
|
6
6
|
# instantiate a `File` object.
|
7
7
|
#
|
8
8
|
# So this could initalize an object of either `File`, `Folder` or `Deleted`.
|
@@ -33,42 +33,48 @@ module DropboxApi::Metadata
|
|
33
33
|
|
34
34
|
# @example
|
35
35
|
# DropboxApi::Metadata::WriteMode.new :add
|
36
|
-
#
|
37
36
|
# @example
|
38
37
|
# DropboxApi::Metadata::WriteMode.new :overwrite
|
39
|
-
#
|
40
38
|
# @example
|
41
39
|
# DropboxApi::Metadata::WriteMode.new :update, "a1c10ce0dd78"
|
42
|
-
|
43
|
-
|
44
|
-
|
40
|
+
# @example
|
41
|
+
# DropboxApi::Metadata::WriteMode.new({
|
42
|
+
# ".tag"=>"update",
|
43
|
+
# "update"=>"a1c10ce0dd78"
|
44
|
+
# })
|
45
|
+
def initialize(write_mode, options = nil)
|
46
|
+
case write_mode
|
47
|
+
when Hash
|
48
|
+
@write_mode = write_mode
|
49
|
+
when String, ::Symbol
|
50
|
+
@write_mode = {
|
51
|
+
".tag" => write_mode
|
52
|
+
}
|
53
|
+
@write_mode[write_mode.to_s] = options unless options.nil?
|
54
|
+
end
|
55
|
+
@write_mode[".tag"] = @write_mode[".tag"].to_sym
|
45
56
|
|
46
57
|
check_validity
|
47
58
|
end
|
48
59
|
|
49
60
|
def check_validity
|
50
|
-
unless valid_mode? @write_mode
|
51
|
-
raise ArgumentError, "Invalid write mode: #{
|
61
|
+
unless valid_mode? @write_mode[".tag"]
|
62
|
+
raise ArgumentError, "Invalid write mode: #{@write_mode[".tag"]}"
|
52
63
|
end
|
53
64
|
|
54
|
-
if @write_mode == :update && @
|
65
|
+
if @write_mode[".tag"] == :update && @write_mode["update"].nil?
|
55
66
|
raise ArgumentError, "Mode `:update` expects a `rev` number"
|
56
67
|
end
|
57
68
|
end
|
58
69
|
|
59
70
|
def to_hash
|
60
|
-
|
61
|
-
".tag" => @write_mode
|
62
|
-
}
|
63
|
-
hash["update"] = @rev if @write_mode == :update
|
64
|
-
|
65
|
-
hash
|
71
|
+
@write_mode
|
66
72
|
end
|
67
73
|
|
68
74
|
private
|
69
75
|
|
70
76
|
def valid_mode?(value)
|
71
|
-
VALID_WRITE_MODES.include? value
|
77
|
+
VALID_WRITE_MODES.include? value
|
72
78
|
end
|
73
79
|
end
|
74
80
|
end
|
data/lib/dropbox_api/version.rb
CHANGED
@@ -0,0 +1,67 @@
|
|
1
|
+
module YARD
|
2
|
+
class EndpointHandler < Handlers::Ruby::MethodHandler
|
3
|
+
handles method_call(:add_endpoint)
|
4
|
+
namespace_only
|
5
|
+
|
6
|
+
process do
|
7
|
+
register(
|
8
|
+
CodeObjects::MethodObject.new(namespace, name) do |m|
|
9
|
+
m.parameters = parameters
|
10
|
+
end,
|
11
|
+
CodeObjects::MethodObject.new(P("DropboxApi::Client"), name) do |m|
|
12
|
+
m.parameters = parameters
|
13
|
+
m.group = namespace.namespace.name.downcase
|
14
|
+
end
|
15
|
+
)
|
16
|
+
end
|
17
|
+
|
18
|
+
def name
|
19
|
+
statement.parameters.first.jump(:tstring_content, :ident).source
|
20
|
+
end
|
21
|
+
|
22
|
+
def parameters
|
23
|
+
# This method is taken from YARD, ideally we would just use it but I
|
24
|
+
# couldn't find a way to invoke it from here, so I had to copy it over.
|
25
|
+
# It would be nice to get rid of this method and use YARD's
|
26
|
+
# implementation instead.
|
27
|
+
#
|
28
|
+
# Reference to original code:
|
29
|
+
# YARD gem (0.9.5): lib/yard/handlers/ruby/method_handler.rb
|
30
|
+
# Github: https://git.io/vMLQp
|
31
|
+
args = statement.jump(:block_var).jump(:params)
|
32
|
+
return [] unless args.is_a? YARD::Parser::Ruby::ParameterNode
|
33
|
+
|
34
|
+
params = []
|
35
|
+
|
36
|
+
if args.unnamed_required_params
|
37
|
+
params += args.unnamed_required_params.map {|a| [a.source, nil] }
|
38
|
+
end
|
39
|
+
|
40
|
+
if args.unnamed_optional_params
|
41
|
+
params += args.unnamed_optional_params.map do |a|
|
42
|
+
[a[0].source, a[1].source]
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
params << ['*' + args.splat_param.source, nil] if args.splat_param
|
47
|
+
|
48
|
+
if args.unnamed_end_params
|
49
|
+
params += args.unnamed_end_params.map {|a| [a.source, nil] }
|
50
|
+
end
|
51
|
+
|
52
|
+
if args.named_params
|
53
|
+
params += args.named_params.map do |a|
|
54
|
+
[a[0].source, a[1] ? a[1].source : nil]
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
if args.double_splat_param
|
59
|
+
params << ['**' + args.double_splat_param.source, nil]
|
60
|
+
end
|
61
|
+
|
62
|
+
params << ['&' + args.block_param.source, nil] if args.block_param
|
63
|
+
|
64
|
+
params
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module YARD
|
2
|
+
module Templates::Helpers
|
3
|
+
module HtmlHelper
|
4
|
+
def unindent(str)
|
5
|
+
indent_size = str.split("\n").map do |line|
|
6
|
+
line = untab(line)
|
7
|
+
white_span = line[/\A(\s+)/]
|
8
|
+
|
9
|
+
white_span.nil? ? nil : white_span.size
|
10
|
+
end.compact.min
|
11
|
+
|
12
|
+
str.gsub(/^( ){#{indent_size}}/, '')
|
13
|
+
end
|
14
|
+
|
15
|
+
def untab(str, tab_size = 2)
|
16
|
+
tab_space = 2
|
17
|
+
|
18
|
+
str.gsub("\t", " " * tab_space)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/yardoc/rspec.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
YARD::Templates::Engine.register_template_path File.expand_path("#{__FILE__}/../templates")
|
2
|
+
|
3
|
+
class RSpecDescribeHandler < YARD::Handlers::Ruby::Base
|
4
|
+
handles method_call(:describe)
|
5
|
+
|
6
|
+
def process
|
7
|
+
objname = statement.parameters.first.jump(:string_content).source
|
8
|
+
if statement.parameters[1]
|
9
|
+
src = statement.parameters[1].jump(:string_content).source
|
10
|
+
objname += (src[0] == "#" ? "" : "::") + src
|
11
|
+
end
|
12
|
+
obj = {:spec => owner ? (owner[:spec] || "") : ""}
|
13
|
+
obj[:spec] += objname
|
14
|
+
parse_block(statement.last.last, owner: obj)
|
15
|
+
rescue YARD::Handlers::NamespaceMissingError
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class RSpecItHandler < YARD::Handlers::Ruby::Base
|
20
|
+
handles method_call(:it)
|
21
|
+
|
22
|
+
def process
|
23
|
+
return if owner.nil?
|
24
|
+
obj = P(owner[:spec])
|
25
|
+
return if obj.is_a?(Proxy)
|
26
|
+
|
27
|
+
obj[:specifications] ||= []
|
28
|
+
obj[:specifications] << {
|
29
|
+
name: statement.parameters.first.jump(:string_content).source,
|
30
|
+
file: statement.file,
|
31
|
+
line: statement.line,
|
32
|
+
source: statement.last.last.source
|
33
|
+
}
|
34
|
+
end
|
35
|
+
end
|
File without changes
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<% if object[:specifications] %>
|
2
|
+
<div class="tags">
|
3
|
+
<p class="tag_title">Specifications:</p>
|
4
|
+
<ul class="specs">
|
5
|
+
<% for spec in object[:specifications] %>
|
6
|
+
<li>
|
7
|
+
<%=h spec[:name] %>
|
8
|
+
<table class="source_code test_code">
|
9
|
+
<tr>
|
10
|
+
<td>
|
11
|
+
<pre class="lines"><%= "\n\n\n" %><%= spec[:source].split("\n").size.times.to_a.map {|i| spec[:line] + i }.join("\n") %></pre>
|
12
|
+
</td>
|
13
|
+
<td>
|
14
|
+
<pre class="code"><span class="info file"># File '<%= h spec[:file] %>', line <%= object.line %></span><%= "\n\n" %><%= html_syntax_highlight(unindent(spec[:source])) %></pre>
|
15
|
+
</td>
|
16
|
+
</tr>
|
17
|
+
</table>
|
18
|
+
</li>
|
19
|
+
<% end %>
|
20
|
+
</ul>
|
21
|
+
</div>
|
22
|
+
<% end %>
|
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.5
|
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:
|
11
|
+
date: 2017-01-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -132,7 +132,6 @@ files:
|
|
132
132
|
- Rakefile
|
133
133
|
- TODO.md
|
134
134
|
- api_coverage.md
|
135
|
-
- api_reference.md
|
136
135
|
- bin/console
|
137
136
|
- bin/setup
|
138
137
|
- dropbox_api.gemspec
|
@@ -162,6 +161,9 @@ files:
|
|
162
161
|
- lib/dropbox_api/endpoints/files/save_url_check_job_status.rb
|
163
162
|
- lib/dropbox_api/endpoints/files/search.rb
|
164
163
|
- lib/dropbox_api/endpoints/files/upload.rb
|
164
|
+
- lib/dropbox_api/endpoints/files/upload_session_append_v2.rb
|
165
|
+
- lib/dropbox_api/endpoints/files/upload_session_finish.rb
|
166
|
+
- lib/dropbox_api/endpoints/files/upload_session_start.rb
|
165
167
|
- lib/dropbox_api/endpoints/options_validator.rb
|
166
168
|
- lib/dropbox_api/endpoints/rpc.rb
|
167
169
|
- lib/dropbox_api/endpoints/rpc_notify.rb
|
@@ -208,6 +210,9 @@ files:
|
|
208
210
|
- lib/dropbox_api/errors/sharing_user_error.rb
|
209
211
|
- lib/dropbox_api/errors/too_many_requests_error.rb
|
210
212
|
- lib/dropbox_api/errors/upload_error.rb
|
213
|
+
- lib/dropbox_api/errors/upload_session_finish_error.rb
|
214
|
+
- lib/dropbox_api/errors/upload_session_lookup_error.rb
|
215
|
+
- lib/dropbox_api/errors/upload_session_offset_error.rb
|
211
216
|
- lib/dropbox_api/errors/upload_write_failed_error.rb
|
212
217
|
- lib/dropbox_api/errors/write_conflict_error.rb
|
213
218
|
- lib/dropbox_api/errors/write_error.rb
|
@@ -216,6 +221,7 @@ files:
|
|
216
221
|
- lib/dropbox_api/metadata/add_member.rb
|
217
222
|
- lib/dropbox_api/metadata/base.rb
|
218
223
|
- lib/dropbox_api/metadata/basic_account.rb
|
224
|
+
- lib/dropbox_api/metadata/commit_info.rb
|
219
225
|
- lib/dropbox_api/metadata/deleted.rb
|
220
226
|
- lib/dropbox_api/metadata/field.rb
|
221
227
|
- lib/dropbox_api/metadata/file.rb
|
@@ -241,6 +247,7 @@ files:
|
|
241
247
|
- lib/dropbox_api/metadata/symbol.rb
|
242
248
|
- lib/dropbox_api/metadata/team.rb
|
243
249
|
- lib/dropbox_api/metadata/team_member_info.rb
|
250
|
+
- lib/dropbox_api/metadata/upload_session_cursor.rb
|
244
251
|
- lib/dropbox_api/metadata/write_mode.rb
|
245
252
|
- lib/dropbox_api/middleware/decode_result.rb
|
246
253
|
- lib/dropbox_api/result_builder.rb
|
@@ -259,9 +266,18 @@ files:
|
|
259
266
|
- lib/dropbox_api/results/search_result.rb
|
260
267
|
- lib/dropbox_api/results/share_folder_launch.rb
|
261
268
|
- lib/dropbox_api/results/shared_folder_members.rb
|
269
|
+
- lib/dropbox_api/results/upload_session_start.rb
|
262
270
|
- lib/dropbox_api/results/void_result.rb
|
263
271
|
- lib/dropbox_api/version.rb
|
264
272
|
- rails_setup.md
|
273
|
+
- yardoc/endpoint_handler.rb
|
274
|
+
- yardoc/helpers/html_helper.rb
|
275
|
+
- yardoc/rspec.rb
|
276
|
+
- yardoc/templates/default/fulldoc/html/css/common.css
|
277
|
+
- yardoc/templates/default/layout/html/setup.rb
|
278
|
+
- yardoc/templates/default/method_details/html/specs.erb
|
279
|
+
- yardoc/templates/default/method_details/setup.rb
|
280
|
+
- yardoc/templates/default/method_details/text/specs.erb
|
265
281
|
homepage: https://github.com/Jesus/dropbox_api
|
266
282
|
licenses:
|
267
283
|
- MIT
|
@@ -287,4 +303,3 @@ signing_key:
|
|
287
303
|
specification_version: 4
|
288
304
|
summary: Library for communicating with Dropbox API v2
|
289
305
|
test_files: []
|
290
|
-
has_rdoc: yard
|
data/api_reference.md
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
# @title API Reference
|
2
|
-
|
3
|
-
{render:DropboxApi::Endpoints::Files::Copy#copy}
|
4
|
-
{render:DropboxApi::Endpoints::Files::CreateFolder#create_folder}
|
5
|
-
{render:DropboxApi::Endpoints::Files::Delete#delete}
|
6
|
-
{render:DropboxApi::Endpoints::Files::Download#download}
|
7
|
-
{render:DropboxApi::Endpoints::Files::GetMetadata#get_metadata}
|
8
|
-
{render:DropboxApi::Endpoints::Files::GetPreview#get_preview}
|
9
|
-
{render:DropboxApi::Endpoints::Files::GetTemporaryLink#get_temporary_link}
|
10
|
-
{render:DropboxApi::Endpoints::Files::GetThumbnail#get_thumbnail}
|
11
|
-
{render:DropboxApi::Endpoints::Files::ListFolder#list_folder}
|
12
|
-
{render:DropboxApi::Endpoints::Files::ListFolderContinue#list_folder_continue}
|
13
|
-
{render:DropboxApi::Endpoints::Files::ListFolderGetLatestCursor#list_folder_get_latest_cursor}
|
14
|
-
{render:DropboxApi::Endpoints::Files::ListFolderLongpoll#list_folder_longpoll}
|
15
|
-
{render:DropboxApi::Endpoints::Files::ListRevisions#list_revisions}
|
16
|
-
{render:DropboxApi::Endpoints::Files::Move#move}
|
17
|
-
{render:DropboxApi::Endpoints::Files::Restore#restore}
|
18
|
-
{render:DropboxApi::Endpoints::Files::Search#search}
|
19
|
-
{render:DropboxApi::Endpoints::Files::Upload#upload}
|
20
|
-
|
21
|
-
{render:DropboxApi::Endpoints::Sharing::AddFolderMember#add_folder_member}
|
22
|
-
{render:DropboxApi::Endpoints::Sharing::CreateSharedLinkWithSettings#create_shared_link_with_settings}
|
23
|
-
{render:DropboxApi::Endpoints::Sharing::ListFolderMembers#list_folder_members}
|
24
|
-
{render:DropboxApi::Endpoints::Sharing::ListSharedLinks#list_shared_links}
|
25
|
-
{render:DropboxApi::Endpoints::Sharing::ShareFolder#share_folder}
|