dropbox_api 0.1.10 → 0.1.11

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 (77) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +24 -12
  3. data/RELEASING.md +5 -0
  4. data/api_coverage.md +9 -0
  5. data/lib/dropbox_api.rb +23 -4
  6. data/lib/dropbox_api/chunked_uploader.rb +48 -0
  7. data/lib/dropbox_api/endpoints/content_upload.rb +16 -9
  8. data/lib/dropbox_api/endpoints/file_requests/create_file_request.rb +21 -0
  9. data/lib/dropbox_api/endpoints/files/get_metadata.rb +1 -1
  10. data/lib/dropbox_api/endpoints/files/get_thumbnail.rb +4 -4
  11. data/lib/dropbox_api/endpoints/files/get_thumbnail_batch.rb +38 -0
  12. data/lib/dropbox_api/endpoints/files/list_folder.rb +16 -1
  13. data/lib/dropbox_api/endpoints/files/list_folder_get_latest_cursor.rb +8 -9
  14. data/lib/dropbox_api/endpoints/files/list_folder_longpoll.rb +1 -1
  15. data/lib/dropbox_api/endpoints/files/list_revisions.rb +1 -1
  16. data/lib/dropbox_api/endpoints/files/move.rb +2 -2
  17. data/lib/dropbox_api/endpoints/files/save_url_check_job_status.rb +1 -1
  18. data/lib/dropbox_api/endpoints/files/search.rb +1 -1
  19. data/lib/dropbox_api/endpoints/files/upload.rb +17 -27
  20. data/lib/dropbox_api/endpoints/files/upload_session_append_v2.rb +7 -5
  21. data/lib/dropbox_api/endpoints/files/upload_session_finish.rb +5 -3
  22. data/lib/dropbox_api/endpoints/files/upload_session_start.rb +3 -3
  23. data/lib/dropbox_api/endpoints/rpc_content.rb +9 -0
  24. data/lib/dropbox_api/endpoints/sharing/add_file_member.rb +6 -6
  25. data/lib/dropbox_api/endpoints/sharing/add_folder_member.rb +5 -5
  26. data/lib/dropbox_api/endpoints/sharing/create_shared_link_with_settings.rb +2 -2
  27. data/lib/dropbox_api/endpoints/sharing/list_folder_members.rb +1 -1
  28. data/lib/dropbox_api/endpoints/sharing/list_shared_links.rb +1 -1
  29. data/lib/dropbox_api/endpoints/sharing/share_folder.rb +1 -1
  30. data/lib/dropbox_api/endpoints/virtual/upload_by_chunks.rb +49 -0
  31. data/lib/dropbox_api/errors/basic_error.rb +2 -0
  32. data/lib/dropbox_api/errors/create_file_request_error.rb +6 -0
  33. data/lib/dropbox_api/errors/thumbnail_batch_error.rb +7 -0
  34. data/lib/dropbox_api/errors/thumbnail_error.rb +10 -0
  35. data/lib/dropbox_api/metadata/access_level.rb +7 -4
  36. data/lib/dropbox_api/metadata/add_file_member_result.rb +13 -10
  37. data/lib/dropbox_api/metadata/add_member.rb +19 -16
  38. data/lib/dropbox_api/metadata/basic_account.rb +18 -15
  39. data/lib/dropbox_api/metadata/commit_info.rb +35 -1
  40. data/lib/dropbox_api/metadata/deleted.rb +9 -6
  41. data/lib/dropbox_api/metadata/file.rb +18 -15
  42. data/lib/dropbox_api/metadata/file_link_metadata.rb +48 -0
  43. data/lib/dropbox_api/metadata/file_member_action.rb +8 -5
  44. data/lib/dropbox_api/metadata/file_request.rb +30 -0
  45. data/lib/dropbox_api/metadata/folder.rb +9 -6
  46. data/lib/dropbox_api/metadata/{folder_link.rb → folder_link_metadata.rb} +1 -1
  47. data/lib/dropbox_api/metadata/folder_sharing_info.rb +7 -4
  48. data/lib/dropbox_api/metadata/link_permissions.rb +11 -8
  49. data/lib/dropbox_api/metadata/media_info.rb +14 -7
  50. data/lib/dropbox_api/metadata/media_metadata.rb +14 -12
  51. data/lib/dropbox_api/metadata/member.rb +12 -9
  52. data/lib/dropbox_api/metadata/member_action.rb +13 -10
  53. data/lib/dropbox_api/metadata/member_permission.rb +11 -8
  54. data/lib/dropbox_api/metadata/member_permission_list.rb +19 -17
  55. data/lib/dropbox_api/metadata/name.rb +9 -6
  56. data/lib/dropbox_api/metadata/photo_metadata.rb +14 -11
  57. data/lib/dropbox_api/metadata/resource.rb +1 -1
  58. data/lib/dropbox_api/metadata/shared_folder.rb +16 -13
  59. data/lib/dropbox_api/metadata/shared_folder_policy.rb +7 -4
  60. data/lib/dropbox_api/metadata/shared_link.rb +30 -18
  61. data/lib/dropbox_api/metadata/shared_link_metadata.rb +26 -0
  62. data/lib/dropbox_api/metadata/space_allocation.rb +7 -4
  63. data/lib/dropbox_api/metadata/space_usage.rb +9 -6
  64. data/lib/dropbox_api/metadata/{symbol.rb → tag.rb} +1 -1
  65. data/lib/dropbox_api/metadata/team_member_info.rb +11 -8
  66. data/lib/dropbox_api/metadata/thumbnail_batch_result_data.rb +6 -0
  67. data/lib/dropbox_api/metadata/thumbnail_batch_result_entry.rb +23 -0
  68. data/lib/dropbox_api/metadata/upload_session_cursor.rb +7 -4
  69. data/lib/dropbox_api/metadata/video_metadata.rb +15 -12
  70. data/lib/dropbox_api/metadata/write_mode.rb +3 -3
  71. data/lib/dropbox_api/{endpoints/options_validator.rb → options_validator.rb} +1 -1
  72. data/lib/dropbox_api/results/add_file_member_result_list.rb +1 -1
  73. data/lib/dropbox_api/results/get_thumbnail_batch_result.rb +9 -0
  74. data/lib/dropbox_api/results/list_shared_links_result.rb +1 -1
  75. data/lib/dropbox_api/version.rb +1 -1
  76. metadata +20 -6
  77. data/lib/dropbox_api/metadata/file_link.rb +0 -45
