dropbox_api 0.1.18 → 0.1.19
Sign up to get free protection for your applications and to get access to all the features.
- 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?
|