dropbox_api 0.1.4 → 0.1.5

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.
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}