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.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -1
  3. data/.yardopts +8 -1
  4. data/README.md +11 -14
  5. data/TODO.md +4 -0
  6. data/api_coverage.md +5 -4
  7. data/lib/dropbox_api.rb +9 -0
  8. data/lib/dropbox_api/client.rb +1 -0
  9. data/lib/dropbox_api/endpoints/files/copy.rb +0 -1
  10. data/lib/dropbox_api/endpoints/files/create_folder.rb +0 -1
  11. data/lib/dropbox_api/endpoints/files/delete.rb +0 -1
  12. data/lib/dropbox_api/endpoints/files/download.rb +0 -1
  13. data/lib/dropbox_api/endpoints/files/get_metadata.rb +0 -1
  14. data/lib/dropbox_api/endpoints/files/get_preview.rb +0 -1
  15. data/lib/dropbox_api/endpoints/files/get_temporary_link.rb +0 -1
  16. data/lib/dropbox_api/endpoints/files/get_thumbnail.rb +0 -1
  17. data/lib/dropbox_api/endpoints/files/list_folder.rb +0 -1
  18. data/lib/dropbox_api/endpoints/files/list_folder_continue.rb +0 -1
  19. data/lib/dropbox_api/endpoints/files/list_folder_get_latest_cursor.rb +17 -14
  20. data/lib/dropbox_api/endpoints/files/list_folder_longpoll.rb +5 -6
  21. data/lib/dropbox_api/endpoints/files/list_revisions.rb +0 -1
  22. data/lib/dropbox_api/endpoints/files/move.rb +0 -1
  23. data/lib/dropbox_api/endpoints/files/restore.rb +0 -1
  24. data/lib/dropbox_api/endpoints/files/save_url.rb +0 -1
  25. data/lib/dropbox_api/endpoints/files/save_url_check_job_status.rb +0 -1
  26. data/lib/dropbox_api/endpoints/files/search.rb +0 -1
  27. data/lib/dropbox_api/endpoints/files/upload.rb +0 -1
  28. data/lib/dropbox_api/endpoints/files/upload_session_append_v2.rb +33 -0
  29. data/lib/dropbox_api/endpoints/files/upload_session_finish.rb +26 -0
  30. data/lib/dropbox_api/endpoints/files/upload_session_start.rb +38 -0
  31. data/lib/dropbox_api/endpoints/sharing/add_file_member.rb +0 -1
  32. data/lib/dropbox_api/endpoints/sharing/add_folder_member.rb +0 -1
  33. data/lib/dropbox_api/endpoints/sharing/create_shared_link_with_settings.rb +3 -3
  34. data/lib/dropbox_api/endpoints/sharing/list_folder_members.rb +0 -1
  35. data/lib/dropbox_api/endpoints/sharing/list_shared_links.rb +0 -1
  36. data/lib/dropbox_api/endpoints/sharing/share_folder.rb +0 -1
  37. data/lib/dropbox_api/endpoints/users/get_account.rb +0 -1
  38. data/lib/dropbox_api/endpoints/users/get_account_batch.rb +0 -1
  39. data/lib/dropbox_api/endpoints/users/get_current_account.rb +0 -1
  40. data/lib/dropbox_api/endpoints/users/get_space_usage.rb +0 -1
  41. data/lib/dropbox_api/errors/basic_error.rb +3 -0
  42. data/lib/dropbox_api/errors/upload_session_finish_error.rb +9 -0
  43. data/lib/dropbox_api/errors/upload_session_lookup_error.rb +10 -0
  44. data/lib/dropbox_api/errors/upload_session_offset_error.rb +8 -0
  45. data/lib/dropbox_api/metadata/commit_info.rb +9 -0
  46. data/lib/dropbox_api/metadata/resource.rb +1 -1
  47. data/lib/dropbox_api/metadata/upload_session_cursor.rb +11 -0
  48. data/lib/dropbox_api/metadata/write_mode.rb +21 -15
  49. data/lib/dropbox_api/results/upload_session_start.rb +7 -0
  50. data/lib/dropbox_api/version.rb +1 -1
  51. data/yardoc/endpoint_handler.rb +67 -0
  52. data/yardoc/helpers/html_helper.rb +22 -0
  53. data/yardoc/rspec.rb +35 -0
  54. data/yardoc/templates/default/fulldoc/html/css/common.css +4 -0
  55. data/yardoc/templates/default/layout/html/setup.rb +0 -0
  56. data/yardoc/templates/default/method_details/html/specs.erb +22 -0
  57. data/yardoc/templates/default/method_details/setup.rb +4 -0
  58. data/yardoc/templates/default/method_details/text/specs.erb +9 -0
  59. metadata +19 -4
  60. data/api_reference.md +0 -25
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 71bc2fe09bb0680e07ef7267a199993f8aa93cc5
4
- data.tar.gz: 31df4bc163d59790a448e37cb695617fe168d99d
3
+ metadata.gz: c0eede08a0f815d30642620662824beb4772cd27
4
+ data.tar.gz: ffcd6a73b9f84613db886767ea931d86c23189b4
5
5
  SHA512:
6
- metadata.gz: e05027a2944af74b33f56a1a7a6a124459fd0a1c604ebd4ebaa5db3403eed396247aeea1344c69f8828b1172eac17ee32a3fcce60f3a8f280d30d02d4c95e1fa
7
- data.tar.gz: 99c5f3c37144305dc4a689902e7c61468ef2991ddf4713c4354e4dee7076a83ea87434a5cc6d19122e2de6c0f21bb3a4b96144b60cb94c919a0d3ae7c895bc25
6
+ metadata.gz: 9135f8db610192f4ec44b63b9133a61d06d0610f8c070732f8164e00f27ecb2a68c27b5aaf2b1092c44cb97cff980aaa2afca322146cbc07b9f6d86afff1a8c3
7
+ data.tar.gz: cc47310f7f6007517a1074137c5872c51c4f8da491f1ef09391c7a7d3678ae102e37c336af9cdaeddcb6f39da1601363b4f4f25ebf5c71285422f73086543d0c
@@ -2,4 +2,6 @@ language: ruby
2
2
  rvm:
3
3
  # - 1.8.7
4
4
  # - 1.9.3
5
- - 2.3.1
5
+ - 2.2.6
6
+ - 2.3.3
7
+ - 2.4.0
data/.yardopts CHANGED
@@ -1 +1,8 @@
1
- - api_coverage.md api_reference.md rails_setup.md
1
+ --load yardoc/endpoint_handler.rb
2
+ --load yardoc/rspec.rb
3
+ --load yardoc/helpers/html_helper.rb
4
+ lib/**/*.rb
5
+ spec/endpoints/**/*_spec.rb
6
+ -
7
+ api_coverage.md
8
+ rails_setup.md
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](https://www.dropbox.com/developers/reference/oauth-guide#oauth-2-on-the-web).
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
- guide](rails_setup.md).
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
- Refer to the
102
- [documentation](http://www.rubydoc.info/gems/dropbox_api)
103
- to see the details for each endpoint, you can find them all in the following
104
- 3 modules:
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. It should be quite easy to implement most
131
- of the [endpoints that are still pending](api_coverage.md) by looking at the
132
- exising implementations (check out the `dropbox_api/endpoints` folder).
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`
@@ -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
@@ -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'
@@ -4,6 +4,7 @@ module DropboxApi
4
4
  @connection_builder = ConnectionBuilder.new(oauth_bearer)
5
5
  end
6
6
 
7
+ # @!visibility private
7
8
  def self.add_endpoint(name, endpoint)
8
9
  define_method(name) do |*args, &block|
9
10
  endpoint.new(@connection_builder).send(name, *args, &block)
@@ -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::DownloadError
7
7
 
8
- # @method download(path)
9
8
  # Download a file from a user's Dropbox.
10
9
  #
11
10
  # @param path [String] The path of the file to download.
@@ -7,7 +7,6 @@ module DropboxApi::Endpoints::Files
7
7
 
8
8
  include DropboxApi::Endpoints::OptionsValidator
9
9
 
10
- # @method get_metadata(path, options = {})
11
10
  # Returns the metadata for a file or folder.
12
11
  #
13
12
  # Note: Metadata for the root folder is unsupported.
@@ -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.
@@ -7,7 +7,6 @@ module DropboxApi::Endpoints::Files
7
7
 
8
8
  include DropboxApi::Endpoints::OptionsValidator
9
9
 
10
- # @method get_thumbnail(path, options = {})
11
10
  # Get a thumbnail for an image.
12
11
  #
13
12
  # This method currently supports files with the following file extensions:
@@ -7,7 +7,6 @@ module DropboxApi::Endpoints::Files
7
7
 
8
8
  include DropboxApi::Endpoints::OptionsValidator
9
9
 
10
- # @method list_folder(path, options = {})
11
10
  # Returns the contents of a folder.
12
11
  #
13
12
  # @param path [String] The path to the folder you want to read.
@@ -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
- # @method list_folder_get_latest_cursor(options)
11
- # A way to quickly get a cursor for the folder's state. Unlike list_folder,
12
- # list_folder_get_latest_cursor doesn't return any entries. This endpoint
13
- # is for app which only needs to know about new files and modifications and
14
- # doesn't need to know about files that already exist in Dropbox.
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
- # @param path [String] The path to the folder you want to read.
17
- # @option recursive [Boolean] If `true`, the list folder operation will be
18
- # applied recursively to all subfolders and the response will contain
19
- # contents of all subfolders. The default for this field is `false`.
20
- # @option include_media_info [Boolean] If `true`, FileMetadata.media_info
21
- # is set for photo and video. The default for this field is `false`.
22
- # @option include_deleted [Boolean] If `true`, DeletedMetadata will be
23
- # returned for deleted file or folder, otherwise LookupError.not_found
24
- # will be returned. The default for this field is False.
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 block
21
- # for at most this length of time, plus up to 90 seconds of random jitter
22
- # added to avoid the thundering herd problem. Care should be taken when
23
- # using this parameter, as some network infrastructure does not support
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 list_revisions(path, options = {})
11
10
  # Return revisions of a file
12
11
  #
13
12
  # @param path [String] The path to file you want to see the revisions of.
@@ -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
@@ -7,7 +7,6 @@ module DropboxApi::Endpoints::Files
7
7
 
8
8
  include DropboxApi::Endpoints::OptionsValidator
9
9
 
10
- # @method search(query, path = "", options = {})
11
10
  # Searches for files and folders.
12
11
  #
13
12
  # Note: Recent changes may not immediately be reflected in search results
@@ -7,7 +7,6 @@ module DropboxApi::Endpoints::Files
7
7
 
8
8
  include DropboxApi::Endpoints::OptionsValidator
9
9
 
10
- # @method upload(path, content, options = {})
11
10
  # Creates a new file.
12
11
  #
13
12
  # Do not use this to upload a file larger than 150 MB. Instead, create an
@@ -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
- # @option settings [SharedLinkSettings]
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.
@@ -7,7 +7,6 @@ module DropboxApi::Endpoints::Sharing
7
7
 
8
8
  include DropboxApi::Endpoints::OptionsValidator
9
9
 
10
- # @method list_shared_links(options)
11
10
  # List shared links of this user.
12
11
  #
13
12
  # If no path is given or the path is empty, returns a list of all shared
@@ -7,7 +7,6 @@ module DropboxApi::Endpoints::Sharing
7
7
 
8
8
  include DropboxApi::Endpoints::OptionsValidator
9
9
 
10
- # @method share_folder(path, options = {})
11
10
  # Share a folder with collaborators.
12
11
  #
13
12
  # Most sharing will be completed synchronously. Large folders will be
@@ -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,9 @@
1
+ module DropboxApi::Errors
2
+ class UploadSessionFinishError < BasicError
3
+ ErrorSubtypes = {
4
+ :lookup_failed => UploadSessionLookupError,
5
+ :path => WriteError,
6
+ :too_many_shared_folder_targets => TooManySharedFolderTargetsError
7
+ }.freeze
8
+ end
9
+ 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
@@ -0,0 +1,8 @@
1
+ module DropboxApi::Errors
2
+ class UploadSessionOffsetError < BasicError
3
+ def initialize(message, metadata)
4
+ message = "#{message}, correct offset: #{metadata['correct_offset']}"
5
+ super message, metadata
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,9 @@
1
+ module DropboxApi::Metadata
2
+ class CommitInfo < Base
3
+ field :path, String
4
+ field :mode, DropboxApi::Metadata::WriteMode
5
+ field :autorename, :boolean, :optional
6
+ field :client_modified, Time, :optional
7
+ field :mute, :boolean, :optional
8
+ end
9
+ 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`.
@@ -0,0 +1,11 @@
1
+ module DropboxApi::Metadata
2
+ # Example of a serialized {UploadSessionCursor} object:
3
+ # {
4
+ # "session_id": "AAAAAAAABCJ61k9yZZtn8Q",
5
+ # "offset":9
6
+ # }
7
+ class UploadSessionCursor < Base
8
+ field :session_id, String
9
+ field :offset, Integer
10
+ end
11
+ end
@@ -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
- def initialize(write_mode, rev = nil)
43
- @write_mode = write_mode.to_sym
44
- @rev = rev
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: #{value}"
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 && @rev.nil?
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
- hash = {
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.to_sym
77
+ VALID_WRITE_MODES.include? value
72
78
  end
73
79
  end
74
80
  end
@@ -0,0 +1,7 @@
1
+ module DropboxApi::Results
2
+ class UploadSessionStart < DropboxApi::Results::Base
3
+ def session_id
4
+ @data["session_id"]
5
+ end
6
+ end
7
+ end
@@ -1,3 +1,3 @@
1
1
  module DropboxApi
2
- VERSION = '0.1.4'.freeze
2
+ VERSION = '0.1.5'.freeze
3
3
  end
@@ -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
@@ -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
@@ -0,0 +1,4 @@
1
+ .test_code {
2
+ font-size: 13px;
3
+ line-height: normal;
4
+ }
@@ -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 %>
@@ -0,0 +1,4 @@
1
+ def init
2
+ super
3
+ sections.last.place(:specs).before(:source)
4
+ end
@@ -0,0 +1,9 @@
1
+ <% if object[:specifications] %>
2
+
3
+ Specifications:
4
+ ---------------
5
+
6
+ <% for spec in object[:specifications] %>
7
+ <%= indent wrap("- " + spec[:name]) %>
8
+ <% end %>
9
+ <% 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
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: 2016-12-26 00:00:00.000000000 Z
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
@@ -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}