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,11 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Errors
|
2
3
|
class SharingFileAccessError < BasicError
|
3
4
|
ErrorSubtypes = {
|
4
|
-
:
|
5
|
-
:
|
6
|
-
:
|
7
|
-
:
|
8
|
-
:
|
5
|
+
no_permission: NoPermissionError,
|
6
|
+
invalid_file: InvalidFileError,
|
7
|
+
is_folder: IsFolderError,
|
8
|
+
inside_public_folder: InsidePublicFolderError,
|
9
|
+
inside_osx_package: InsideOsxPackageError
|
9
10
|
}.freeze
|
10
11
|
end
|
11
12
|
end
|
@@ -1,10 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Errors
|
2
3
|
class ThumbnailError < BasicError
|
3
4
|
ErrorSubtypes = {
|
4
|
-
:
|
5
|
-
:
|
6
|
-
:
|
7
|
-
:
|
5
|
+
path: LookupError,
|
6
|
+
unsupported_extension: UnsupportedExtensionError,
|
7
|
+
unsupported_image: UnsupportedImageError,
|
8
|
+
conversion_error: ConversionError
|
8
9
|
}.freeze
|
9
10
|
end
|
10
11
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Errors
|
2
3
|
class TooManyRequestsError < BasicError; end
|
3
4
|
class TooManyWriteOperationsError < TooManyRequestsError; end
|
@@ -12,8 +13,8 @@ module DropboxApi::Errors
|
|
12
13
|
end
|
13
14
|
|
14
15
|
ErrorSubtypes = {
|
15
|
-
:
|
16
|
-
:
|
16
|
+
too_many_requests: TooManyRequestsError,
|
17
|
+
too_many_write_operations: TooManyWriteOperationsError
|
17
18
|
}
|
18
19
|
end
|
19
20
|
end
|
@@ -1,8 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Errors
|
2
3
|
class UnshareFileError < BasicError
|
3
4
|
ErrorSubtypes = {
|
4
|
-
:
|
5
|
-
:
|
5
|
+
user_error: SharingUserError,
|
6
|
+
access_error: SharingFileAccessError
|
6
7
|
}.freeze
|
7
8
|
end
|
8
9
|
end
|
@@ -1,9 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Errors
|
2
3
|
class UploadSessionFinishError < BasicError
|
3
4
|
ErrorSubtypes = {
|
4
|
-
:
|
5
|
-
:
|
6
|
-
:
|
5
|
+
lookup_failed: UploadSessionLookupError,
|
6
|
+
path: WriteError,
|
7
|
+
too_many_shared_folder_targets: TooManySharedFolderTargetsError
|
7
8
|
}.freeze
|
8
9
|
end
|
9
10
|
end
|
@@ -1,10 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Errors
|
2
3
|
class UploadSessionLookupError < BasicError
|
3
4
|
ErrorSubtypes = {
|
4
|
-
:
|
5
|
-
:
|
6
|
-
:
|
7
|
-
:
|
5
|
+
not_found: NotFoundError,
|
6
|
+
incorrect_offset: UploadSessionOffsetError,
|
7
|
+
closed: CursorClosedError,
|
8
|
+
not_closed: CursorNotClosedError
|
8
9
|
}.freeze
|
9
10
|
end
|
10
11
|
end
|
@@ -1,9 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Errors
|
2
3
|
class WriteConflictError < BasicError
|
3
4
|
ErrorSubtypes = {
|
4
|
-
:
|
5
|
-
:
|
6
|
-
:
|
5
|
+
file: FileConflictError,
|
6
|
+
folder: FolderConflictError,
|
7
|
+
file_ancestor: FileAncestorConflictError
|
7
8
|
}
|
8
9
|
end
|
9
10
|
end
|
@@ -1,11 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Errors
|
2
3
|
class WriteError < BasicError
|
3
4
|
ErrorSubtypes = {
|
4
|
-
:
|
5
|
-
:
|
6
|
-
:
|
7
|
-
:
|
8
|
-
:
|
5
|
+
malformed_path: MalformedPathError,
|
6
|
+
conflict: WriteConflictError,
|
7
|
+
no_write_permission: NoWritePermissionError,
|
8
|
+
insufficient_space: InsufficientSpaceError,
|
9
|
+
disallowed_name: DisallowedNameError
|
9
10
|
}
|
10
11
|
end
|
11
12
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Metadata
|
2
3
|
# Examples of serialized {AddMember} objects:
|
3
4
|
#
|
@@ -25,8 +26,8 @@ module DropboxApi::Metadata
|
|
25
26
|
class << self
|
26
27
|
def build_from_string(member, access_level = :editor)
|
27
28
|
new({
|
28
|
-
|
29
|
-
|
29
|
+
'member' => Member.new(member),
|
30
|
+
'access_level' => access_level
|
30
31
|
})
|
31
32
|
end
|
32
33
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Metadata
|
2
3
|
class Base
|
3
4
|
class << self
|
@@ -46,7 +47,7 @@ module DropboxApi::Metadata
|
|
46
47
|
value = send field_name
|
47
48
|
case value
|
48
49
|
when Time
|
49
|
-
value.utc.strftime(
|
50
|
+
value.utc.strftime('%FT%TZ')
|
50
51
|
when DropboxApi::Metadata::Base
|
51
52
|
value.to_hash
|
52
53
|
else
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Metadata
|
2
3
|
class CommitInfo < Base
|
3
4
|
field :path, String
|
@@ -36,7 +37,7 @@ module DropboxApi::Metadata
|
|
36
37
|
end
|
37
38
|
|
38
39
|
def build_client_modified(client_modified)
|
39
|
-
client_modified.utc.strftime(
|
40
|
+
client_modified.utc.strftime('%FT%TZ')
|
40
41
|
end
|
41
42
|
end
|
42
43
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Metadata
|
2
3
|
class Field
|
3
4
|
def initialize(type, options = [])
|
@@ -24,13 +25,15 @@ module DropboxApi::Metadata
|
|
24
25
|
elsif @type == Float
|
25
26
|
object.to_f
|
26
27
|
elsif @type == Symbol
|
27
|
-
object[
|
28
|
+
object['.tag'].to_sym
|
28
29
|
elsif @type == :boolean
|
29
|
-
object.to_s ==
|
30
|
-
elsif @type.ancestors.include?
|
30
|
+
object.to_s == 'true'
|
31
|
+
elsif @type.ancestors.include?(DropboxApi::Metadata::Base) ||
|
32
|
+
@type.ancestors.include?(Array) ||
|
33
|
+
@type == DropboxApi::Metadata::Resource
|
31
34
|
@type.new(object)
|
32
35
|
else
|
33
|
-
raise NotImplementedError, "Can't cast `#{@type}`"
|
36
|
+
raise NotImplementedError, "Can't cast #{object} to `#{@type}`"
|
34
37
|
end
|
35
38
|
end
|
36
39
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Metadata
|
2
3
|
# Example of a serialized {File} object:
|
3
4
|
#
|
@@ -33,7 +34,7 @@ module DropboxApi::Metadata
|
|
33
34
|
field :has_explicit_shared_members, :boolean, :optional
|
34
35
|
|
35
36
|
def to_hash
|
36
|
-
super.merge(
|
37
|
+
super.merge('.tag' => 'file')
|
37
38
|
end
|
38
39
|
end
|
39
40
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DropboxApi::Metadata
|
4
|
+
class FileCategory < DropboxApi::Metadata::Tag
|
5
|
+
VALID_VALUES = %i[
|
6
|
+
image
|
7
|
+
document
|
8
|
+
pdf
|
9
|
+
spreadsheet
|
10
|
+
presentation
|
11
|
+
audio
|
12
|
+
video
|
13
|
+
folder
|
14
|
+
paper
|
15
|
+
others
|
16
|
+
].freeze
|
17
|
+
|
18
|
+
def self.valid_values
|
19
|
+
VALID_VALUES
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DropboxApi::Metadata
|
4
|
+
class FileExtensionsList < Array
|
5
|
+
def initialize(data)
|
6
|
+
if !data.is_a?(Array) || data.any? { |v| !v.is_a? String }
|
7
|
+
raise ArgumentError, "Invalid extension list: #{data.inspect}."
|
8
|
+
end
|
9
|
+
|
10
|
+
super(data)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Metadata
|
2
3
|
# Example of a serialized FileMemberAction:
|
3
4
|
#
|
@@ -12,7 +13,7 @@ module DropboxApi::Metadata
|
|
12
13
|
class FileMemberAction < Base
|
13
14
|
class << self
|
14
15
|
def new(data)
|
15
|
-
tag = data[
|
16
|
+
tag = data['.tag']
|
16
17
|
class_for(tag.to_sym).new(data[tag])
|
17
18
|
end
|
18
19
|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Metadata
|
2
3
|
# Example of a serialized {Folder} object:
|
3
4
|
#
|
@@ -17,7 +18,7 @@ module DropboxApi::Metadata
|
|
17
18
|
field :sharing_info, DropboxApi::Metadata::FolderSharingInfo, :optional
|
18
19
|
|
19
20
|
def to_hash
|
20
|
-
super.merge(
|
21
|
+
super.merge('.tag' => 'folder')
|
21
22
|
end
|
22
23
|
end
|
23
24
|
end
|