@@ -5,7 +5,7 @@ module DropboxApi::Endpoints::Files
5
5
  ResultType = DropboxApi::Results::ListRevisionsResult
6
6
  ErrorType = DropboxApi::Errors::ListRevisionsError
7
7
 
8
- include DropboxApi::Endpoints::OptionsValidator
8
+ include DropboxApi::OptionsValidator
9
9
 
10
10
  # Return revisions of a file
11
11
  #
@@ -5,7 +5,7 @@ module DropboxApi::Endpoints::Files
5
5
  ResultType = DropboxApi::Metadata::Resource
6
6
  ErrorType = DropboxApi::Errors::RelocationError
7
7
 
8
- include DropboxApi::Endpoints::OptionsValidator
8
+ include DropboxApi::OptionsValidator
9
9
 
10
10
  # Move a file or folder to a different location in the user's Dropbox.
11
11
  #
@@ -15,7 +15,7 @@ module DropboxApi::Endpoints::Files
15
15
  # @param to [String] Path in the user's Dropbox that is the destination.
16
16
  # @option options autorename [Boolean] If there's a conflict, have the
17
17
  # Dropbox server try to autorename the file to avoid the conflict. The
18
- # default for this field is +false+.
18
+ # default for this field is `false`.
19
19
  add_endpoint :move do |from, to, options = {}|
20
20
  # We're not implementing support for the `allow_shared_folder` option
21
21
  # because according to Dropbox's documentation: "This field is always
@@ -5,7 +5,7 @@ module DropboxApi::Endpoints::Files
5
5
  ResultType = DropboxApi::Results::SaveUrlJobStatus
6
6
  ErrorType = DropboxApi::Errors::PollError
7
7
 
