dropbox_api 0.1.18 → 0.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +9 -8
- data/.travis.yml +0 -2
- data/Gemfile +4 -3
- data/README.md +7 -2
- data/Rakefile +4 -3
- data/api_coverage.md +1 -1
- data/bin/console +4 -3
- data/dropbox_api.gemspec +15 -14
- data/lib/dropbox_api.rb +12 -2
- data/lib/dropbox_api/authenticator.rb +3 -2
- data/lib/dropbox_api/chunked_uploader.rb +2 -1
- data/lib/dropbox_api/client.rb +2 -1
- data/lib/dropbox_api/connection_builder.rb +1 -0
- data/lib/dropbox_api/endpoints/auth/token_revoke.rb +2 -1
- data/lib/dropbox_api/endpoints/base.rb +4 -3
- data/lib/dropbox_api/endpoints/content_download.rb +4 -6
- data/lib/dropbox_api/endpoints/content_upload.rb +2 -1
- data/lib/dropbox_api/endpoints/file_requests/create_file_request.rb +4 -3
- data/lib/dropbox_api/endpoints/files/copy.rb +4 -3
- data/lib/dropbox_api/endpoints/files/copy_batch.rb +3 -2
- data/lib/dropbox_api/endpoints/files/copy_batch_check.rb +3 -2
- data/lib/dropbox_api/endpoints/files/copy_reference_get.rb +3 -2
- data/lib/dropbox_api/endpoints/files/copy_reference_save.rb +4 -3
- data/lib/dropbox_api/endpoints/files/create_folder.rb +3 -2
- data/lib/dropbox_api/endpoints/files/create_folder_batch.rb +3 -2
- data/lib/dropbox_api/endpoints/files/create_folder_batch_check.rb +3 -2
- data/lib/dropbox_api/endpoints/files/delete.rb +3 -2
- data/lib/dropbox_api/endpoints/files/delete_batch.rb +3 -2
- data/lib/dropbox_api/endpoints/files/delete_batch_check.rb +3 -2
- data/lib/dropbox_api/endpoints/files/download.rb +3 -2
- data/lib/dropbox_api/endpoints/files/get_metadata.rb +3 -2
- data/lib/dropbox_api/endpoints/files/get_preview.rb +3 -2
- data/lib/dropbox_api/endpoints/files/get_temporary_link.rb +3 -2
- data/lib/dropbox_api/endpoints/files/get_thumbnail.rb +3 -2
- data/lib/dropbox_api/endpoints/files/get_thumbnail_batch.rb +4 -3
- data/lib/dropbox_api/endpoints/files/list_folder.rb +3 -2
- data/lib/dropbox_api/endpoints/files/list_folder_continue.rb +3 -2
- data/lib/dropbox_api/endpoints/files/list_folder_get_latest_cursor.rb +2 -1
- data/lib/dropbox_api/endpoints/files/list_folder_longpoll.rb +3 -2
- data/lib/dropbox_api/endpoints/files/list_revisions.rb +3 -2
- data/lib/dropbox_api/endpoints/files/move.rb +4 -3
- data/lib/dropbox_api/endpoints/files/permanently_delete.rb +3 -2
- data/lib/dropbox_api/endpoints/files/restore.rb +4 -3
- data/lib/dropbox_api/endpoints/files/save_url.rb +4 -3
- data/lib/dropbox_api/endpoints/files/save_url_check_job_status.rb +3 -2
- data/lib/dropbox_api/endpoints/files/search.rb +16 -27
- data/lib/dropbox_api/endpoints/files/upload.rb +2 -1
- data/lib/dropbox_api/endpoints/files/upload_session_append_v2.rb +3 -2
- data/lib/dropbox_api/endpoints/files/upload_session_finish.rb +4 -3
- data/lib/dropbox_api/endpoints/files/upload_session_start.rb +4 -3
- data/lib/dropbox_api/endpoints/rpc.rb +2 -1
- data/lib/dropbox_api/endpoints/rpc_content.rb +2 -1
- data/lib/dropbox_api/endpoints/rpc_notify.rb +2 -1
- data/lib/dropbox_api/endpoints/sharing/add_file_member.rb +4 -3
- data/lib/dropbox_api/endpoints/sharing/add_folder_member.rb +4 -3
- data/lib/dropbox_api/endpoints/sharing/create_shared_link_with_settings.rb +4 -3
- data/lib/dropbox_api/endpoints/sharing/get_shared_link_metadata.rb +3 -2
- data/lib/dropbox_api/endpoints/sharing/list_file_members.rb +4 -3
- data/lib/dropbox_api/endpoints/sharing/list_folder_members.rb +4 -3
- data/lib/dropbox_api/endpoints/sharing/list_shared_links.rb +2 -1
- data/lib/dropbox_api/endpoints/sharing/revoke_shared_link.rb +3 -2
- data/lib/dropbox_api/endpoints/sharing/share_folder.rb +3 -2
- data/lib/dropbox_api/endpoints/sharing/unshare_file.rb +3 -2
- data/lib/dropbox_api/endpoints/users/get_account.rb +3 -2
- data/lib/dropbox_api/endpoints/users/get_account_batch.rb +3 -2
- data/lib/dropbox_api/endpoints/users/get_current_account.rb +2 -1
- data/lib/dropbox_api/endpoints/users/get_space_usage.rb +2 -1
- data/lib/dropbox_api/endpoints/virtual/upload_by_chunks.rb +1 -0
- data/lib/dropbox_api/errors/add_file_member_error.rb +5 -4
- data/lib/dropbox_api/errors/add_folder_member_error.rb +11 -10
- data/lib/dropbox_api/errors/add_member_selector_error.rb +6 -5
- data/lib/dropbox_api/errors/already_shared_error.rb +1 -0
- data/lib/dropbox_api/errors/basic_error.rb +2 -1
- data/lib/dropbox_api/errors/create_file_request_error.rb +1 -0
- data/lib/dropbox_api/errors/create_folder_batch_error.rb +2 -1
- data/lib/dropbox_api/errors/create_folder_error.rb +2 -1
- data/lib/dropbox_api/errors/create_shared_link_with_settings_error.rb +6 -5
- data/lib/dropbox_api/errors/delete_error.rb +4 -3
- data/lib/dropbox_api/errors/download_error.rb +2 -1
- data/lib/dropbox_api/errors/file_member_action_error.rb +5 -4
- data/lib/dropbox_api/errors/get_account_error.rb +2 -1
- data/lib/dropbox_api/errors/get_copy_reference_error.rb +2 -1
- data/lib/dropbox_api/errors/get_metadata_error.rb +2 -1
- data/lib/dropbox_api/errors/http_error.rb +1 -0
- data/lib/dropbox_api/errors/list_folder_continue_error.rb +3 -2
- data/lib/dropbox_api/errors/list_folder_error.rb +2 -1
- data/lib/dropbox_api/errors/list_folder_longpoll_error.rb +2 -1
- data/lib/dropbox_api/errors/list_revisions_error.rb +2 -1
- data/lib/dropbox_api/errors/list_shared_links_error.rb +3 -2
- data/lib/dropbox_api/errors/lookup_error.rb +6 -5
- data/lib/dropbox_api/errors/poll_error.rb +3 -2
- data/lib/dropbox_api/errors/preview_error.rb +5 -4
- data/lib/dropbox_api/errors/relocation_batch_entry_error.rb +4 -3
- data/lib/dropbox_api/errors/relocation_error.rb +8 -7
- data/lib/dropbox_api/errors/restore_error.rb +4 -3
- data/lib/dropbox_api/errors/revoke_shared_link_error.rb +5 -4
- data/lib/dropbox_api/errors/save_copy_reference_error.rb +6 -5
- data/lib/dropbox_api/errors/save_url_error.rb +5 -4
- data/lib/dropbox_api/errors/search_error.rb +2 -1
- data/lib/dropbox_api/errors/settings_error.rb +3 -2
- data/lib/dropbox_api/errors/share_folder_error.rb +6 -5
- data/lib/dropbox_api/errors/share_path_error.rb +12 -11
- data/lib/dropbox_api/errors/shared_folder_access_error.rb +5 -4
- data/lib/dropbox_api/errors/shared_link_error.rb +4 -3
- data/lib/dropbox_api/errors/sharing_file_access_error.rb +6 -5
- data/lib/dropbox_api/errors/sharing_user_error.rb +2 -1
- data/lib/dropbox_api/errors/thumbnail_batch_error.rb +2 -1
- data/lib/dropbox_api/errors/thumbnail_error.rb +5 -4
- data/lib/dropbox_api/errors/too_many_requests_error.rb +3 -2
- data/lib/dropbox_api/errors/unshare_file_error.rb +3 -2
- data/lib/dropbox_api/errors/upload_error.rb +2 -1
- data/lib/dropbox_api/errors/upload_session_finish_error.rb +4 -3
- data/lib/dropbox_api/errors/upload_session_lookup_error.rb +5 -4
- data/lib/dropbox_api/errors/upload_session_offset_error.rb +1 -0
- data/lib/dropbox_api/errors/upload_write_failed_error.rb +2 -1
- data/lib/dropbox_api/errors/write_conflict_error.rb +4 -3
- data/lib/dropbox_api/errors/write_error.rb +6 -5
- data/lib/dropbox_api/metadata/access_level.rb +1 -0
- data/lib/dropbox_api/metadata/add_file_member_result.rb +1 -0
- data/lib/dropbox_api/metadata/add_member.rb +3 -2
- data/lib/dropbox_api/metadata/base.rb +2 -1
- data/lib/dropbox_api/metadata/basic_account.rb +1 -0
- data/lib/dropbox_api/metadata/commit_info.rb +2 -1
- data/lib/dropbox_api/metadata/deleted.rb +1 -0
- data/lib/dropbox_api/metadata/dimensions.rb +1 -0
- data/lib/dropbox_api/metadata/field.rb +7 -4
- data/lib/dropbox_api/metadata/file.rb +2 -1
- data/lib/dropbox_api/metadata/file_categories_list.rb +9 -0
- data/lib/dropbox_api/metadata/file_category.rb +22 -0
- data/lib/dropbox_api/metadata/file_extensions_list.rb +13 -0
- data/lib/dropbox_api/metadata/file_link_metadata.rb +1 -0
- data/lib/dropbox_api/metadata/file_member_action.rb +2 -1
- data/lib/dropbox_api/metadata/file_request.rb +1 -0
- data/lib/dropbox_api/metadata/file_status.rb +14 -0
- data/lib/dropbox_api/metadata/folder.rb +2 -1
- data/lib/dropbox_api/metadata/folder_link_metadata.rb +1 -0
- data/lib/dropbox_api/metadata/folder_sharing_info.rb +1 -0
- data/lib/dropbox_api/metadata/link_permissions.rb +1 -0
- data/lib/dropbox_api/metadata/location.rb +1 -0
- data/lib/dropbox_api/metadata/media_info.rb +1 -0
- data/lib/dropbox_api/metadata/media_metadata.rb +1 -0
- data/lib/dropbox_api/metadata/member.rb +6 -5
- data/lib/dropbox_api/metadata/member_action.rb +1 -0
- data/lib/dropbox_api/metadata/member_action_list.rb +1 -0
- data/lib/dropbox_api/metadata/member_permission.rb +1 -0
- data/lib/dropbox_api/metadata/member_permission_list.rb +1 -0
- data/lib/dropbox_api/metadata/metadata_v2.rb +7 -0
- data/lib/dropbox_api/metadata/name.rb +1 -0
- data/lib/dropbox_api/metadata/parent_folder_access_info.rb +1 -0
- data/lib/dropbox_api/metadata/photo_metadata.rb +1 -0
- data/lib/dropbox_api/metadata/resource.rb +2 -1
- data/lib/dropbox_api/metadata/search_match_field_options.rb +9 -0
- data/lib/dropbox_api/metadata/search_match_type_v2.rb +16 -0
- data/lib/dropbox_api/metadata/search_match_v2.rb +18 -0
- data/lib/dropbox_api/metadata/search_options.rb +33 -0
- data/lib/dropbox_api/metadata/search_order_by.rb +14 -0
- data/lib/dropbox_api/metadata/shared_folder.rb +1 -0
- data/lib/dropbox_api/metadata/shared_folder_policy.rb +1 -0
- data/lib/dropbox_api/metadata/shared_link.rb +3 -2
- data/lib/dropbox_api/metadata/shared_link_metadata.rb +2 -1
- data/lib/dropbox_api/metadata/space_allocation.rb +1 -0
- data/lib/dropbox_api/metadata/space_usage.rb +1 -0
- data/lib/dropbox_api/metadata/tag.rb +2 -1
- data/lib/dropbox_api/metadata/team.rb +1 -0
- data/lib/dropbox_api/metadata/team_member_info.rb +1 -0
- data/lib/dropbox_api/metadata/thumbnail_batch_result_data.rb +1 -0
- data/lib/dropbox_api/metadata/thumbnail_batch_result_entry.rb +3 -2
- data/lib/dropbox_api/metadata/upload_session_cursor.rb +1 -0
- data/lib/dropbox_api/metadata/video_metadata.rb +1 -0
- data/lib/dropbox_api/metadata/write_mode.rb +6 -5
- data/lib/dropbox_api/middleware/decode_result.rb +3 -2
- data/lib/dropbox_api/middleware/stack.rb +1 -0
- data/lib/dropbox_api/options_validator.rb +1 -0
- data/lib/dropbox_api/result_builder.rb +3 -2
- data/lib/dropbox_api/results/add_file_member_result_list.rb +1 -0
- data/lib/dropbox_api/results/base.rb +1 -0
- data/lib/dropbox_api/results/basic_account_batch.rb +1 -0
- data/lib/dropbox_api/results/copy_batch_result.rb +2 -1
- data/lib/dropbox_api/results/create_folder_batch_result.rb +5 -4
- data/lib/dropbox_api/results/create_folder_batch_result_entry.rb +1 -0
- data/lib/dropbox_api/results/delete_batch_result.rb +5 -4
- data/lib/dropbox_api/results/delete_batch_result_entry.rb +1 -0
- data/lib/dropbox_api/results/get_copy_reference_result.rb +4 -3
- data/lib/dropbox_api/results/get_temporary_link_result.rb +3 -2
- data/lib/dropbox_api/results/get_thumbnail_batch_result.rb +2 -1
- data/lib/dropbox_api/results/list_folder_get_latest_cursor_result.rb +2 -1
- data/lib/dropbox_api/results/list_folder_longpoll_result.rb +3 -2
- data/lib/dropbox_api/results/list_folder_result.rb +4 -3
- data/lib/dropbox_api/results/list_revisions_result.rb +3 -2
- data/lib/dropbox_api/results/list_shared_links_result.rb +4 -3
- data/lib/dropbox_api/results/relocation_batch_result.rb +5 -4
- data/lib/dropbox_api/results/relocation_batch_result_entry.rb +1 -0
- data/lib/dropbox_api/results/save_copy_reference_result.rb +2 -1
- data/lib/dropbox_api/results/save_url_job_status.rb +7 -6
- data/lib/dropbox_api/results/save_url_result.rb +2 -1
- data/lib/dropbox_api/results/search/match.rb +3 -2
- data/lib/dropbox_api/results/search_v2_result.rb +24 -0
- data/lib/dropbox_api/results/share_folder_launch.rb +4 -3
- data/lib/dropbox_api/results/shared_file_members.rb +5 -4
- data/lib/dropbox_api/results/shared_folder_members.rb +5 -4
- data/lib/dropbox_api/results/upload_session_start.rb +2 -1
- data/lib/dropbox_api/results/void_result.rb +1 -0
- data/lib/dropbox_api/version.rb +2 -1
- data/yardoc/endpoint_handler.rb +2 -1
- data/yardoc/helpers/html_helper.rb +2 -1
- data/yardoc/rspec.rb +8 -7
- data/yardoc/templates/default/method_details/setup.rb +1 -0
- metadata +24 -16
- data/.rubocop_todo.yml +0 -442
- data/CHANGES.md +0 -7
- data/lib/dropbox_api/results/search_result.rb +0 -22
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Metadata
|
2
3
|
# Examples of serialized {AddMember} objects:
|
3
4
|
#
|
@@ -33,7 +34,7 @@ module DropboxApi::Metadata
|
|
33
34
|
private
|
34
35
|
|
35
36
|
def hash_from_email_or_dropbox_id(email_or_id)
|
36
|
-
if email_or_id.start_with?
|
37
|
+
if email_or_id.start_with? 'dbid:'
|
37
38
|
hash_from_dropbox_id email_or_id
|
38
39
|
elsif email_or_id =~ /\A[^@\s]+@[^@\s]+\z/
|
39
40
|
hash_from_email email_or_id
|
@@ -44,15 +45,15 @@ module DropboxApi::Metadata
|
|
44
45
|
|
45
46
|
def hash_from_dropbox_id(dropbox_id)
|
46
47
|
{
|
47
|
-
|
48
|
-
:
|
48
|
+
".tag": :dropbox_id,
|
49
|
+
dropbox_id: dropbox_id
|
49
50
|
}
|
50
51
|
end
|
51
52
|
|
52
53
|
def hash_from_email(email)
|
53
54
|
{
|
54
|
-
|
55
|
-
:
|
55
|
+
".tag": :email,
|
56
|
+
email: email
|
56
57
|
}
|
57
58
|
end
|
58
59
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Metadata
|
2
3
|
# This class is used as an adapter so we can create an object of the pertinent
|
3
4
|
# class when we need to infer the type from the data.
|
@@ -9,7 +10,7 @@ module DropboxApi::Metadata
|
|
9
10
|
class Resource
|
10
11
|
class << self
|
11
12
|
def new(data)
|
12
|
-
class_for(data[
|
13
|
+
class_for(data['.tag'].to_sym).new(data)
|
13
14
|
end
|
14
15
|
|
15
16
|
private
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DropboxApi::Metadata
|
4
|
+
class SearchMatchTypeV2 < DropboxApi::Metadata::Tag
|
5
|
+
VALID_VALUES = %i[
|
6
|
+
filename
|
7
|
+
file_content
|
8
|
+
filename_and_content
|
9
|
+
image_content
|
10
|
+
].freeze
|
11
|
+
|
12
|
+
def self.valid_values
|
13
|
+
VALID_VALUES
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DropboxApi::Metadata
|
4
|
+
class SearchMatchV2 < Base
|
5
|
+
# The metadata for the matched file or folder.
|
6
|
+
field :metadata, DropboxApi::Metadata::MetadataV2
|
7
|
+
|
8
|
+
# The type of the match. This field is optional.
|
9
|
+
field :match_type, SearchMatchTypeV2
|
10
|
+
|
11
|
+
def resource
|
12
|
+
# for some strange reason, v2 of this search endpoint doesn't have
|
13
|
+
# the `resource` field anymore and file metadata is wrapped in a
|
14
|
+
# metadata/metadata field...
|
15
|
+
metadata.metadata
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DropboxApi::Metadata
|
4
|
+
class SearchOptions < Base
|
5
|
+
# Scopes the search to a path in the user's Dropbox. Searches the entire
|
6
|
+
# Dropbox if not specified. This field is optional.
|
7
|
+
field :path, String, :optional
|
8
|
+
|
9
|
+
# The maximum number of search results to return. The default for this
|
10
|
+
# field is 100.
|
11
|
+
field :max_results, Integer, :optional
|
12
|
+
|
13
|
+
# Specified property of the order of search results. By default, results
|
14
|
+
# are sorted by relevance. This field is optional.
|
15
|
+
field :order_by, DropboxApi::Metadata::SearchOrderBy, :optional
|
16
|
+
|
17
|
+
# Restricts search to the given file status. The default for this union
|
18
|
+
# is active.
|
19
|
+
field :file_status, DropboxApi::Metadata::FileStatus, :optional
|
20
|
+
|
21
|
+
# Restricts search to only match on filenames. The default for this field
|
22
|
+
# is false.
|
23
|
+
field :filename_only, :boolean, :optional
|
24
|
+
|
25
|
+
# Restricts search to only the extensions specified. Only supported for
|
26
|
+
# active file search. This field is optional.
|
27
|
+
field :file_extensions, DropboxApi::Metadata::FileExtensionsList, :optional
|
28
|
+
|
29
|
+
# Restricts search to only the file categories specified. Only supported
|
30
|
+
# for active file search. This field is optional.
|
31
|
+
field :file_categories, DropboxApi::Metadata::FileCategoriesList, :optional
|
32
|
+
end
|
33
|
+
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Metadata
|
2
3
|
class SharedLink < Base
|
3
4
|
VALID_KEYS = [:url, :password]
|
@@ -6,7 +7,7 @@ module DropboxApi::Metadata
|
|
6
7
|
@shared_link =
|
7
8
|
case param
|
8
9
|
when String
|
9
|
-
{:
|
10
|
+
{url: param}
|
10
11
|
when Hash
|
11
12
|
param
|
12
13
|
end
|
@@ -16,7 +17,7 @@ module DropboxApi::Metadata
|
|
16
17
|
|
17
18
|
def check_validity
|
18
19
|
if @shared_link[:url].nil?
|
19
|
-
raise ArgumentError,
|
20
|
+
raise ArgumentError, 'Missing `:url` option'
|
20
21
|
end
|
21
22
|
|
22
23
|
@shared_link.keys.each do |key|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Metadata
|
2
3
|
# This class is used as an adapter so we can create an object of the pertinent
|
3
4
|
# class when we need to infer the type from the data.
|
@@ -6,7 +7,7 @@ module DropboxApi::Metadata
|
|
6
7
|
class SharedLinkMetadata
|
7
8
|
class << self
|
8
9
|
def new(data)
|
9
|
-
class_for(data[
|
10
|
+
class_for(data['.tag'].to_sym).new(data)
|
10
11
|
end
|
11
12
|
|
12
13
|
private
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Metadata
|
2
3
|
class Tag < DropboxApi::Metadata::Base
|
3
4
|
def self.new(data)
|
@@ -5,7 +6,7 @@ module DropboxApi::Metadata
|
|
5
6
|
when ::Symbol
|
6
7
|
validate(data)
|
7
8
|
when Hash
|
8
|
-
new(data[
|
9
|
+
new(data['.tag'].to_sym)
|
9
10
|
when String
|
10
11
|
new(data.to_sym)
|
11
12
|
else
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Metadata
|
2
3
|
# This class is used as an adapter so we can create an object of the pertinent
|
3
4
|
# class when we need to infer the type from the data.
|
@@ -9,11 +10,11 @@ module DropboxApi::Metadata
|
|
9
10
|
class ThumbnailBatchResultEntry
|
10
11
|
class << self
|
11
12
|
def new(data)
|
12
|
-
case data[
|
13
|
+
case data['.tag'].to_sym
|
13
14
|
when :success
|
14
15
|
DropboxApi::Metadata::ThumbnailBatchResultData.new(data)
|
15
16
|
when :failure
|
16
|
-
DropboxApi::Errors::ThumbnailError.build(
|
17
|
+
DropboxApi::Errors::ThumbnailError.build('Thumbnail generation failed', data['failure'])
|
17
18
|
else
|
18
19
|
raise NotImplementedError, "Unknown result type: #{data[".tag"]}"
|
19
20
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Metadata
|
2
3
|
# Your intent when writing a file to some path. This is used to determine
|
3
4
|
# what constitutes a conflict and what the autorename strategy is.
|
@@ -48,22 +49,22 @@ module DropboxApi::Metadata
|
|
48
49
|
@write_mode = write_mode
|
49
50
|
when String, ::Symbol
|
50
51
|
@write_mode = {
|
51
|
-
|
52
|
+
'.tag' => write_mode
|
52
53
|
}
|
53
54
|
@write_mode[write_mode.to_s] = options unless options.nil?
|
54
55
|
end
|
55
|
-
@write_mode[
|
56
|
+
@write_mode['.tag'] = @write_mode['.tag'].to_sym
|
56
57
|
|
57
58
|
check_validity
|
58
59
|
end
|
59
60
|
|
60
61
|
def check_validity
|
61
|
-
unless valid_mode? @write_mode[
|
62
|
+
unless valid_mode? @write_mode['.tag']
|
62
63
|
raise ArgumentError, "Invalid write mode: #{@write_mode[".tag"]}"
|
63
64
|
end
|
64
65
|
|
65
|
-
if @write_mode[
|
66
|
-
raise ArgumentError,
|
66
|
+
if @write_mode['.tag'] == :update && @write_mode['update'].nil?
|
67
|
+
raise ArgumentError, 'Mode `:update` expects a `rev` number'
|
67
68
|
end
|
68
69
|
end
|
69
70
|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::MiddleWare
|
2
3
|
class DecodeResult < Faraday::Middleware
|
3
4
|
def call(rq_env)
|
@@ -14,7 +15,7 @@ module DropboxApi::MiddleWare
|
|
14
15
|
# Dropbox may send a response with the string 'null' in its body, this
|
15
16
|
# would be a void result. `add_folder_member` is an example of an
|
16
17
|
# endpoint without return values.
|
17
|
-
if json ==
|
18
|
+
if json == 'null'
|
18
19
|
{}
|
19
20
|
else
|
20
21
|
JSON.parse json
|
@@ -22,5 +23,5 @@ module DropboxApi::MiddleWare
|
|
22
23
|
end
|
23
24
|
end
|
24
25
|
|
25
|
-
Faraday::Response.register_middleware :
|
26
|
+
Faraday::Response.register_middleware decode_result: DecodeResult
|
26
27
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi
|
2
3
|
class ResultBuilder
|
3
4
|
def initialize(response_data)
|
@@ -5,11 +6,11 @@ module DropboxApi
|
|
5
6
|
end
|
6
7
|
|
7
8
|
def error_summary
|
8
|
-
@response_data[
|
9
|
+
@response_data['error_summary'] if @response_data.is_a? Hash
|
9
10
|
end
|
10
11
|
|
11
12
|
def error
|
12
|
-
@response_data[
|
13
|
+
@response_data['error']
|
13
14
|
end
|
14
15
|
|
15
16
|
def has_error?
|