dropbox_api 0.1.16 → 0.1.21
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +1 -0
- data/.rubocop.yml +15 -0
- data/.travis.yml +0 -2
- data/Gemfile +26 -1
- data/README.md +120 -24
- data/Rakefile +4 -3
- data/TODO.md +24 -7
- data/api_coverage.md +8 -8
- data/bin/console +4 -3
- data/docs/DropboxApi/Authenticator.html +14 -20
- data/docs/DropboxApi/ChunkedUploader.html +20 -20
- data/docs/DropboxApi/Client.html +3446 -992
- data/docs/DropboxApi/ConnectionBuilder.html +266 -31
- data/docs/DropboxApi/Endpoints/Auth/TokenRevoke.html +13 -13
- data/docs/DropboxApi/Endpoints/Auth.html +6 -6
- data/docs/DropboxApi/Endpoints/Base.html +92 -11
- data/docs/DropboxApi/Endpoints/ContentDownload.html +37 -48
- data/docs/DropboxApi/Endpoints/ContentUpload.html +35 -46
- data/docs/DropboxApi/Endpoints/Files/Copy.html +15 -15
- data/docs/DropboxApi/Endpoints/Files/CopyBatch.html +359 -0
- data/docs/DropboxApi/Endpoints/Files/CopyBatchCheck.html +305 -0
- data/docs/DropboxApi/Endpoints/Files/CopyReferenceGet.html +14 -14
- data/docs/DropboxApi/Endpoints/Files/CopyReferenceSave.html +15 -15
- data/docs/DropboxApi/Endpoints/Files/CreateFileRequest.html +13 -13
- data/docs/DropboxApi/Endpoints/Files/CreateFolder.html +14 -14
- data/docs/DropboxApi/Endpoints/Files/CreateFolderBatch.html +377 -0
- data/docs/DropboxApi/Endpoints/Files/CreateFolderBatchCheck.html +308 -0
- data/docs/DropboxApi/Endpoints/Files/Delete.html +14 -14
- data/docs/DropboxApi/Endpoints/Files/DeleteBatch.html +305 -0
- data/docs/DropboxApi/Endpoints/Files/DeleteBatchCheck.html +307 -0
- data/docs/DropboxApi/Endpoints/Files/Download.html +14 -14
- data/docs/DropboxApi/Endpoints/Files/GetMetadata.html +14 -14
- data/docs/DropboxApi/Endpoints/Files/GetPreview.html +14 -14
- data/docs/DropboxApi/Endpoints/Files/GetTemporaryLink.html +14 -14
- data/docs/DropboxApi/Endpoints/Files/GetThumbnail.html +14 -14
- data/docs/DropboxApi/Endpoints/Files/GetThumbnailBatch.html +19 -19
- data/docs/DropboxApi/Endpoints/Files/ListFolder.html +39 -20
- data/docs/DropboxApi/Endpoints/Files/ListFolderContinue.html +14 -14
- data/docs/DropboxApi/Endpoints/Files/ListFolderGetLatestCursor.html +13 -13
- data/docs/DropboxApi/Endpoints/Files/ListFolderLongpoll.html +15 -15
- data/docs/DropboxApi/Endpoints/Files/ListRevisions.html +14 -14
- data/docs/DropboxApi/Endpoints/Files/Move.html +15 -15
- data/docs/DropboxApi/Endpoints/Files/PermanentlyDelete.html +14 -14
- data/docs/DropboxApi/Endpoints/Files/Restore.html +15 -15
- data/docs/DropboxApi/Endpoints/Files/SaveUrl.html +15 -15
- data/docs/DropboxApi/Endpoints/Files/SaveUrlCheckJobStatus.html +14 -14
- data/docs/DropboxApi/Endpoints/Files/Search.html +51 -99
- data/docs/DropboxApi/Endpoints/Files/SearchContinue.html +300 -0
- data/docs/DropboxApi/Endpoints/Files/Upload.html +14 -14
- data/docs/DropboxApi/Endpoints/Files/UploadSessionAppendV2.html +14 -14
- data/docs/DropboxApi/Endpoints/Files/UploadSessionFinish.html +15 -15
- data/docs/DropboxApi/Endpoints/Files/UploadSessionStart.html +15 -15
- data/docs/DropboxApi/Endpoints/Files.html +8 -8
- data/docs/DropboxApi/Endpoints/Rpc.html +36 -47
- data/docs/DropboxApi/Endpoints/RpcContent.html +28 -33
- data/docs/DropboxApi/Endpoints/RpcNotify.html +28 -33
- data/docs/DropboxApi/Endpoints/Sharing/AddFileMember.html +15 -15
- data/docs/DropboxApi/Endpoints/Sharing/AddFolderMember.html +15 -15
- data/docs/DropboxApi/Endpoints/Sharing/CreateSharedLinkWithSettings.html +110 -19
- data/docs/DropboxApi/Endpoints/Sharing/GetSharedLinkMetadata.html +14 -14
- data/docs/DropboxApi/Endpoints/Sharing/ListFileMembers.html +15 -15
- data/docs/DropboxApi/Endpoints/Sharing/ListFolderMembers.html +15 -15
- data/docs/DropboxApi/Endpoints/Sharing/ListSharedLinks.html +13 -13
- data/docs/DropboxApi/Endpoints/Sharing/RevokeSharedLink.html +293 -0
- data/docs/DropboxApi/Endpoints/Sharing/ShareFolder.html +14 -14
- data/docs/DropboxApi/Endpoints/Sharing/UnshareFile.html +14 -14
- data/docs/DropboxApi/Endpoints/Sharing.html +8 -8
- data/docs/DropboxApi/Endpoints/Users/GetAccount.html +14 -14
- data/docs/DropboxApi/Endpoints/Users/GetAccountBatch.html +14 -14
- data/docs/DropboxApi/Endpoints/Users/GetCurrentAccount.html +13 -13
- data/docs/DropboxApi/Endpoints/Users/GetSpaceUsage.html +13 -13
- data/docs/DropboxApi/Endpoints/Users.html +6 -6
- data/docs/DropboxApi/Endpoints.html +6 -6
- data/docs/DropboxApi/Errors/AddFileMemberError.html +10 -10
- data/docs/DropboxApi/Errors/AddFolderMemberError.html +16 -16
- data/docs/DropboxApi/Errors/AddMemberSelectorError.html +11 -11
- data/docs/DropboxApi/Errors/AlreadySharedError.html +9 -9
- data/docs/DropboxApi/Errors/BadPathError.html +6 -6
- data/docs/DropboxApi/Errors/BasicError.html +18 -18
- data/docs/DropboxApi/Errors/CantCopySharedFolderError.html +6 -6
- data/docs/DropboxApi/Errors/CantMoveFolderIntoItselfError.html +6 -6
- data/docs/DropboxApi/Errors/CantNestSharedFolderError.html +6 -6
- data/docs/DropboxApi/Errors/CantShareOutsideTeamError.html +6 -6
- data/docs/DropboxApi/Errors/ContainsSharedFolderError.html +6 -6
- data/docs/DropboxApi/Errors/ConversionError.html +6 -6
- data/docs/DropboxApi/Errors/CreateFileRequestError.html +6 -6
- data/docs/DropboxApi/Errors/CreateFolderBatchError.html +161 -0
- data/docs/DropboxApi/Errors/CreateFolderError.html +7 -7
- data/docs/DropboxApi/Errors/CreateSharedLinkWithSettingsError.html +11 -11
- data/docs/DropboxApi/Errors/CursorClosedError.html +6 -6
- data/docs/DropboxApi/Errors/CursorNotClosedError.html +6 -6
- data/docs/DropboxApi/Errors/DeleteError.html +9 -8
- data/docs/DropboxApi/Errors/DisallowedNameError.html +6 -6
- data/docs/DropboxApi/Errors/DisallowedSharedLinkPolicyError.html +6 -6
- data/docs/DropboxApi/Errors/DownloadError.html +7 -7
- data/docs/DropboxApi/Errors/DownloadFailedError.html +6 -6
- data/docs/DropboxApi/Errors/EmailUnverifiedError.html +6 -6
- data/docs/DropboxApi/Errors/ExpiredAccessTokenError.html +143 -0
- data/docs/DropboxApi/Errors/FileAncestorConflictError.html +6 -6
- data/docs/DropboxApi/Errors/FileConflictError.html +6 -6
- data/docs/DropboxApi/Errors/FileMemberActionError.html +10 -10
- data/docs/DropboxApi/Errors/FolderConflictError.html +6 -6
- data/docs/DropboxApi/Errors/GetAccountError.html +7 -7
- data/docs/DropboxApi/Errors/GetCopyReferenceError.html +7 -7
- data/docs/DropboxApi/Errors/GetMetadataError.html +7 -7
- data/docs/DropboxApi/Errors/GroupDeletedError.html +6 -6
- data/docs/DropboxApi/Errors/GroupNotOnTeamError.html +6 -6
- data/docs/DropboxApi/Errors/HttpError.html +6 -6
- data/docs/DropboxApi/Errors/InProgressError.html +6 -6
- data/docs/DropboxApi/Errors/InsideAppFolderError.html +6 -6
- data/docs/DropboxApi/Errors/InsideOsxPackageError.html +6 -6
- data/docs/DropboxApi/Errors/InsidePublicFolderError.html +6 -6
- data/docs/DropboxApi/Errors/InsideSharedFolderError.html +6 -6
- data/docs/DropboxApi/Errors/InsufficientPlanError.html +6 -6
- data/docs/DropboxApi/Errors/InsufficientSpaceError.html +6 -6
- data/docs/DropboxApi/Errors/InternalError.html +6 -6
- data/docs/DropboxApi/Errors/InvalidCommentError.html +6 -6
- data/docs/DropboxApi/Errors/InvalidCopyReferenceError.html +6 -6
- data/docs/DropboxApi/Errors/InvalidCursorError.html +6 -6
- data/docs/DropboxApi/Errors/InvalidDropboxIdError.html +6 -6
- data/docs/DropboxApi/Errors/InvalidEmailError.html +6 -6
- data/docs/DropboxApi/Errors/InvalidFileError.html +6 -6
- data/docs/DropboxApi/Errors/InvalidIdError.html +6 -6
- data/docs/DropboxApi/Errors/InvalidMemberError.html +6 -6
- data/docs/DropboxApi/Errors/InvalidPathError.html +6 -6
- data/docs/DropboxApi/Errors/InvalidRevisionError.html +6 -6
- data/docs/DropboxApi/Errors/InvalidSettingsError.html +6 -6
- data/docs/DropboxApi/Errors/InvalidUrlError.html +6 -6
- data/docs/DropboxApi/Errors/IsAppFolderError.html +6 -6
- data/docs/DropboxApi/Errors/IsFileError.html +6 -6
- data/docs/DropboxApi/Errors/IsFolderError.html +6 -6
- data/docs/DropboxApi/Errors/IsOsxPackageError.html +6 -6
- data/docs/DropboxApi/Errors/IsPublicFolderError.html +6 -6
- data/docs/DropboxApi/Errors/ListFolderContinueError.html +8 -8
- data/docs/DropboxApi/Errors/ListFolderError.html +7 -7
- data/docs/DropboxApi/Errors/ListFolderLongpollError.html +7 -7
- data/docs/DropboxApi/Errors/ListRevisionsError.html +7 -7
- data/docs/DropboxApi/Errors/ListSharedLinksError.html +8 -8
- data/docs/DropboxApi/Errors/LookupError.html +11 -11
- data/docs/DropboxApi/Errors/MalformedPathError.html +6 -6
- data/docs/DropboxApi/Errors/NoAccountError.html +6 -6
- data/docs/DropboxApi/Errors/NoPermissionError.html +6 -6
- data/docs/DropboxApi/Errors/NoWritePermissionError.html +6 -6
- data/docs/DropboxApi/Errors/NotAMemberError.html +6 -6
- data/docs/DropboxApi/Errors/NotFileError.html +6 -6
- data/docs/DropboxApi/Errors/NotFolderError.html +6 -6
- data/docs/DropboxApi/Errors/NotFoundError.html +6 -6
- data/docs/DropboxApi/Errors/PollError.html +8 -8
- data/docs/DropboxApi/Errors/PreviewError.html +10 -10
- data/docs/DropboxApi/Errors/RateLimitError.html +6 -6
- data/docs/DropboxApi/Errors/RelocationBatchEntryError.html +163 -0
- data/docs/DropboxApi/Errors/RelocationError.html +13 -13
- data/docs/DropboxApi/Errors/RestoreError.html +9 -9
- data/docs/DropboxApi/Errors/RestrictedContentError.html +6 -6
- data/docs/DropboxApi/Errors/RevokeSharedLinkError.html +164 -0
- data/docs/DropboxApi/Errors/SaveCopyReferenceError.html +11 -11
- data/docs/DropboxApi/Errors/SaveUrlError.html +10 -10
- data/docs/DropboxApi/Errors/SearchError.html +7 -7
- data/docs/DropboxApi/Errors/SettingsError.html +8 -8
- data/docs/DropboxApi/Errors/ShareFolderError.html +11 -11
- data/docs/DropboxApi/Errors/SharePathError.html +17 -17
- data/docs/DropboxApi/Errors/SharedFolderAccessError.html +10 -10
- data/docs/DropboxApi/Errors/SharedLinkAccessDeniedError.html +6 -6
- data/docs/DropboxApi/Errors/SharedLinkAlreadyExistsError.html +6 -6
- data/docs/DropboxApi/Errors/SharedLinkError.html +9 -9
- data/docs/DropboxApi/Errors/SharedLinkMalformedError.html +143 -0
- data/docs/DropboxApi/Errors/SharedLinkNotFoundError.html +6 -6
- data/docs/DropboxApi/Errors/SharingFileAccessError.html +11 -11
- data/docs/DropboxApi/Errors/SharingUserError.html +7 -7
- data/docs/DropboxApi/Errors/TeamFolderError.html +6 -6
- data/docs/DropboxApi/Errors/TeamPolicyDisallowsMemberPolicyError.html +6 -6
- data/docs/DropboxApi/Errors/ThumbnailBatchError.html +7 -7
- data/docs/DropboxApi/Errors/ThumbnailError.html +10 -10
- data/docs/DropboxApi/Errors/TooManyFilesError.html +6 -6
- data/docs/DropboxApi/Errors/TooManyMembersError.html +6 -6
- data/docs/DropboxApi/Errors/TooManyPendingInvitesError.html +6 -6
- data/docs/DropboxApi/Errors/TooManyRequestsError.html +15 -15
- data/docs/DropboxApi/Errors/TooManySharedFolderTargetsError.html +6 -6
- data/docs/DropboxApi/Errors/TooManyWriteOperationsError.html +6 -6
- data/docs/DropboxApi/Errors/UnmountedError.html +6 -6
- data/docs/DropboxApi/Errors/UnshareFileError.html +8 -8
- data/docs/DropboxApi/Errors/UnsupportedContentError.html +6 -6
- data/docs/DropboxApi/Errors/UnsupportedExtensionError.html +6 -6
- data/docs/DropboxApi/Errors/UnsupportedImageError.html +6 -6
- data/docs/DropboxApi/Errors/UnsupportedLinkTypeError.html +6 -6
- data/docs/DropboxApi/Errors/UnverifiedDropboxId.html +6 -6
- data/docs/DropboxApi/Errors/UploadError.html +7 -7
- data/docs/DropboxApi/Errors/UploadSessionFinishError.html +9 -9
- data/docs/DropboxApi/Errors/UploadSessionLookupError.html +10 -10
- data/docs/DropboxApi/Errors/UploadSessionOffsetError.html +10 -10
- data/docs/DropboxApi/Errors/UploadWriteFailedError.html +7 -7
- data/docs/DropboxApi/Errors/WriteConflictError.html +9 -9
- data/docs/DropboxApi/Errors/WriteError.html +11 -11
- data/docs/DropboxApi/Errors.html +8 -8
- data/docs/DropboxApi/Metadata/AccessLevel.html +9 -9
- data/docs/DropboxApi/Metadata/AddFileMemberResult.html +6 -6
- data/docs/DropboxApi/Metadata/AddMember.html +11 -11
- data/docs/DropboxApi/Metadata/Base.html +24 -24
- data/docs/DropboxApi/Metadata/BasicAccount.html +12 -7
- data/docs/DropboxApi/Metadata/CommitInfo.html +9 -9
- data/docs/DropboxApi/Metadata/Deleted.html +6 -6
- data/docs/DropboxApi/Metadata/Dimensions.html +6 -6
- data/docs/DropboxApi/Metadata/Field.html +24 -20
- data/docs/DropboxApi/Metadata/File.html +10 -10
- data/docs/DropboxApi/Metadata/FileCategoriesList.html +205 -0
- data/docs/DropboxApi/Metadata/FileCategory.html +250 -0
- data/docs/DropboxApi/Metadata/FileExtensionsList.html +213 -0
- data/docs/DropboxApi/Metadata/FileLinkMetadata.html +6 -6
- data/docs/DropboxApi/Metadata/FileMemberAction.html +10 -10
- data/docs/DropboxApi/Metadata/FileRequest.html +6 -6
- data/docs/DropboxApi/Metadata/FileStatus.html +242 -0
- data/docs/DropboxApi/Metadata/Folder.html +10 -10
- data/docs/DropboxApi/Metadata/FolderLinkMetadata.html +6 -6
- data/docs/DropboxApi/Metadata/FolderSharingInfo.html +6 -6
- data/docs/DropboxApi/Metadata/LinkPermissions.html +6 -6
- data/docs/DropboxApi/Metadata/Location.html +6 -6
- data/docs/DropboxApi/Metadata/MediaInfo.html +9 -9
- data/docs/DropboxApi/Metadata/MediaMetadata.html +9 -9
- data/docs/DropboxApi/Metadata/Member.html +13 -13
- data/docs/DropboxApi/Metadata/MemberAction.html +9 -9
- data/docs/DropboxApi/Metadata/MemberActionList.html +9 -9
- data/docs/DropboxApi/Metadata/MemberPermission.html +6 -6
- data/docs/DropboxApi/Metadata/MemberPermissionList.html +10 -10
- data/docs/DropboxApi/Metadata/MetadataV2.html +140 -0
- data/docs/DropboxApi/Metadata/Name.html +6 -6
- data/docs/DropboxApi/Metadata/NamespaceId.html +210 -0
- data/docs/DropboxApi/Metadata/ParentFolderAccessInfo.html +6 -6
- data/docs/DropboxApi/Metadata/PhotoMetadata.html +6 -6
- data/docs/DropboxApi/Metadata/Resource.html +10 -10
- data/docs/DropboxApi/Metadata/RootInfo.html +227 -0
- data/docs/DropboxApi/Metadata/SearchMatchFieldOptions.html +140 -0
- data/docs/DropboxApi/Metadata/SearchMatchTypeV2.html +244 -0
- data/docs/DropboxApi/Metadata/SearchMatchV2.html +216 -0
- data/docs/DropboxApi/Metadata/SearchOptions.html +140 -0
- data/docs/DropboxApi/Metadata/SearchOrderBy.html +242 -0
- data/docs/DropboxApi/Metadata/SharedFolder.html +6 -6
- data/docs/DropboxApi/Metadata/SharedFolderPolicy.html +6 -6
- data/docs/DropboxApi/Metadata/SharedLink.html +18 -18
- data/docs/DropboxApi/Metadata/SharedLinkMetadata.html +10 -10
- data/docs/DropboxApi/Metadata/SpaceAllocation.html +6 -6
- data/docs/DropboxApi/Metadata/SpaceUsage.html +6 -6
- data/docs/DropboxApi/Metadata/Tag.html +14 -14
- data/docs/DropboxApi/Metadata/Team.html +6 -6
- data/docs/DropboxApi/Metadata/TeamMemberInfo.html +6 -6
- data/docs/DropboxApi/Metadata/TeamRootInfo.html +140 -0
- data/docs/DropboxApi/Metadata/ThumbnailBatchResultData.html +6 -6
- data/docs/DropboxApi/Metadata/ThumbnailBatchResultEntry.html +11 -11
- data/docs/DropboxApi/Metadata/UploadSessionCursor.html +9 -9
- data/docs/DropboxApi/Metadata/UserRootInfo.html +140 -0
- data/docs/DropboxApi/Metadata/VideoMetadata.html +6 -6
- data/docs/DropboxApi/Metadata/WriteMode.html +21 -21
- data/docs/DropboxApi/Metadata.html +8 -8
- data/docs/DropboxApi/MiddleWare/DecodeResult.html +13 -13
- data/docs/DropboxApi/MiddleWare/PathRoot.html +412 -0
- data/docs/DropboxApi/MiddleWare/Stack.html +22 -22
- data/docs/DropboxApi/MiddleWare.html +8 -8
- data/docs/DropboxApi/OptionsValidator.html +10 -10
- data/docs/DropboxApi/ResultBuilder.html +30 -30
- data/docs/DropboxApi/Results/AddFileMemberResultList.html +10 -10
- data/docs/DropboxApi/Results/Base.html +11 -11
- data/docs/DropboxApi/Results/BasicAccountBatch.html +10 -10
- data/docs/DropboxApi/Results/CopyBatchResult.html +224 -0
- data/docs/DropboxApi/Results/CreateFolderBatchResult.html +241 -0
- data/docs/DropboxApi/Results/CreateFolderBatchResultEntry.html +234 -0
- data/docs/DropboxApi/Results/DeleteBatchResult.html +241 -0
- data/docs/DropboxApi/Results/DeleteBatchResultEntry.html +226 -0
- data/docs/DropboxApi/Results/GetCopyReferenceResult.html +18 -18
- data/docs/DropboxApi/Results/GetTemporaryLinkResult.html +14 -14
- data/docs/DropboxApi/Results/GetThumbnailBatchResult.html +10 -10
- data/docs/DropboxApi/Results/ListFolderGetLatestCursorResult.html +10 -10
- data/docs/DropboxApi/Results/ListFolderLongpollResult.html +14 -14
- data/docs/DropboxApi/Results/ListFolderResult.html +18 -18
- data/docs/DropboxApi/Results/ListRevisionsResult.html +14 -14
- data/docs/DropboxApi/Results/ListSharedLinksResult.html +18 -18
- data/docs/DropboxApi/Results/RelocationBatchResult.html +241 -0
- data/docs/DropboxApi/Results/RelocationBatchResultEntry.html +226 -0
- data/docs/DropboxApi/Results/SaveCopyReferenceResult.html +10 -10
- data/docs/DropboxApi/Results/SaveUrlJobStatus.html +15 -15
- data/docs/DropboxApi/Results/SaveUrlResult.html +10 -10
- data/docs/DropboxApi/Results/Search/Match.html +18 -18
- data/docs/DropboxApi/Results/Search.html +6 -6
- data/docs/DropboxApi/Results/SearchResult.html +3 -3
- data/docs/DropboxApi/Results/SearchV2Result.html +368 -0
- data/docs/DropboxApi/Results/ShareFolderLaunch.html +12 -12
- data/docs/DropboxApi/Results/SharedFileMembers.html +22 -22
- data/docs/DropboxApi/Results/SharedFolderMembers.html +22 -22
- data/docs/DropboxApi/Results/UploadSessionStart.html +10 -10
- data/docs/DropboxApi/Results/VoidResult.html +6 -6
- data/docs/DropboxApi/Results.html +8 -8
- data/docs/DropboxApi.html +7 -7
- data/docs/DropboxScaffoldBuilder.html +269 -102
- data/docs/_index.html +261 -16
- data/docs/class_list.html +3 -3
- data/docs/css/common.css +3 -0
- data/docs/css/style.css +3 -2
- data/docs/file.README.html +134 -43
- data/docs/file.api_coverage.html +21 -21
- data/docs/file.rails_setup.html +10 -10
- data/docs/file_list.html +2 -2
- data/docs/frames.html +2 -2
- data/docs/index.html +134 -43
- data/docs/js/app.js +25 -3
- data/docs/method_list.html +598 -238
- data/docs/top-level-namespace.html +6 -6
- data/dropbox_api.gemspec +11 -16
- data/lib/dropbox_api/authenticator.rb +5 -8
- data/lib/dropbox_api/chunked_uploader.rb +2 -1
- data/lib/dropbox_api/client.rb +24 -2
- data/lib/dropbox_api/connection_builder.rb +39 -4
- data/lib/dropbox_api/endpoints/auth/token_revoke.rb +2 -1
- data/lib/dropbox_api/endpoints/base.rb +31 -5
- data/lib/dropbox_api/endpoints/content_download.rb +5 -7
- data/lib/dropbox_api/endpoints/content_upload.rb +3 -2
- data/lib/dropbox_api/endpoints/file_requests/create_file_request.rb +2 -1
- data/lib/dropbox_api/endpoints/files/copy.rb +4 -3
- data/lib/dropbox_api/endpoints/files/copy_batch.rb +36 -0
- data/lib/dropbox_api/endpoints/files/copy_batch_check.rb +21 -0
- 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 +41 -0
- data/lib/dropbox_api/endpoints/files/create_folder_batch_check.rb +22 -0
- data/lib/dropbox_api/endpoints/files/delete.rb +3 -2
- data/lib/dropbox_api/endpoints/files/delete_batch.rb +23 -0
- data/lib/dropbox_api/endpoints/files/delete_batch_check.rb +21 -0
- 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/search_continue.rb +23 -0
- data/lib/dropbox_api/endpoints/files/upload.rb +3 -2
- 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 +3 -2
- data/lib/dropbox_api/endpoints/rpc_content.rb +3 -2
- data/lib/dropbox_api/endpoints/rpc_notify.rb +4 -3
- 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 +8 -0
- 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 +5 -3
- data/lib/dropbox_api/errors/download_error.rb +2 -1
- data/lib/dropbox_api/errors/expired_access_token_error.rb +5 -0
- 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 +10 -0
- 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 +8 -1
- 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/namespace_id.rb +10 -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/root_info.rb +32 -0
- 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/team_root_info.rb +8 -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/user_root_info.rb +7 -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/path_root.rb +35 -0
- 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 +15 -0
- data/lib/dropbox_api/results/create_folder_batch_result.rb +21 -0
- data/lib/dropbox_api/results/create_folder_batch_result_entry.rb +20 -0
- data/lib/dropbox_api/results/delete_batch_result.rb +21 -0
- data/lib/dropbox_api/results/delete_batch_result_entry.rb +16 -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 +21 -0
- data/lib/dropbox_api/results/relocation_batch_result_entry.rb +16 -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 +23 -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/lib/dropbox_api.rb +38 -6
- data/yardoc/endpoint_handler.rb +2 -1
- data/yardoc/helpers/html_helper.rb +2 -1
- data/yardoc/rspec.rb +3 -2
- data/yardoc/templates/default/method_details/setup.rb +1 -0
- metadata +84 -93
- data/CHANGES.md +0 -7
- data/lib/dropbox_api/results/search_result.rb +0 -22
@@ -6,15 +6,15 @@
|
|
6
6
|
<title>
|
7
7
|
Top Level Namespace
|
8
8
|
|
9
|
-
— Documentation by YARD 0.9.
|
9
|
+
— Documentation by YARD 0.9.26
|
10
10
|
|
11
11
|
</title>
|
12
12
|
|
13
|
-
<link rel="stylesheet" href="css/style.css" type="text/css"
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" />
|
14
14
|
|
15
|
-
<link rel="stylesheet" href="css/common.css" type="text/css"
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" />
|
16
16
|
|
17
|
-
<script type="text/javascript"
|
17
|
+
<script type="text/javascript">
|
18
18
|
pathId = "";
|
19
19
|
relpath = '';
|
20
20
|
</script>
|
@@ -102,9 +102,9 @@
|
|
102
102
|
</div>
|
103
103
|
|
104
104
|
<div id="footer">
|
105
|
-
Generated on
|
105
|
+
Generated on Wed Sep 29 23:44:24 2021 by
|
106
106
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
107
|
-
0.9.
|
107
|
+
0.9.26 (ruby-2.6.5).
|
108
108
|
</div>
|
109
109
|
|
110
110
|
</div>
|
data/dropbox_api.gemspec
CHANGED
@@ -1,30 +1,25 @@
|
|
1
1
|
# coding: utf-8
|
2
|
+
# frozen_string_literal: true
|
2
3
|
lib = File.expand_path('../lib', __FILE__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
5
|
require 'dropbox_api/version'
|
5
6
|
|
6
7
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
8
|
+
spec.name = 'dropbox_api'
|
8
9
|
spec.version = DropboxApi::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
10
|
+
spec.authors = ['Jesús Burgos']
|
11
|
+
spec.email = ['jburmac@gmail.com']
|
11
12
|
|
12
|
-
spec.summary =
|
13
|
-
spec.homepage =
|
14
|
-
spec.license =
|
13
|
+
spec.summary = 'Library for communicating with Dropbox API v2'
|
14
|
+
spec.homepage = 'https://github.com/Jesus/dropbox_api'
|
15
|
+
spec.license = 'MIT'
|
15
16
|
|
16
17
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
18
|
|
18
|
-
spec.require_paths = [
|
19
|
+
spec.require_paths = ['lib']
|
19
20
|
|
20
|
-
spec.
|
21
|
+
spec.required_ruby_version = '>= 2.3'
|
21
22
|
|
22
|
-
spec.
|
23
|
-
spec.
|
24
|
-
spec.add_development_dependency "rspec"
|
25
|
-
spec.add_development_dependency "vcr"
|
26
|
-
spec.add_development_dependency "webmock"
|
27
|
-
|
28
|
-
spec.add_dependency "oauth2", "~> 1.1"
|
29
|
-
spec.add_dependency "faraday", ">= 0.8", "<= 0.15.4"
|
23
|
+
spec.add_dependency 'faraday', '< 3.0'
|
24
|
+
spec.add_dependency 'oauth2', '~> 1.1'
|
30
25
|
end
|
@@ -1,16 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'oauth2'
|
2
3
|
|
3
4
|
module DropboxApi
|
4
5
|
class Authenticator < OAuth2::Client
|
5
|
-
extend Forwardable
|
6
|
-
|
7
6
|
def initialize(client_id, client_secret)
|
8
|
-
|
9
|
-
:
|
10
|
-
:
|
11
|
-
})
|
7
|
+
super(client_id, client_secret, {
|
8
|
+
authorize_url: 'https://www.dropbox.com/oauth2/authorize',
|
9
|
+
token_url: 'https://api.dropboxapi.com/oauth2/token'
|
10
|
+
})
|
12
11
|
end
|
13
|
-
|
14
|
-
def_delegators :@auth_code, :authorize_url, :get_token
|
15
12
|
end
|
16
13
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi
|
2
3
|
class ChunkedUploader
|
3
4
|
include DropboxApi::OptionsValidator
|
@@ -13,7 +14,7 @@ module DropboxApi
|
|
13
14
|
|
14
15
|
def start
|
15
16
|
chunk = @i_stream.read @chunk_size
|
16
|
-
chunk =
|
17
|
+
chunk = '' if chunk.nil?
|
17
18
|
|
18
19
|
@cursor = @client.upload_session_start chunk
|
19
20
|
end
|
data/lib/dropbox_api/client.rb
CHANGED
@@ -1,13 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi
|
2
3
|
class Client
|
3
|
-
def initialize(
|
4
|
-
|
4
|
+
def initialize(
|
5
|
+
oauth_bearer = ENV['DROPBOX_OAUTH_BEARER'],
|
6
|
+
access_token: nil,
|
7
|
+
on_token_refreshed: nil
|
8
|
+
)
|
9
|
+
if access_token
|
10
|
+
@connection_builder = ConnectionBuilder.new(
|
11
|
+
access_token: access_token,
|
12
|
+
on_token_refreshed: on_token_refreshed
|
13
|
+
)
|
14
|
+
elsif oauth_bearer
|
15
|
+
@connection_builder = ConnectionBuilder.new(oauth_bearer)
|
16
|
+
else
|
17
|
+
raise ArgumentError, "Either oauth_bearer or access_token should be set"
|
18
|
+
end
|
5
19
|
end
|
6
20
|
|
7
21
|
def middleware
|
8
22
|
@connection_builder.middleware
|
9
23
|
end
|
10
24
|
|
25
|
+
def namespace_id=(value)
|
26
|
+
@connection_builder.namespace_id = value
|
27
|
+
end
|
28
|
+
|
29
|
+
def namespace_id
|
30
|
+
@connection_builder.namespace_id
|
31
|
+
end
|
32
|
+
|
11
33
|
# @!visibility private
|
12
34
|
def self.add_endpoint(name, endpoint)
|
13
35
|
define_method(name) do |*args, &block|
|
@@ -1,18 +1,53 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi
|
2
3
|
class ConnectionBuilder
|
3
|
-
|
4
|
-
|
4
|
+
attr_accessor :namespace_id
|
5
|
+
|
6
|
+
def initialize(oauth_bearer = nil, access_token: nil, on_token_refreshed: nil)
|
7
|
+
if access_token
|
8
|
+
if !access_token.is_a?(OAuth2::AccessToken)
|
9
|
+
raise ArgumentError, "access_token should be an OAuth2::AccessToken"
|
10
|
+
end
|
11
|
+
|
12
|
+
@access_token = access_token
|
13
|
+
@on_token_refreshed = on_token_refreshed
|
14
|
+
elsif oauth_bearer
|
15
|
+
@oauth_bearer = oauth_bearer
|
16
|
+
else
|
17
|
+
raise ArgumentError, "Either oauth_bearer or access_token should be set"
|
18
|
+
end
|
5
19
|
end
|
6
20
|
|
7
21
|
def middleware
|
8
22
|
@middleware ||= MiddleWare::Stack.new
|
9
23
|
end
|
10
24
|
|
25
|
+
def can_refresh_access_token?
|
26
|
+
@access_token && @access_token.refresh_token
|
27
|
+
end
|
28
|
+
|
29
|
+
def refresh_access_token
|
30
|
+
@access_token = @access_token.refresh!
|
31
|
+
@on_token_refreshed.call(@access_token.to_hash) if @on_token_refreshed
|
32
|
+
end
|
33
|
+
|
34
|
+
private def bearer
|
35
|
+
@oauth_bearer or oauth_bearer_from_access_token
|
36
|
+
end
|
37
|
+
|
38
|
+
private def oauth_bearer_from_access_token
|
39
|
+
refresh_access_token if @access_token.expired?
|
40
|
+
|
41
|
+
@access_token.token
|
42
|
+
end
|
43
|
+
|
11
44
|
def build(url)
|
12
45
|
Faraday.new(url) do |connection|
|
46
|
+
connection.use DropboxApi::MiddleWare::PathRoot, {
|
47
|
+
namespace_id: self.namespace_id
|
48
|
+
}
|
13
49
|
middleware.apply(connection) do
|
14
|
-
connection.authorization :Bearer,
|
15
|
-
|
50
|
+
connection.request :authorization, :Bearer, bearer
|
16
51
|
yield connection
|
17
52
|
end
|
18
53
|
end
|
@@ -1,7 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Endpoints::Auth
|
2
3
|
class TokenRevoke < DropboxApi::Endpoints::Rpc
|
3
4
|
Method = :post
|
4
|
-
Path =
|
5
|
+
Path = '/2/auth/token/revoke'
|
5
6
|
ResultType = DropboxApi::Results::VoidResult
|
6
7
|
ErrorType = nil
|
7
8
|
|
@@ -1,5 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Endpoints
|
2
3
|
class Base
|
4
|
+
def initialize(builder)
|
5
|
+
@builder = builder
|
6
|
+
build_connection
|
7
|
+
end
|
8
|
+
|
3
9
|
def self.add_endpoint(name, &block)
|
4
10
|
define_method(name, block)
|
5
11
|
DropboxApi::Client.add_endpoint(name, self)
|
@@ -9,6 +15,14 @@ module DropboxApi::Endpoints
|
|
9
15
|
|
10
16
|
def perform_request(params)
|
11
17
|
process_response(get_response(params))
|
18
|
+
rescue DropboxApi::Errors::ExpiredAccessTokenError => e
|
19
|
+
if @builder.can_refresh_access_token?
|
20
|
+
@builder.refresh_access_token
|
21
|
+
build_connection
|
22
|
+
process_response(get_response(params))
|
23
|
+
else
|
24
|
+
raise e
|
25
|
+
end
|
12
26
|
end
|
13
27
|
|
14
28
|
def get_response(*args)
|
@@ -23,18 +37,25 @@ module DropboxApi::Endpoints
|
|
23
37
|
# Status code 409 is "Endpoint-specific error". We need to look at
|
24
38
|
# the response body to build an exception.
|
25
39
|
build_result(raw_response.env[:api_result])
|
40
|
+
when 401
|
41
|
+
raise DropboxApi::Errors::ExpiredAccessTokenError.build(
|
42
|
+
raw_response.env[:api_result]['error_summary'],
|
43
|
+
raw_response.env[:api_result]['error']
|
44
|
+
)
|
26
45
|
when 429
|
27
46
|
error = DropboxApi::Errors::TooManyRequestsError.build(
|
28
|
-
raw_response.env[:api_result][
|
29
|
-
raw_response.env[:api_result][
|
47
|
+
raw_response.env[:api_result]['error_summary'],
|
48
|
+
raw_response.env[:api_result]['error']['reason']
|
30
49
|
)
|
31
50
|
|
32
|
-
error.retry_after = raw_response.headers[
|
51
|
+
error.retry_after = raw_response.headers['retry-after'].to_i
|
33
52
|
|
34
53
|
raise error
|
35
54
|
else
|
36
|
-
raise
|
55
|
+
raise(
|
56
|
+
DropboxApi::Errors::HttpError,
|
37
57
|
"HTTP #{raw_response.status}: #{raw_response.body}"
|
58
|
+
)
|
38
59
|
end
|
39
60
|
end
|
40
61
|
|
@@ -49,7 +70,12 @@ module DropboxApi::Endpoints
|
|
49
70
|
end
|
50
71
|
|
51
72
|
def run_request(body, headers)
|
52
|
-
@connection.run_request(
|
73
|
+
@connection.run_request(
|
74
|
+
self.class::Method,
|
75
|
+
self.class::Path,
|
76
|
+
body,
|
77
|
+
headers
|
78
|
+
)
|
53
79
|
end
|
54
80
|
end
|
55
81
|
end
|
@@ -1,7 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Endpoints
|
2
3
|
class ContentDownload < DropboxApi::Endpoints::Base
|
3
|
-
def
|
4
|
-
@connection = builder.build(
|
4
|
+
def build_connection
|
5
|
+
@connection = @builder.build('https://content.dropboxapi.com') do |c|
|
5
6
|
c.response :decode_result
|
6
7
|
end
|
7
8
|
end
|
@@ -20,14 +21,11 @@ module DropboxApi::Endpoints
|
|
20
21
|
response = get_response(params)
|
21
22
|
api_result = process_response response
|
22
23
|
|
23
|
-
#
|
24
|
-
#
|
24
|
+
# We just yield the whole response to the block, it'd be nice in the
|
25
|
+
# future to support an interface that streams the response in chunks.
|
25
26
|
yield response.body if block_given?
|
26
27
|
|
27
28
|
api_result
|
28
29
|
end
|
29
30
|
end
|
30
31
|
end
|
31
|
-
# TODO:
|
32
|
-
# 1. Combine ContentDownload and ContentUpload to share its initialize method.
|
33
|
-
# 2. Reorganize the methods which create the request.
|
@@ -1,7 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Endpoints
|
2
3
|
class ContentUpload < DropboxApi::Endpoints::Base
|
3
|
-
def
|
4
|
-
@connection = builder.build(
|
4
|
+
def build_connection
|
5
|
+
@connection = @builder.build('https://content.dropboxapi.com') do |c|
|
5
6
|
c.response :decode_result
|
6
7
|
end
|
7
8
|
end
|
@@ -1,7 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Endpoints::Files
|
2
3
|
class CreateFileRequest < DropboxApi::Endpoints::Rpc
|
3
4
|
Method = :post
|
4
|
-
Path =
|
5
|
+
Path = '/2/file_requests/create'
|
5
6
|
ResultType = DropboxApi::Metadata::FileRequest
|
6
7
|
ErrorType = DropboxApi::Errors::CreateFileRequestError
|
7
8
|
|
@@ -1,7 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Endpoints::Files
|
2
3
|
class Copy < DropboxApi::Endpoints::Rpc
|
3
4
|
Method = :post
|
4
|
-
Path =
|
5
|
+
Path = '/2/files/copy'
|
5
6
|
ResultType = DropboxApi::Metadata::Resource
|
6
7
|
ErrorType = DropboxApi::Errors::RelocationError
|
7
8
|
|
@@ -13,8 +14,8 @@ module DropboxApi::Endpoints::Files
|
|
13
14
|
# @return The moved file.
|
14
15
|
add_endpoint :copy do |from, to|
|
15
16
|
perform_request({
|
16
|
-
:
|
17
|
-
:
|
17
|
+
from_path: from,
|
18
|
+
to_path: to
|
18
19
|
})
|
19
20
|
end
|
20
21
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module DropboxApi::Endpoints::Files
|
3
|
+
class CopyBatch < DropboxApi::Endpoints::Rpc
|
4
|
+
Method = :post
|
5
|
+
Path = '/2/files/copy_batch_v2'
|
6
|
+
ResultType = DropboxApi::Results::CopyBatchResult
|
7
|
+
|
8
|
+
include DropboxApi::OptionsValidator
|
9
|
+
|
10
|
+
# Copy multiple files or folders to different locations at once in the
|
11
|
+
# user's Dropbox.
|
12
|
+
#
|
13
|
+
# This will either finish synchronously, or return a job ID and do
|
14
|
+
# the async copy job in background. Please use {Client#copy_batch_check}
|
15
|
+
# to check the job status.
|
16
|
+
#
|
17
|
+
# Note: No errors are returned by this endpoint.
|
18
|
+
#
|
19
|
+
# @param entries [Array<Hash>] List of entries to be moved or copied.
|
20
|
+
# Each entry must be a hash with two keys: `:from_path` & `:to_path`.
|
21
|
+
# @option options autorename [Boolean] If there's a conflict with any file,
|
22
|
+
# have the Dropbox server try to autorename that file to avoid the
|
23
|
+
# conflict. The default for this field is `false`.
|
24
|
+
# @return [String, Array] Either the job id or the list of job statuses.
|
25
|
+
add_endpoint :copy_batch do |entries, options = {}|
|
26
|
+
validate_options([
|
27
|
+
:autorename
|
28
|
+
], options)
|
29
|
+
options[:autorename] ||= false
|
30
|
+
|
31
|
+
perform_request(options.merge({
|
32
|
+
entries: entries
|
33
|
+
}))
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module DropboxApi::Endpoints::Files
|
3
|
+
class CopyBatchCheck < DropboxApi::Endpoints::Rpc
|
4
|
+
Method = :post
|
5
|
+
Path = '/2/files/copy_batch/check_v2'
|
6
|
+
ResultType = DropboxApi::Results::RelocationBatchResult
|
7
|
+
ErrorType = DropboxApi::Errors::PollError
|
8
|
+
|
9
|
+
# Returns the status of an asynchronous job for {Client#copy_batch}. It
|
10
|
+
# returns a list of results for each entry.
|
11
|
+
#
|
12
|
+
# @param async_job_id [String] Id of the asynchronous job.
|
13
|
+
# This is the value of a response returned from the method that
|
14
|
+
# launched the job.
|
15
|
+
# @return [:in_progress, Array] This could be either the `:in_progress`
|
16
|
+
# flag or a list of job statuses.
|
17
|
+
add_endpoint :copy_batch_check do |async_job_id|
|
18
|
+
perform_request async_job_id: async_job_id
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -1,7 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Endpoints::Files
|
2
3
|
class CopyReferenceGet < DropboxApi::Endpoints::Rpc
|
3
4
|
Method = :post
|
4
|
-
Path =
|
5
|
+
Path = '/2/files/copy_reference/get'
|
5
6
|
ResultType = DropboxApi::Results::GetCopyReferenceResult
|
6
7
|
ErrorType = DropboxApi::Errors::GetCopyReferenceError
|
7
8
|
|
@@ -14,7 +15,7 @@ module DropboxApi::Endpoints::Files
|
|
14
15
|
# @return [DropboxApi::Results::GetCopyReferenceResult]
|
15
16
|
add_endpoint :copy_reference_get do |path|
|
16
17
|
perform_request({
|
17
|
-
:
|
18
|
+
path: path
|
18
19
|
})
|
19
20
|
end
|
20
21
|
end
|
@@ -1,7 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Endpoints::Files
|
2
3
|
class CopyReferenceSave < DropboxApi::Endpoints::Rpc
|
3
4
|
Method = :post
|
4
|
-
Path =
|
5
|
+
Path = '/2/files/copy_reference/save'
|
5
6
|
ResultType = DropboxApi::Results::SaveCopyReferenceResult
|
6
7
|
ErrorType = DropboxApi::Errors::SaveCopyReferenceError
|
7
8
|
|
@@ -14,8 +15,8 @@ module DropboxApi::Endpoints::Files
|
|
14
15
|
# @return [DropboxApi::Results::SaveCopyReferenceResult]
|
15
16
|
add_endpoint :copy_reference_save do |copy_reference, path|
|
16
17
|
perform_request({
|
17
|
-
:
|
18
|
-
:
|
18
|
+
copy_reference: copy_reference,
|
19
|
+
path: path
|
19
20
|
})
|
20
21
|
end
|
21
22
|
end
|
@@ -1,7 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Endpoints::Files
|
2
3
|
class CreateFolder < DropboxApi::Endpoints::Rpc
|
3
4
|
Method = :post
|
4
|
-
Path =
|
5
|
+
Path = '/2/files/create_folder'
|
5
6
|
ResultType = DropboxApi::Metadata::Folder
|
6
7
|
ErrorType = DropboxApi::Errors::CreateFolderError
|
7
8
|
|
@@ -11,7 +12,7 @@ module DropboxApi::Endpoints::Files
|
|
11
12
|
# @return [DropboxApi::Metadata::Folder] The new folder.
|
12
13
|
add_endpoint :create_folder do |path|
|
13
14
|
perform_request({
|
14
|
-
:
|
15
|
+
path: path
|
15
16
|
})
|
16
17
|
end
|
17
18
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module DropboxApi::Endpoints::Files
|
3
|
+
class CreateFolderBatch < DropboxApi::Endpoints::Rpc
|
4
|
+
Method = :post
|
5
|
+
Path = '/2/files/create_folder_batch'
|
6
|
+
ResultType = DropboxApi::Results::CreateFolderBatchResult
|
7
|
+
|
8
|
+
include DropboxApi::OptionsValidator
|
9
|
+
|
10
|
+
# Create multiple folders at once.
|
11
|
+
#
|
12
|
+
# This route is asynchronous for large batches, which returns a job ID
|
13
|
+
# immediately and runs the create folder batch asynchronously. Otherwise,
|
14
|
+
# creates the folders and returns the result synchronously for smaller
|
15
|
+
# inputs. You can force asynchronous behaviour by using the `:force_async`
|
16
|
+
# flag. Use {Client#create_folder_batch_check} to check the job status.
|
17
|
+
#
|
18
|
+
# Note: No errors are returned by this endpoint.
|
19
|
+
#
|
20
|
+
# @param paths [Array] List of paths to be created in the user's Dropbox.
|
21
|
+
# Duplicate path arguments in the batch are considered only once.
|
22
|
+
# @option options autorename [Boolean] If there's a conflict, have the
|
23
|
+
# Dropbox server try to autorename the folder to avoid the conflict.
|
24
|
+
# The default for this field is `false`.
|
25
|
+
# @option options force_async [Boolean] Whether to force the create to
|
26
|
+
# happen asynchronously. The default for this field is `false`.
|
27
|
+
# @return [String, Array] Either the job id or the list of job statuses.
|
28
|
+
add_endpoint :create_folder_batch do |paths, options = {}|
|
29
|
+
validate_options([
|
30
|
+
:autorename,
|
31
|
+
:force_async
|
32
|
+
], options)
|
33
|
+
options[:autorename] ||= false
|
34
|
+
options[:force_async] ||= false
|
35
|
+
|
36
|
+
perform_request(options.merge({
|
37
|
+
paths: paths
|
38
|
+
}))
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module DropboxApi::Endpoints::Files
|
3
|
+
class CreateFolderBatchCheck < DropboxApi::Endpoints::Rpc
|
4
|
+
Method = :post
|
5
|
+
Path = '/2/files/create_folder_batch/check'
|
6
|
+
ResultType = DropboxApi::Results::CreateFolderBatchResult
|
7
|
+
ErrorType = DropboxApi::Errors::PollError
|
8
|
+
|
9
|
+
# Returns the status of an asynchronous job for create_folder_batch.
|
10
|
+
# If success, it returns list of result for each entry.
|
11
|
+
#
|
12
|
+
# @param async_job_id [String] Id of the asynchronous job.
|
13
|
+
# This is the value of a response returned from the method that launched
|
14
|
+
# the job.
|
15
|
+
# @return [Array] A list of one result for each entry.
|
16
|
+
add_endpoint :create_folder_batch_check do |async_job_id|
|
17
|
+
perform_request({
|
18
|
+
async_job_id: async_job_id
|
19
|
+
})
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -1,7 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Endpoints::Files
|
2
3
|
class Delete < DropboxApi::Endpoints::Rpc
|
3
4
|
Method = :post
|
4
|
-
Path =
|
5
|
+
Path = '/2/files/delete'
|
5
6
|
ResultType = DropboxApi::Metadata::Resource
|
6
7
|
ErrorType = DropboxApi::Errors::DeleteError
|
7
8
|
|
@@ -25,7 +26,7 @@ module DropboxApi::Endpoints::Files
|
|
25
26
|
validate_options([:parent_rev], options)
|
26
27
|
|
27
28
|
perform_request options.merge({
|
28
|
-
:
|
29
|
+
path: path
|
29
30
|
})
|
30
31
|
end
|
31
32
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module DropboxApi::Endpoints::Files
|
3
|
+
class DeleteBatch < DropboxApi::Endpoints::Rpc
|
4
|
+
Method = :post
|
5
|
+
Path = '/2/files/delete_batch'
|
6
|
+
ResultType = DropboxApi::Results::DeleteBatchResult
|
7
|
+
|
8
|
+
# Delete multiple files/folders at once.
|
9
|
+
#
|
10
|
+
# This route is asynchronous, which returns a job ID immediately and runs
|
11
|
+
# the delete batch asynchronously. Use {Client#delete_batch_check} to check
|
12
|
+
# the job status.
|
13
|
+
#
|
14
|
+
# @param entries [Array] List of entries, each entry is a Hash with these
|
15
|
+
# fields: `path` (mandatory) & parent_rev (optional).
|
16
|
+
# @return [String, Array] Either the job id or the list of job statuses.
|
17
|
+
add_endpoint :delete_batch do |entries|
|
18
|
+
perform_request({
|
19
|
+
entries: entries
|
20
|
+
})
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module DropboxApi::Endpoints::Files
|
3
|
+
class DeleteBatchCheck < DropboxApi::Endpoints::Rpc
|
4
|
+
Method = :post
|
5
|
+
Path = '/2/files/delete_batch/check'
|
6
|
+
ResultType = DropboxApi::Results::DeleteBatchResult
|
7
|
+
ErrorType = DropboxApi::Errors::PollError
|
8
|
+
|
9
|
+
# Returns the status of an asynchronous job for delete_batch. If success,
|
10
|
+
# it returns list of result for each entry.
|
11
|
+
#
|
12
|
+
# @param async_job_id [String] Id of the asynchronous job.
|
13
|
+
# @return [:in_progress, Array] This could be either the `:in_progress`
|
14
|
+
# flag or a list of job statuses.
|
15
|
+
add_endpoint :delete_batch_check do |async_job_id|
|
16
|
+
perform_request({
|
17
|
+
async_job_id: async_job_id
|
18
|
+
})
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -1,7 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Endpoints::Files
|
2
3
|
class Download < DropboxApi::Endpoints::ContentDownload
|
3
4
|
Method = :post
|
4
|
-
Path =
|
5
|
+
Path = '/2/files/download'
|
5
6
|
ResultType = DropboxApi::Metadata::File
|
6
7
|
ErrorType = DropboxApi::Errors::DownloadError
|
7
8
|
|
@@ -9,7 +10,7 @@ module DropboxApi::Endpoints::Files
|
|
9
10
|
#
|
10
11
|
# @param path [String] The path of the file to download.
|
11
12
|
add_endpoint :download do |path, &block|
|
12
|
-
perform_request({:
|
13
|
+
perform_request({path: path}, &block)
|
13
14
|
end
|
14
15
|
end
|
15
16
|
end
|
@@ -1,7 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module DropboxApi::Endpoints::Files
|
2
3
|
class GetMetadata < DropboxApi::Endpoints::Rpc
|
3
4
|
Method = :post
|
4
|
-
Path =
|
5
|
+
Path = '/2/files/get_metadata'
|
5
6
|
ResultType = DropboxApi::Metadata::Resource
|
6
7
|
ErrorType = DropboxApi::Errors::GetMetadataError
|
7
8
|
|
@@ -34,7 +35,7 @@ module DropboxApi::Endpoints::Files
|
|
34
35
|
], options)
|
35
36
|
|
36
37
|
perform_request(options.merge({
|
37
|
-
:
|
38
|
+
path: path
|
38
39
|
}))
|
39
40
|
end
|
40
41
|
end
|