8
- # Check the status of a +save_url+ job.
8
+ # Check the status of a `save_url` job.
9
9
  #
10
10
  # @param job_id [String] Id of the asynchronous job. This is the value of
11
11
  # a response returned from the method that launched the job.
@@ -5,7 +5,7 @@ module DropboxApi::Endpoints::Files
5
5
  ResultType = DropboxApi::Results::SearchResult
6
6
  ErrorType = DropboxApi::Errors::SearchError
7
7
 
8
- include DropboxApi::Endpoints::OptionsValidator
8
+ include DropboxApi::OptionsValidator
9
9
 
10
10
  # Searches for files and folders.
11
11
  #
@@ -5,12 +5,13 @@ module DropboxApi::Endpoints::Files
5
5
  ResultType = DropboxApi::Metadata::File
6
6
  ErrorType = DropboxApi::Errors::UploadError
7
7
 
8
- include DropboxApi::Endpoints::OptionsValidator
8
+ include DropboxApi::OptionsValidator
9
9
 
10
10
  # Creates a new file.
11
11
  #
12
- # Do not use this to upload a file larger than 150 MB. Instead, create an
13
- # upload session with #upload_session_start().
12
+ # Do not use this to upload a file larger than 150 MB.
13
+ #
14
+ # For larger files you can use {#upload_by_chunks}.
14
15
  #
15
16
  # @example
16
17
  # client = DropboxApi::Client.new
@@ -27,18 +28,23 @@ module DropboxApi::Endpoints::Files
27
28
  # #=> #<DropboxApi::Metadata::File: @name="file (1).txt" ...>
28
29
  # @param path [String] Path in the user's Dropbox to save the file.
29
30
  # @param content The contents of the file that will be uploaded. This
30
- # could be the result of the +IO::read+ method.
31
+ # could be the result of the `IO::read` method.
31
32
  # @option options mode [DropboxApi::Metadata::WriteMode] Selects what to
32
- # do if the file already exists. The default is +add+.
33
+ # do if the file already exists. The default is `add`.
33
34
  # @option options autorename [Boolean] If there's a conflict, as determined
34
- # by +mode+, have the Dropbox server try to autorename the file to avoid
35
- # conflict. The default for this field is +false+.
35
+ # by `mode`, have the Dropbox server try to autorename the file to avoid
36
+ # conflict. The default for this field is `false`.
36
37
  # @option options client_modified [DateTime] The value to store as the
37
- # +client_modified+ timestamp. Dropbox automatically records the time at
38
+ # `client_modified` timestamp. Dropbox automatically records the time at
38
39
  # which the file was written to the Dropbox servers. It can also record
39
40
  # an additional timestamp, provided by Dropbox desktop clients, mobile
40
41
  # clients, and API apps of when the file was actually created or
41
42
  # modified.
43
+ # @option options mute [Boolean] Normally, users are made aware of any
44
+ # file modifications in their Dropbox account via notifications in the
45
+ # client software. If `true`, this tells the clients that this
46
+ # modification shouldn't result in a user notification. The default for
47
+ # this field is `false`.
42
48
  # @see DropboxApi::Metadata::WriteMode
43
49
  add_endpoint :upload do |path, content, options = {}|
44
50
  validate_options([
@@ -48,25 +54,9 @@ module DropboxApi::Endpoints::Files
48
54
  :mute
49
55
  ], options)
50
56
 
51
- options[:mode] = build_write_mode_param(options[:mode]) if options[:mode]
52
- options[:client_modified] = options[:client_modified].utc.strftime("%FT%TZ") if options[:client_modified]
53
-
54
- perform_request(options.merge({
55
- :path => path
56
- }), content)
57
- end
58
-
59
- private
60
-
61
- def build_write_mode_param(write_mode)
62
- case write_mode
63
- when String, Symbol
64
- DropboxApi::Metadata::WriteMode.new write_mode
65
- when DropboxApi::Metadata::WriteMode
66
- write_mode
67
- else
68
- raise ArgumentError, "Invalid write mode: #{write_mode.inspect}"
69
- end.to_hash
57
+ options[:path] = path
58
+ commit_info = DropboxApi::Metadata::CommitInfo.build_from_options options
59
+ perform_request(commit_info.to_hash, content)
70
60
  end
71
61
  end
72
62
  end
@@ -5,13 +5,15 @@ module DropboxApi::Endpoints::Files
5
5
  ResultType = DropboxApi::Results::VoidResult
6
6
  ErrorType = DropboxApi::Errors::UploadSessionLookupError
7
7
 
8
- include DropboxApi::Endpoints::OptionsValidator
8
+ include DropboxApi::OptionsValidator
9
9
 
10
10
  # Append more data to an upload session.
11
11
  #
12
- # When the parameter +close+ is set, this call will close the session.
12
+ # When the parameter `close` is set, this call will close the session.
13
13
  #
14
- # A single request should not upload more than 150 MB of file contents.
14
+ # A single request should not upload more than 150 MB.
15
+ #
16
+ # The maximum size of a file one can upload to an upload session is 350 GB.
15
17
  #
16
18
  # Calling this method may update the cursor received. In particular, the
17
19
  # offset variable will be increased to match the new position. This allows
@@ -28,10 +30,10 @@ module DropboxApi::Endpoints::Files
28
30
  # @param cursor [DropboxApi::Metadata::UploadSessionCursor] Contains the
29
31
  # upload session ID and the offset. This cursor will have its offset
30
32
  # updated after a successful call.
31
- # @option options close [Boolean] If +true+, the current session will be
33
+ # @option options close [Boolean] If `true`, the current session will be
32
34
  # closed, at which point you won't be able to call
33
35
  # {Client#upload_session_append_v2} anymore with the current session.
34
- # The default for this field is +false+.
36
+ # The default for this field is `false`.
35
37
  # @see UploadSessionCursor
36
38
  add_endpoint :upload_session_append_v2 do |cursor, content, options = {}|
37
39
  validate_options([
@@ -5,17 +5,19 @@ module DropboxApi::Endpoints::Files
5
5
  ResultType = DropboxApi::Metadata::File
6
6
  ErrorType = DropboxApi::Errors::UploadSessionFinishError
7
7
 
8
- include DropboxApi::Endpoints::OptionsValidator
8
+ include DropboxApi::OptionsValidator
9
9
 
10
10
  # Finish an upload session and save the uploaded data to the given file
11
11
  # path.
12
12
  #
13
- # A single request should not upload more than 150 MB of file contents.
13
+ # A single request should not upload more than 150 MB.
14
+ #
15
+ # The maximum size of a file one can upload to an upload session is 350 GB.
14
16
  #
15
17
  # @param cursor [DropboxApi::Metadata::UploadSessionCursor] Contains the
16
18
  # upload session ID and the offset.
17
19
  # @param commit [DropboxApi::Metadata::CommitInfo] Contains the path and
18
- # other optional modifiers for the commit.
20
+ # other optional modifiers for the commit.
19
21
  add_endpoint :upload_session_finish do |cursor, commit, content = nil|
20
22
  perform_request({
21
23
  :cursor => cursor.to_hash,
@@ -5,7 +5,7 @@ module DropboxApi::Endpoints::Files
5
5
  ResultType = DropboxApi::Results::UploadSessionStart
6
6
  ErrorType = nil
7
7
 
8
- include DropboxApi::Endpoints::OptionsValidator
8
+ include DropboxApi::OptionsValidator
9
9
 
10
10
  # Upload sessions allow you to upload a single file in one or more
11
11
  # requests, for example where the size of the file is greater than 150 MB.
@@ -16,10 +16,10 @@ module DropboxApi::Endpoints::Files
16
16
  #
17
17
  # A single request should not upload more than 150 MB of file contents.
18
18
  #
19
- # @option options close [Boolean] If +true+, the current session will be
19
+ # @option options close [Boolean] If `true`, the current session will be
20
20
  # closed, at which point you won't be able to call
21
21
  # {Client#upload_session_append_v2} anymore with the current session.
22
- # The default for this field is +false+.
22
+ # The default for this field is `false`.
23
23
  # @return [DropboxApi::Metadata::UploadSessionCursor] The session cursor
24
24
  # that you can use to continue the upload afterwards.
25
25
  add_endpoint :upload_session_start do |content, options = {}|
@@ -0,0 +1,9 @@
1
+ module DropboxApi::Endpoints
2
+ class RpcContent < DropboxApi::Endpoints::Rpc
3
+ def initialize(builder)
4
+ @connection = builder.build("https://content.dropboxapi.com") do |c|
5
+ c.response :decode_result
6
+ end
7
+ end
8
+ end
9
+ end
@@ -5,28 +5,28 @@ module DropboxApi::Endpoints::Sharing
5
5
  ResultType = DropboxApi::Results::AddFileMemberResultList
6
6
  ErrorType = DropboxApi::Errors::AddFileMemberError
7
7
 
8
- include DropboxApi::Endpoints::OptionsValidator
8
+ include DropboxApi::OptionsValidator
9
9
 
10
10
  # Adds specified members to a file.
11
11
  #
12
- # The +members+ parameter can be an +Array+ or a single member element. Each
13
- # element is represented by either a +String+ or a {Metadata::Member}
12
+ # The `members` parameter can be an `Array` or a single member element. Each
13
+ # element is represented by either a `String` or a {Metadata::Member}
14
14
  # object. You can identify a member using his email or a Dropbox ID.
15
15
  #
16
16
  # @param file [String] File to which to add members. It can be a path or
17
- # an ID such as +id:3kmLmQFnf1AAAAAAAAAAAw+.
17
+ # an ID such as `id:3kmLmQFnf1AAAAAAAAAAAw`.
18
18
  # @param members Members to add. Note
19
19
  # that even if an email address is given, this may result in a user
20
20
  # being directy added to the membership if that email is the user's
21
21
  # main account email.
22
22
  # @option options quiet [Boolean] Whether added members should be notified
23
23
  # via email and device notifications of their invite. The default for
24
- # this field is +false+.
24
+ # this field is `false`.
25
25
  # @option options custom_message [String] Message to send to added members
26
26
  # in their invitation. This field is optional.
27
27
  # @option options access_level [AccessLevel] AccessLevel union object,
28
28
  # describing what access level we want to give new members. The default
29
- # for this is +:viewer+.
29
+ # for this is `:viewer`.
30
30
  # @option options add_message_as_comment [String] Optional message to
31
31
  # display to added members in their invitation. This field is optional.
32
32
  # @see DropboxApi::Metadata::Member
@@ -5,23 +5,23 @@ module DropboxApi::Endpoints::Sharing
5
5
  ResultType = DropboxApi::Results::VoidResult
6
6
  ErrorType = DropboxApi::Errors::AddFolderMemberError
7
7
 
8
- include DropboxApi::Endpoints::OptionsValidator
8
+ include DropboxApi::OptionsValidator
9
9
 
10
10
  # Allows an owner or editor (if the ACL update policy allows) of a shared
11
11
  # folder to add another member.
12
12
  #
13
13
  # For the new member to get access to all the functionality for this folder,
14
- # you will need to call +mount_folder+ on their behalf.
14
+ # you will need to call `mount_folder` on their behalf.
15
15
  #
16
16
  # Apps must have full Dropbox access to use this endpoint.
17
17
  #
18
- # The +members+ parameter can be an +Array+ or a single member element.
19
- # Each element is represented by either a +String+ or a
18
+ # The `members` parameter can be an `Array` or a single member element.
19
+ # Each element is represented by either a `String` or a
20
20
  # {Metadata::AddMember} object. This parameter can be just a string with
21
21
  # an email.
22
22
  #
23
23
  # You can also build a {Metadata::AddMember} object and use it in the
24
- # +members+ parameter, this allows custom options for each member.
24
+ # `members` parameter, this allows custom options for each member.
25
25
  #
26
26
  # @example
27
27
  # client = DropboxApi::Client.new
@@ -2,7 +2,7 @@ module DropboxApi::Endpoints::Sharing
2
2
  class CreateSharedLinkWithSettings < DropboxApi::Endpoints::Rpc
3
3
  Method = :post
4
4
  Path = "/2/sharing/create_shared_link_with_settings".freeze
5
- ResultType = DropboxApi::Metadata::SharedLink
5
+ ResultType = DropboxApi::Metadata::SharedLinkMetadata
6
6
  ErrorType = DropboxApi::Errors::CreateSharedLinkWithSettingsError
7
7
 
8
8
  # Create a shared link with custom settings. If no settings are given then
@@ -13,7 +13,7 @@ module DropboxApi::Endpoints::Sharing
13
13
  # @param path [String] The path to be shared by the shared link.
14
14
  # @param settings [SharedLinkSettings] The requested settings for the newly
15
15
  # created shared link This field is optional.
16
- # @return [DropboxApi::Metadata::SharedLink]
16
+ # @return [DropboxApi::Metadata::SharedLinkMetadata]
17
17
  add_endpoint :create_shared_link_with_settings do |path, settings = {}|
18
18
  # NOTE: This endpoint accepts an additional option `settings` which
19
19
  # hasn't been implemented.
@@ -5,7 +5,7 @@ module DropboxApi::Endpoints::Sharing
5
5
  ResultType = DropboxApi::Results::SharedFolderMembers
6
6
  ErrorType = DropboxApi::Errors::SharedFolderAccessError
7
7
 
8
- include DropboxApi::Endpoints::OptionsValidator
8
+ include DropboxApi::OptionsValidator
9
9
 
10
10
  # Returns shared folder membership by its folder ID.
11
11
  #
@@ -5,7 +5,7 @@ module DropboxApi::Endpoints::Sharing
5
5
  ResultType = DropboxApi::Results::ListSharedLinksResult
6
6
  ErrorType = DropboxApi::Errors::ListSharedLinksError
7
7
 
8
- include DropboxApi::Endpoints::OptionsValidator
8
+ include DropboxApi::OptionsValidator
9
9
 
10
10
  # List shared links of this user.
11
11
  #
@@ -5,7 +5,7 @@ module DropboxApi::Endpoints::Sharing
5
5
  ResultType = DropboxApi::Results::ShareFolderLaunch
6
6
  ErrorType = DropboxApi::Errors::ShareFolderError
7
7
 
8
- include DropboxApi::Endpoints::OptionsValidator
8
+ include DropboxApi::OptionsValidator
9
9
 
10
10
  # Share a folder with collaborators.
11
11
  #
@@ -0,0 +1,49 @@
1
+ module DropboxApi
2
+ class Client
3
+ # Creates a new file using the *upload session* endpoints. You can use
4
+ # this method to upload files larger than 150 MB.
5
+ #
6
+ # @example
7
+ # client = DropboxApi::Client.new
8
+ # File.open "large file.avi" do |file|
9
+ # client.upload "/large file.avi", file
10
+ # #=> #<DropboxApi::Metadata::File: @name="large file.avi" ...>
11
+ # end
12
+ # @example
13
+ # client = DropboxApi::Client.new
14
+ # client.upload "/file.txt", "File contents...", :mode => :add
15
+ # #=> #<DropboxApi::Metadata::File: @name="file (1).txt" ...>
16
+ # @param path [String] Path in the user's Dropbox to save the file.
17
+ # @param content The contents of the file that will be uploaded. This
18
+ # could be the result of the `IO::read` method.
19
+ # @option options mode [DropboxApi::Metadata::WriteMode] Selects what to
20
+ # do if the file already exists. The default is `add`.
21
+ # @option options autorename [Boolean] If there's a conflict, as determined
22
+ # by `mode`, have the Dropbox server try to autorename the file to avoid
23
+ # conflict. The default for this field is `false`.
24
+ # @option options client_modified [DateTime] The value to store as the
25
+ # `client_modified` timestamp. Dropbox automatically records the time at
26
+ # which the file was written to the Dropbox servers. It can also record
27
+ # an additional timestamp, provided by Dropbox desktop clients, mobile
28
+ # clients, and API apps of when the file was actually created or
29
+ # modified.
30
+ # @option options mute [Boolean] Normally, users are made aware of any
31
+ # file modifications in their Dropbox account via notifications in the
32
+ # client software. If `true`, this tells the clients that this
33
+ # modification shouldn't result in a user notification. The default for
34
+ # this field is `false`.
35
+ # @option options chunk_size [Numeric] The size of each upload chunk. It
36
+ # defaults to 4 MiB.
37
+ # @see DropboxApi::Metadata::WriteMode
38
+ #
39
+ # @!group virtual
40
+ def upload_by_chunks(path, content, options = {})
41
+ content = StringIO.new(content) if content.is_a?(String)
42
+
43
+ uploader = DropboxApi::ChunkedUploader.new(self, path, content, options)
44
+ uploader.start
45
+ uploader.upload
46
+ uploader.finish
47
+ end
48
+ end
49
+ end
@@ -34,6 +34,7 @@ module DropboxApi::Errors
34
34
  class CantNestSharedFolderError < BasicError; end
35
35
  class CantShareOutsideTeamError < BasicError; end
36
36
  class ContainsSharedFolderError < BasicError; end
37
+ class ConversionError < BasicError; end
37
38
  class CursorClosedError < BasicError; end
38
39
  class CursorNotClosedError < BasicError; end
39
40
  class DisallowedNameError < BasicError; end
@@ -90,5 +91,6 @@ module DropboxApi::Errors
90
91
  class UnmountedError < BasicError; end
91
92
  class UnsupportedContentError < BasicError; end
92
93
  class UnsupportedExtensionError < BasicError; end
94
+ class UnsupportedImageError < BasicError; end
93
95
  class UnverifiedDropboxId < BasicError; end
94
96
  end
@@ -0,0 +1,6 @@
1
+ module DropboxApi::Errors
2
+ class CreateFileRequestError < BasicError
3
+ ErrorSubtypes = {
4
+ }.freeze
5
+ end
6
+ end
@@ -0,0 +1,7 @@
1
+ module DropboxApi::Errors
2
+ class ThumbnailBatchError < BasicError
3
+ ErrorSubtypes = {
4
+ :too_many_files => TooManyFilesError
5
+ }.freeze
6
+ end
7
+ end
@@ -0,0 +1,10 @@
1
+ module DropboxApi::Errors
2
+ class ThumbnailError < BasicError
3
+ ErrorSubtypes = {
4
+ :path => LookupError,
5
+ :unsupported_extension => UnsupportedExtensionError,
6
+ :unsupported_image => UnsupportedImageError,
7
+ :conversion_error => ConversionError
8
+ }.freeze
9
+ end
10
+ end
@@ -1,9 +1,12 @@
1
1
  module DropboxApi::Metadata
2
2
  # Example of a serialized {AccessLevel} object:
3
- # {
4
- # ".tag": "viewer"
5
- # }
6
- class AccessLevel < DropboxApi::Metadata::Symbol
3
+ #
4
+ # ```json
5
+ # {
6
+ # ".tag": "viewer"
7
+ # }
8
+ # ```
9
+ class AccessLevel < DropboxApi::Metadata::Tag
7
10
  VALID_ACCESS_LEVELS = [
8
11
  :owner,
9
12
  :editor,
@@ -1,17 +1,20 @@
1
1
  module DropboxApi::Metadata
2
2
  # Example of a {AddFileMemberResult}:
3
- # {
4
- # "member":{
5
- # ".tag": "email",
6
- # "email": "somebody@test.com"
7
- # },
8
- # "result": {
9
- # ".tag": "success",
10
- # "success": {
11
- # ".tag": "viewer"
12
- # }
3
+ #
4
+ # ```json
5
+ # {
6
+ # "member":{
7
+ # ".tag": "email",
8
+ # "email": "somebody@test.com"
9
+ # },
10
+ # "result": {
11
+ # ".tag": "success",
12
+ # "success": {
13
+ # ".tag": "viewer"
13
14
  # }
14
15
  # }
16
+ # }
17
+ # ```
15
18
  class AddFileMemberResult < Base
16
19
  field :member, DropboxApi::Metadata::Member
17
20
  field :result, DropboxApi::Metadata::FileMemberAction