dropbox_api 0.1.16 → 0.1.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (508) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +15 -0
  4. data/.travis.yml +0 -2
  5. data/Gemfile +6 -1
  6. data/README.md +120 -24
  7. data/Rakefile +4 -3
  8. data/TODO.md +16 -7
  9. data/api_coverage.md +8 -8
  10. data/bin/console +4 -3
  11. data/docs/DropboxApi/Authenticator.html +12 -12
  12. data/docs/DropboxApi/ChunkedUploader.html +20 -20
  13. data/docs/DropboxApi/Client.html +3097 -971
  14. data/docs/DropboxApi/ConnectionBuilder.html +16 -16
  15. data/docs/DropboxApi/Endpoints/Auth/TokenRevoke.html +10 -10
  16. data/docs/DropboxApi/Endpoints/Auth.html +6 -6
  17. data/docs/DropboxApi/Endpoints/Base.html +9 -9
  18. data/docs/DropboxApi/Endpoints/ContentDownload.html +19 -19
  19. data/docs/DropboxApi/Endpoints/ContentUpload.html +17 -17
  20. data/docs/DropboxApi/Endpoints/Files/Copy.html +12 -12
  21. data/docs/DropboxApi/Endpoints/Files/CopyBatch.html +359 -0
  22. data/docs/DropboxApi/Endpoints/Files/CopyBatchCheck.html +305 -0
  23. data/docs/DropboxApi/Endpoints/Files/CopyReferenceGet.html +11 -11
  24. data/docs/DropboxApi/Endpoints/Files/CopyReferenceSave.html +12 -12
  25. data/docs/DropboxApi/Endpoints/Files/CreateFileRequest.html +10 -10
  26. data/docs/DropboxApi/Endpoints/Files/CreateFolder.html +11 -11
  27. data/docs/DropboxApi/Endpoints/Files/CreateFolderBatch.html +377 -0
  28. data/docs/DropboxApi/Endpoints/Files/CreateFolderBatchCheck.html +308 -0
  29. data/docs/DropboxApi/Endpoints/Files/Delete.html +11 -11
  30. data/docs/DropboxApi/Endpoints/Files/DeleteBatch.html +305 -0
  31. data/docs/DropboxApi/Endpoints/Files/DeleteBatchCheck.html +307 -0
  32. data/docs/DropboxApi/Endpoints/Files/Download.html +11 -11
  33. data/docs/DropboxApi/Endpoints/Files/GetMetadata.html +11 -11
  34. data/docs/DropboxApi/Endpoints/Files/GetPreview.html +11 -11
  35. data/docs/DropboxApi/Endpoints/Files/GetTemporaryLink.html +11 -11
  36. data/docs/DropboxApi/Endpoints/Files/GetThumbnail.html +11 -11
  37. data/docs/DropboxApi/Endpoints/Files/GetThumbnailBatch.html +15 -15
  38. data/docs/DropboxApi/Endpoints/Files/ListFolder.html +36 -17
  39. data/docs/DropboxApi/Endpoints/Files/ListFolderContinue.html +11 -11
  40. data/docs/DropboxApi/Endpoints/Files/ListFolderGetLatestCursor.html +10 -10
  41. data/docs/DropboxApi/Endpoints/Files/ListFolderLongpoll.html +11 -11
  42. data/docs/DropboxApi/Endpoints/Files/ListRevisions.html +11 -11
  43. data/docs/DropboxApi/Endpoints/Files/Move.html +12 -12
  44. data/docs/DropboxApi/Endpoints/Files/PermanentlyDelete.html +11 -11
  45. data/docs/DropboxApi/Endpoints/Files/Restore.html +12 -12
  46. data/docs/DropboxApi/Endpoints/Files/SaveUrl.html +12 -12
  47. data/docs/DropboxApi/Endpoints/Files/SaveUrlCheckJobStatus.html +11 -11
  48. data/docs/DropboxApi/Endpoints/Files/Search.html +48 -96
  49. data/docs/DropboxApi/Endpoints/Files/Upload.html +11 -11
  50. data/docs/DropboxApi/Endpoints/Files/UploadSessionAppendV2.html +11 -11
  51. data/docs/DropboxApi/Endpoints/Files/UploadSessionFinish.html +12 -12
  52. data/docs/DropboxApi/Endpoints/Files/UploadSessionStart.html +12 -12
  53. data/docs/DropboxApi/Endpoints/Files.html +8 -8
  54. data/docs/DropboxApi/Endpoints/Rpc.html +18 -18
  55. data/docs/DropboxApi/Endpoints/RpcContent.html +11 -11
  56. data/docs/DropboxApi/Endpoints/RpcNotify.html +11 -11
  57. data/docs/DropboxApi/Endpoints/Sharing/AddFileMember.html +12 -12
  58. data/docs/DropboxApi/Endpoints/Sharing/AddFolderMember.html +12 -12
  59. data/docs/DropboxApi/Endpoints/Sharing/CreateSharedLinkWithSettings.html +107 -16
  60. data/docs/DropboxApi/Endpoints/Sharing/GetSharedLinkMetadata.html +11 -11
  61. data/docs/DropboxApi/Endpoints/Sharing/ListFileMembers.html +12 -12
  62. data/docs/DropboxApi/Endpoints/Sharing/ListFolderMembers.html +12 -12
  63. data/docs/DropboxApi/Endpoints/Sharing/ListSharedLinks.html +10 -10
  64. data/docs/DropboxApi/Endpoints/Sharing/RevokeSharedLink.html +293 -0
  65. data/docs/DropboxApi/Endpoints/Sharing/ShareFolder.html +11 -11
  66. data/docs/DropboxApi/Endpoints/Sharing/UnshareFile.html +11 -11
  67. data/docs/DropboxApi/Endpoints/Sharing.html +8 -8
  68. data/docs/DropboxApi/Endpoints/Users/GetAccount.html +11 -11
  69. data/docs/DropboxApi/Endpoints/Users/GetAccountBatch.html +11 -11
  70. data/docs/DropboxApi/Endpoints/Users/GetCurrentAccount.html +10 -10
  71. data/docs/DropboxApi/Endpoints/Users/GetSpaceUsage.html +10 -10
  72. data/docs/DropboxApi/Endpoints/Users.html +6 -6
  73. data/docs/DropboxApi/Endpoints.html +6 -6
  74. data/docs/DropboxApi/Errors/AddFileMemberError.html +10 -10
  75. data/docs/DropboxApi/Errors/AddFolderMemberError.html +16 -16
  76. data/docs/DropboxApi/Errors/AddMemberSelectorError.html +11 -11
  77. data/docs/DropboxApi/Errors/AlreadySharedError.html +9 -9
  78. data/docs/DropboxApi/Errors/BadPathError.html +6 -6
  79. data/docs/DropboxApi/Errors/BasicError.html +18 -18
  80. data/docs/DropboxApi/Errors/CantCopySharedFolderError.html +6 -6
  81. data/docs/DropboxApi/Errors/CantMoveFolderIntoItselfError.html +6 -6
  82. data/docs/DropboxApi/Errors/CantNestSharedFolderError.html +6 -6
  83. data/docs/DropboxApi/Errors/CantShareOutsideTeamError.html +6 -6
  84. data/docs/DropboxApi/Errors/ContainsSharedFolderError.html +6 -6
  85. data/docs/DropboxApi/Errors/ConversionError.html +6 -6
  86. data/docs/DropboxApi/Errors/CreateFileRequestError.html +6 -6
  87. data/docs/DropboxApi/Errors/CreateFolderBatchError.html +161 -0
  88. data/docs/DropboxApi/Errors/CreateFolderError.html +7 -7
  89. data/docs/DropboxApi/Errors/CreateSharedLinkWithSettingsError.html +11 -11
  90. data/docs/DropboxApi/Errors/CursorClosedError.html +6 -6
  91. data/docs/DropboxApi/Errors/CursorNotClosedError.html +6 -6
  92. data/docs/DropboxApi/Errors/DeleteError.html +9 -8
  93. data/docs/DropboxApi/Errors/DisallowedNameError.html +6 -6
  94. data/docs/DropboxApi/Errors/DisallowedSharedLinkPolicyError.html +6 -6
  95. data/docs/DropboxApi/Errors/DownloadError.html +7 -7
  96. data/docs/DropboxApi/Errors/DownloadFailedError.html +6 -6
  97. data/docs/DropboxApi/Errors/EmailUnverifiedError.html +6 -6
  98. data/docs/DropboxApi/Errors/FileAncestorConflictError.html +6 -6
  99. data/docs/DropboxApi/Errors/FileConflictError.html +6 -6
  100. data/docs/DropboxApi/Errors/FileMemberActionError.html +10 -10
  101. data/docs/DropboxApi/Errors/FolderConflictError.html +6 -6
  102. data/docs/DropboxApi/Errors/GetAccountError.html +7 -7
  103. data/docs/DropboxApi/Errors/GetCopyReferenceError.html +7 -7
  104. data/docs/DropboxApi/Errors/GetMetadataError.html +7 -7
  105. data/docs/DropboxApi/Errors/GroupDeletedError.html +6 -6
  106. data/docs/DropboxApi/Errors/GroupNotOnTeamError.html +6 -6
  107. data/docs/DropboxApi/Errors/HttpError.html +6 -6
  108. data/docs/DropboxApi/Errors/InProgressError.html +6 -6
  109. data/docs/DropboxApi/Errors/InsideAppFolderError.html +6 -6
  110. data/docs/DropboxApi/Errors/InsideOsxPackageError.html +6 -6
  111. data/docs/DropboxApi/Errors/InsidePublicFolderError.html +6 -6
  112. data/docs/DropboxApi/Errors/InsideSharedFolderError.html +6 -6
  113. data/docs/DropboxApi/Errors/InsufficientPlanError.html +6 -6
  114. data/docs/DropboxApi/Errors/InsufficientSpaceError.html +6 -6
  115. data/docs/DropboxApi/Errors/InternalError.html +6 -6
  116. data/docs/DropboxApi/Errors/InvalidCommentError.html +6 -6
  117. data/docs/DropboxApi/Errors/InvalidCopyReferenceError.html +6 -6
  118. data/docs/DropboxApi/Errors/InvalidCursorError.html +6 -6
  119. data/docs/DropboxApi/Errors/InvalidDropboxIdError.html +6 -6
  120. data/docs/DropboxApi/Errors/InvalidEmailError.html +6 -6
  121. data/docs/DropboxApi/Errors/InvalidFileError.html +6 -6
  122. data/docs/DropboxApi/Errors/InvalidIdError.html +6 -6
  123. data/docs/DropboxApi/Errors/InvalidMemberError.html +6 -6
  124. data/docs/DropboxApi/Errors/InvalidPathError.html +6 -6
  125. data/docs/DropboxApi/Errors/InvalidRevisionError.html +6 -6
  126. data/docs/DropboxApi/Errors/InvalidSettingsError.html +6 -6
  127. data/docs/DropboxApi/Errors/InvalidUrlError.html +6 -6
  128. data/docs/DropboxApi/Errors/IsAppFolderError.html +6 -6
  129. data/docs/DropboxApi/Errors/IsFileError.html +6 -6
  130. data/docs/DropboxApi/Errors/IsFolderError.html +6 -6
  131. data/docs/DropboxApi/Errors/IsOsxPackageError.html +6 -6
  132. data/docs/DropboxApi/Errors/IsPublicFolderError.html +6 -6
  133. data/docs/DropboxApi/Errors/ListFolderContinueError.html +8 -8
  134. data/docs/DropboxApi/Errors/ListFolderError.html +7 -7
  135. data/docs/DropboxApi/Errors/ListFolderLongpollError.html +7 -7
  136. data/docs/DropboxApi/Errors/ListRevisionsError.html +7 -7
  137. data/docs/DropboxApi/Errors/ListSharedLinksError.html +8 -8
  138. data/docs/DropboxApi/Errors/LookupError.html +11 -11
  139. data/docs/DropboxApi/Errors/MalformedPathError.html +6 -6
  140. data/docs/DropboxApi/Errors/NoAccountError.html +6 -6
  141. data/docs/DropboxApi/Errors/NoPermissionError.html +6 -6
  142. data/docs/DropboxApi/Errors/NoWritePermissionError.html +6 -6
  143. data/docs/DropboxApi/Errors/NotAMemberError.html +6 -6
  144. data/docs/DropboxApi/Errors/NotFileError.html +6 -6
  145. data/docs/DropboxApi/Errors/NotFolderError.html +6 -6
  146. data/docs/DropboxApi/Errors/NotFoundError.html +6 -6
  147. data/docs/DropboxApi/Errors/PollError.html +8 -8
  148. data/docs/DropboxApi/Errors/PreviewError.html +10 -10
  149. data/docs/DropboxApi/Errors/RateLimitError.html +6 -6
  150. data/docs/DropboxApi/Errors/RelocationBatchEntryError.html +163 -0
  151. data/docs/DropboxApi/Errors/RelocationError.html +13 -13
  152. data/docs/DropboxApi/Errors/RestoreError.html +9 -9
  153. data/docs/DropboxApi/Errors/RestrictedContentError.html +6 -6
  154. data/docs/DropboxApi/Errors/RevokeSharedLinkError.html +164 -0
  155. data/docs/DropboxApi/Errors/SaveCopyReferenceError.html +11 -11
  156. data/docs/DropboxApi/Errors/SaveUrlError.html +10 -10
  157. data/docs/DropboxApi/Errors/SearchError.html +7 -7
  158. data/docs/DropboxApi/Errors/SettingsError.html +8 -8
  159. data/docs/DropboxApi/Errors/ShareFolderError.html +11 -11
  160. data/docs/DropboxApi/Errors/SharePathError.html +17 -17
  161. data/docs/DropboxApi/Errors/SharedFolderAccessError.html +10 -10
  162. data/docs/DropboxApi/Errors/SharedLinkAccessDeniedError.html +6 -6
  163. data/docs/DropboxApi/Errors/SharedLinkAlreadyExistsError.html +6 -6
  164. data/docs/DropboxApi/Errors/SharedLinkError.html +9 -9
  165. data/docs/DropboxApi/Errors/SharedLinkMalformedError.html +143 -0
  166. data/docs/DropboxApi/Errors/SharedLinkNotFoundError.html +6 -6
  167. data/docs/DropboxApi/Errors/SharingFileAccessError.html +11 -11
  168. data/docs/DropboxApi/Errors/SharingUserError.html +7 -7
  169. data/docs/DropboxApi/Errors/TeamFolderError.html +6 -6
  170. data/docs/DropboxApi/Errors/TeamPolicyDisallowsMemberPolicyError.html +6 -6
  171. data/docs/DropboxApi/Errors/ThumbnailBatchError.html +7 -7
  172. data/docs/DropboxApi/Errors/ThumbnailError.html +10 -10
  173. data/docs/DropboxApi/Errors/TooManyFilesError.html +6 -6
  174. data/docs/DropboxApi/Errors/TooManyMembersError.html +6 -6
  175. data/docs/DropboxApi/Errors/TooManyPendingInvitesError.html +6 -6
  176. data/docs/DropboxApi/Errors/TooManyRequestsError.html +15 -15
  177. data/docs/DropboxApi/Errors/TooManySharedFolderTargetsError.html +6 -6
  178. data/docs/DropboxApi/Errors/TooManyWriteOperationsError.html +6 -6
  179. data/docs/DropboxApi/Errors/UnmountedError.html +6 -6
  180. data/docs/DropboxApi/Errors/UnshareFileError.html +8 -8
  181. data/docs/DropboxApi/Errors/UnsupportedContentError.html +6 -6
  182. data/docs/DropboxApi/Errors/UnsupportedExtensionError.html +6 -6
  183. data/docs/DropboxApi/Errors/UnsupportedImageError.html +6 -6
  184. data/docs/DropboxApi/Errors/UnsupportedLinkTypeError.html +6 -6
  185. data/docs/DropboxApi/Errors/UnverifiedDropboxId.html +6 -6
  186. data/docs/DropboxApi/Errors/UploadError.html +7 -7
  187. data/docs/DropboxApi/Errors/UploadSessionFinishError.html +9 -9
  188. data/docs/DropboxApi/Errors/UploadSessionLookupError.html +10 -10
  189. data/docs/DropboxApi/Errors/UploadSessionOffsetError.html +10 -10
  190. data/docs/DropboxApi/Errors/UploadWriteFailedError.html +7 -7
  191. data/docs/DropboxApi/Errors/WriteConflictError.html +9 -9
  192. data/docs/DropboxApi/Errors/WriteError.html +11 -11
  193. data/docs/DropboxApi/Errors.html +8 -8
  194. data/docs/DropboxApi/Metadata/AccessLevel.html +9 -9
  195. data/docs/DropboxApi/Metadata/AddFileMemberResult.html +6 -6
  196. data/docs/DropboxApi/Metadata/AddMember.html +11 -11
  197. data/docs/DropboxApi/Metadata/Base.html +24 -24
  198. data/docs/DropboxApi/Metadata/BasicAccount.html +6 -6
  199. data/docs/DropboxApi/Metadata/CommitInfo.html +9 -9
  200. data/docs/DropboxApi/Metadata/Deleted.html +6 -6
  201. data/docs/DropboxApi/Metadata/Dimensions.html +6 -6
  202. data/docs/DropboxApi/Metadata/Field.html +24 -20
  203. data/docs/DropboxApi/Metadata/File.html +10 -10
  204. data/docs/DropboxApi/Metadata/FileCategoriesList.html +205 -0
  205. data/docs/DropboxApi/Metadata/FileCategory.html +250 -0
  206. data/docs/DropboxApi/Metadata/FileExtensionsList.html +213 -0
  207. data/docs/DropboxApi/Metadata/FileLinkMetadata.html +6 -6
  208. data/docs/DropboxApi/Metadata/FileMemberAction.html +10 -10
  209. data/docs/DropboxApi/Metadata/FileRequest.html +6 -6
  210. data/docs/DropboxApi/Metadata/FileStatus.html +242 -0
  211. data/docs/DropboxApi/Metadata/Folder.html +10 -10
  212. data/docs/DropboxApi/Metadata/FolderLinkMetadata.html +6 -6
  213. data/docs/DropboxApi/Metadata/FolderSharingInfo.html +6 -6
  214. data/docs/DropboxApi/Metadata/LinkPermissions.html +6 -6
  215. data/docs/DropboxApi/Metadata/Location.html +6 -6
  216. data/docs/DropboxApi/Metadata/MediaInfo.html +9 -9
  217. data/docs/DropboxApi/Metadata/MediaMetadata.html +9 -9
  218. data/docs/DropboxApi/Metadata/Member.html +13 -13
  219. data/docs/DropboxApi/Metadata/MemberAction.html +9 -9
  220. data/docs/DropboxApi/Metadata/MemberActionList.html +9 -9
  221. data/docs/DropboxApi/Metadata/MemberPermission.html +6 -6
  222. data/docs/DropboxApi/Metadata/MemberPermissionList.html +10 -10
  223. data/docs/DropboxApi/Metadata/MetadataV2.html +140 -0
  224. data/docs/DropboxApi/Metadata/Name.html +6 -6
  225. data/docs/DropboxApi/Metadata/ParentFolderAccessInfo.html +6 -6
  226. data/docs/DropboxApi/Metadata/PhotoMetadata.html +6 -6
  227. data/docs/DropboxApi/Metadata/Resource.html +10 -10
  228. data/docs/DropboxApi/Metadata/SearchMatchFieldOptions.html +140 -0
  229. data/docs/DropboxApi/Metadata/SearchMatchTypeV2.html +244 -0
  230. data/docs/DropboxApi/Metadata/SearchMatchV2.html +216 -0
  231. data/docs/DropboxApi/Metadata/SearchOptions.html +140 -0
  232. data/docs/DropboxApi/Metadata/SearchOrderBy.html +242 -0
  233. data/docs/DropboxApi/Metadata/SharedFolder.html +6 -6
  234. data/docs/DropboxApi/Metadata/SharedFolderPolicy.html +6 -6
  235. data/docs/DropboxApi/Metadata/SharedLink.html +18 -18
  236. data/docs/DropboxApi/Metadata/SharedLinkMetadata.html +10 -10
  237. data/docs/DropboxApi/Metadata/SpaceAllocation.html +6 -6
  238. data/docs/DropboxApi/Metadata/SpaceUsage.html +6 -6
  239. data/docs/DropboxApi/Metadata/Tag.html +14 -14
  240. data/docs/DropboxApi/Metadata/Team.html +6 -6
  241. data/docs/DropboxApi/Metadata/TeamMemberInfo.html +6 -6
  242. data/docs/DropboxApi/Metadata/ThumbnailBatchResultData.html +6 -6
  243. data/docs/DropboxApi/Metadata/ThumbnailBatchResultEntry.html +11 -11
  244. data/docs/DropboxApi/Metadata/UploadSessionCursor.html +9 -9
  245. data/docs/DropboxApi/Metadata/VideoMetadata.html +6 -6
  246. data/docs/DropboxApi/Metadata/WriteMode.html +21 -21
  247. data/docs/DropboxApi/Metadata.html +8 -8
  248. data/docs/DropboxApi/MiddleWare/DecodeResult.html +13 -13
  249. data/docs/DropboxApi/MiddleWare/Stack.html +22 -22
  250. data/docs/DropboxApi/MiddleWare.html +6 -6
  251. data/docs/DropboxApi/OptionsValidator.html +10 -10
  252. data/docs/DropboxApi/ResultBuilder.html +30 -30
  253. data/docs/DropboxApi/Results/AddFileMemberResultList.html +10 -10
  254. data/docs/DropboxApi/Results/Base.html +11 -11
  255. data/docs/DropboxApi/Results/BasicAccountBatch.html +10 -10
  256. data/docs/DropboxApi/Results/CopyBatchResult.html +224 -0
  257. data/docs/DropboxApi/Results/CreateFolderBatchResult.html +241 -0
  258. data/docs/DropboxApi/Results/CreateFolderBatchResultEntry.html +234 -0
  259. data/docs/DropboxApi/Results/DeleteBatchResult.html +241 -0
  260. data/docs/DropboxApi/Results/DeleteBatchResultEntry.html +226 -0
  261. data/docs/DropboxApi/Results/GetCopyReferenceResult.html +18 -18
  262. data/docs/DropboxApi/Results/GetTemporaryLinkResult.html +14 -14
  263. data/docs/DropboxApi/Results/GetThumbnailBatchResult.html +10 -10
  264. data/docs/DropboxApi/Results/ListFolderGetLatestCursorResult.html +10 -10
  265. data/docs/DropboxApi/Results/ListFolderLongpollResult.html +14 -14
  266. data/docs/DropboxApi/Results/ListFolderResult.html +18 -18
  267. data/docs/DropboxApi/Results/ListRevisionsResult.html +14 -14
  268. data/docs/DropboxApi/Results/ListSharedLinksResult.html +18 -18
  269. data/docs/DropboxApi/Results/RelocationBatchResult.html +241 -0
  270. data/docs/DropboxApi/Results/RelocationBatchResultEntry.html +226 -0
  271. data/docs/DropboxApi/Results/SaveCopyReferenceResult.html +10 -10
  272. data/docs/DropboxApi/Results/SaveUrlJobStatus.html +15 -15
  273. data/docs/DropboxApi/Results/SaveUrlResult.html +10 -10
  274. data/docs/DropboxApi/Results/Search/Match.html +18 -18
  275. data/docs/DropboxApi/Results/Search.html +6 -6
  276. data/docs/DropboxApi/Results/SearchResult.html +3 -3
  277. data/docs/DropboxApi/Results/SearchV2Result.html +368 -0
  278. data/docs/DropboxApi/Results/ShareFolderLaunch.html +12 -12
  279. data/docs/DropboxApi/Results/SharedFileMembers.html +22 -22
  280. data/docs/DropboxApi/Results/SharedFolderMembers.html +22 -22
  281. data/docs/DropboxApi/Results/UploadSessionStart.html +10 -10
  282. data/docs/DropboxApi/Results/VoidResult.html +6 -6
  283. data/docs/DropboxApi/Results.html +8 -8
  284. data/docs/DropboxApi.html +7 -7
  285. data/docs/DropboxScaffoldBuilder.html +269 -102
  286. data/docs/_index.html +208 -12
  287. data/docs/class_list.html +3 -3
  288. data/docs/css/common.css +3 -0
  289. data/docs/css/style.css +3 -2
  290. data/docs/file.README.html +28 -23
  291. data/docs/file.api_coverage.html +21 -21
  292. data/docs/file.rails_setup.html +10 -10
  293. data/docs/file_list.html +2 -2
  294. data/docs/frames.html +2 -2
  295. data/docs/index.html +28 -23
  296. data/docs/js/app.js +25 -3
  297. data/docs/method_list.html +538 -290
  298. data/docs/top-level-namespace.html +6 -6
  299. data/dropbox_api.gemspec +15 -16
  300. data/lib/dropbox_api/authenticator.rb +5 -8
  301. data/lib/dropbox_api/chunked_uploader.rb +2 -1
  302. data/lib/dropbox_api/client.rb +24 -2
  303. data/lib/dropbox_api/connection_builder.rb +39 -4
  304. data/lib/dropbox_api/endpoints/auth/token_revoke.rb +2 -1
  305. data/lib/dropbox_api/endpoints/base.rb +31 -5
  306. data/lib/dropbox_api/endpoints/content_download.rb +5 -7
  307. data/lib/dropbox_api/endpoints/content_upload.rb +3 -2
  308. data/lib/dropbox_api/endpoints/file_requests/create_file_request.rb +2 -1
  309. data/lib/dropbox_api/endpoints/files/copy.rb +4 -3
  310. data/lib/dropbox_api/endpoints/files/copy_batch.rb +36 -0
  311. data/lib/dropbox_api/endpoints/files/copy_batch_check.rb +21 -0
  312. data/lib/dropbox_api/endpoints/files/copy_reference_get.rb +3 -2
  313. data/lib/dropbox_api/endpoints/files/copy_reference_save.rb +4 -3
  314. data/lib/dropbox_api/endpoints/files/create_folder.rb +3 -2
  315. data/lib/dropbox_api/endpoints/files/create_folder_batch.rb +41 -0
  316. data/lib/dropbox_api/endpoints/files/create_folder_batch_check.rb +22 -0
  317. data/lib/dropbox_api/endpoints/files/delete.rb +3 -2
  318. data/lib/dropbox_api/endpoints/files/delete_batch.rb +23 -0
  319. data/lib/dropbox_api/endpoints/files/delete_batch_check.rb +21 -0
  320. data/lib/dropbox_api/endpoints/files/download.rb +3 -2
  321. data/lib/dropbox_api/endpoints/files/get_metadata.rb +3 -2
  322. data/lib/dropbox_api/endpoints/files/get_preview.rb +3 -2
  323. data/lib/dropbox_api/endpoints/files/get_temporary_link.rb +3 -2
  324. data/lib/dropbox_api/endpoints/files/get_thumbnail.rb +3 -2
  325. data/lib/dropbox_api/endpoints/files/get_thumbnail_batch.rb +4 -3
  326. data/lib/dropbox_api/endpoints/files/list_folder.rb +3 -2
  327. data/lib/dropbox_api/endpoints/files/list_folder_continue.rb +3 -2
  328. data/lib/dropbox_api/endpoints/files/list_folder_get_latest_cursor.rb +2 -1
  329. data/lib/dropbox_api/endpoints/files/list_folder_longpoll.rb +3 -2
  330. data/lib/dropbox_api/endpoints/files/list_revisions.rb +3 -2
  331. data/lib/dropbox_api/endpoints/files/move.rb +4 -3
  332. data/lib/dropbox_api/endpoints/files/permanently_delete.rb +3 -2
  333. data/lib/dropbox_api/endpoints/files/restore.rb +4 -3
  334. data/lib/dropbox_api/endpoints/files/save_url.rb +4 -3
  335. data/lib/dropbox_api/endpoints/files/save_url_check_job_status.rb +3 -2
  336. data/lib/dropbox_api/endpoints/files/search.rb +16 -27
  337. data/lib/dropbox_api/endpoints/files/search_continue.rb +23 -0
  338. data/lib/dropbox_api/endpoints/files/upload.rb +3 -2
  339. data/lib/dropbox_api/endpoints/files/upload_session_append_v2.rb +3 -2
  340. data/lib/dropbox_api/endpoints/files/upload_session_finish.rb +4 -3
  341. data/lib/dropbox_api/endpoints/files/upload_session_start.rb +4 -3
  342. data/lib/dropbox_api/endpoints/rpc.rb +3 -2
  343. data/lib/dropbox_api/endpoints/rpc_content.rb +3 -2
  344. data/lib/dropbox_api/endpoints/rpc_notify.rb +3 -2
  345. data/lib/dropbox_api/endpoints/sharing/add_file_member.rb +4 -3
  346. data/lib/dropbox_api/endpoints/sharing/add_folder_member.rb +4 -3
  347. data/lib/dropbox_api/endpoints/sharing/create_shared_link_with_settings.rb +4 -3
  348. data/lib/dropbox_api/endpoints/sharing/get_shared_link_metadata.rb +3 -2
  349. data/lib/dropbox_api/endpoints/sharing/list_file_members.rb +4 -3
  350. data/lib/dropbox_api/endpoints/sharing/list_folder_members.rb +4 -3
  351. data/lib/dropbox_api/endpoints/sharing/list_shared_links.rb +2 -1
  352. data/lib/dropbox_api/endpoints/sharing/revoke_shared_link.rb +3 -2
  353. data/lib/dropbox_api/endpoints/sharing/share_folder.rb +3 -2
  354. data/lib/dropbox_api/endpoints/sharing/unshare_file.rb +3 -2
  355. data/lib/dropbox_api/endpoints/users/get_account.rb +3 -2
  356. data/lib/dropbox_api/endpoints/users/get_account_batch.rb +3 -2
  357. data/lib/dropbox_api/endpoints/users/get_current_account.rb +2 -1
  358. data/lib/dropbox_api/endpoints/users/get_space_usage.rb +2 -1
  359. data/lib/dropbox_api/endpoints/virtual/upload_by_chunks.rb +1 -0
  360. data/lib/dropbox_api/errors/add_file_member_error.rb +5 -4
  361. data/lib/dropbox_api/errors/add_folder_member_error.rb +11 -10
  362. data/lib/dropbox_api/errors/add_member_selector_error.rb +6 -5
  363. data/lib/dropbox_api/errors/already_shared_error.rb +1 -0
  364. data/lib/dropbox_api/errors/basic_error.rb +2 -1
  365. data/lib/dropbox_api/errors/create_file_request_error.rb +1 -0
  366. data/lib/dropbox_api/errors/create_folder_batch_error.rb +8 -0
  367. data/lib/dropbox_api/errors/create_folder_error.rb +2 -1
  368. data/lib/dropbox_api/errors/create_shared_link_with_settings_error.rb +6 -5
  369. data/lib/dropbox_api/errors/delete_error.rb +5 -3
  370. data/lib/dropbox_api/errors/download_error.rb +2 -1
  371. data/lib/dropbox_api/errors/expired_access_token_error.rb +5 -0
  372. data/lib/dropbox_api/errors/file_member_action_error.rb +5 -4
  373. data/lib/dropbox_api/errors/get_account_error.rb +2 -1
  374. data/lib/dropbox_api/errors/get_copy_reference_error.rb +2 -1
  375. data/lib/dropbox_api/errors/get_metadata_error.rb +2 -1
  376. data/lib/dropbox_api/errors/http_error.rb +1 -0
  377. data/lib/dropbox_api/errors/list_folder_continue_error.rb +3 -2
  378. data/lib/dropbox_api/errors/list_folder_error.rb +2 -1
  379. data/lib/dropbox_api/errors/list_folder_longpoll_error.rb +2 -1
  380. data/lib/dropbox_api/errors/list_revisions_error.rb +2 -1
  381. data/lib/dropbox_api/errors/list_shared_links_error.rb +3 -2
  382. data/lib/dropbox_api/errors/lookup_error.rb +6 -5
  383. data/lib/dropbox_api/errors/poll_error.rb +3 -2
  384. data/lib/dropbox_api/errors/preview_error.rb +5 -4
  385. data/lib/dropbox_api/errors/relocation_batch_entry_error.rb +10 -0
  386. data/lib/dropbox_api/errors/relocation_error.rb +8 -7
  387. data/lib/dropbox_api/errors/restore_error.rb +4 -3
  388. data/lib/dropbox_api/errors/revoke_shared_link_error.rb +5 -4
  389. data/lib/dropbox_api/errors/save_copy_reference_error.rb +6 -5
  390. data/lib/dropbox_api/errors/save_url_error.rb +5 -4
  391. data/lib/dropbox_api/errors/search_error.rb +2 -1
  392. data/lib/dropbox_api/errors/settings_error.rb +3 -2
  393. data/lib/dropbox_api/errors/share_folder_error.rb +6 -5
  394. data/lib/dropbox_api/errors/share_path_error.rb +12 -11
  395. data/lib/dropbox_api/errors/shared_folder_access_error.rb +5 -4
  396. data/lib/dropbox_api/errors/shared_link_error.rb +4 -3
  397. data/lib/dropbox_api/errors/sharing_file_access_error.rb +6 -5
  398. data/lib/dropbox_api/errors/sharing_user_error.rb +2 -1
  399. data/lib/dropbox_api/errors/thumbnail_batch_error.rb +2 -1
  400. data/lib/dropbox_api/errors/thumbnail_error.rb +5 -4
  401. data/lib/dropbox_api/errors/too_many_requests_error.rb +3 -2
  402. data/lib/dropbox_api/errors/unshare_file_error.rb +3 -2
  403. data/lib/dropbox_api/errors/upload_error.rb +2 -1
  404. data/lib/dropbox_api/errors/upload_session_finish_error.rb +4 -3
  405. data/lib/dropbox_api/errors/upload_session_lookup_error.rb +5 -4
  406. data/lib/dropbox_api/errors/upload_session_offset_error.rb +1 -0
  407. data/lib/dropbox_api/errors/upload_write_failed_error.rb +2 -1
  408. data/lib/dropbox_api/errors/write_conflict_error.rb +4 -3
  409. data/lib/dropbox_api/errors/write_error.rb +6 -5
  410. data/lib/dropbox_api/metadata/access_level.rb +1 -0
  411. data/lib/dropbox_api/metadata/add_file_member_result.rb +1 -0
  412. data/lib/dropbox_api/metadata/add_member.rb +3 -2
  413. data/lib/dropbox_api/metadata/base.rb +2 -1
  414. data/lib/dropbox_api/metadata/basic_account.rb +8 -1
  415. data/lib/dropbox_api/metadata/commit_info.rb +2 -1
  416. data/lib/dropbox_api/metadata/deleted.rb +1 -0
  417. data/lib/dropbox_api/metadata/dimensions.rb +1 -0
  418. data/lib/dropbox_api/metadata/field.rb +7 -4
  419. data/lib/dropbox_api/metadata/file.rb +2 -1
  420. data/lib/dropbox_api/metadata/file_categories_list.rb +9 -0
  421. data/lib/dropbox_api/metadata/file_category.rb +22 -0
  422. data/lib/dropbox_api/metadata/file_extensions_list.rb +13 -0
  423. data/lib/dropbox_api/metadata/file_link_metadata.rb +1 -0
  424. data/lib/dropbox_api/metadata/file_member_action.rb +2 -1
  425. data/lib/dropbox_api/metadata/file_request.rb +1 -0
  426. data/lib/dropbox_api/metadata/file_status.rb +14 -0
  427. data/lib/dropbox_api/metadata/folder.rb +2 -1
  428. data/lib/dropbox_api/metadata/folder_link_metadata.rb +1 -0
  429. data/lib/dropbox_api/metadata/folder_sharing_info.rb +1 -0
  430. data/lib/dropbox_api/metadata/link_permissions.rb +1 -0
  431. data/lib/dropbox_api/metadata/location.rb +1 -0
  432. data/lib/dropbox_api/metadata/media_info.rb +1 -0
  433. data/lib/dropbox_api/metadata/media_metadata.rb +1 -0
  434. data/lib/dropbox_api/metadata/member.rb +6 -5
  435. data/lib/dropbox_api/metadata/member_action.rb +1 -0
  436. data/lib/dropbox_api/metadata/member_action_list.rb +1 -0
  437. data/lib/dropbox_api/metadata/member_permission.rb +1 -0
  438. data/lib/dropbox_api/metadata/member_permission_list.rb +1 -0
  439. data/lib/dropbox_api/metadata/metadata_v2.rb +7 -0
  440. data/lib/dropbox_api/metadata/name.rb +1 -0
  441. data/lib/dropbox_api/metadata/namespace_id.rb +10 -0
  442. data/lib/dropbox_api/metadata/parent_folder_access_info.rb +1 -0
  443. data/lib/dropbox_api/metadata/photo_metadata.rb +1 -0
  444. data/lib/dropbox_api/metadata/resource.rb +2 -1
  445. data/lib/dropbox_api/metadata/root_info.rb +32 -0
  446. data/lib/dropbox_api/metadata/search_match_field_options.rb +9 -0
  447. data/lib/dropbox_api/metadata/search_match_type_v2.rb +16 -0
  448. data/lib/dropbox_api/metadata/search_match_v2.rb +18 -0
  449. data/lib/dropbox_api/metadata/search_options.rb +33 -0
  450. data/lib/dropbox_api/metadata/search_order_by.rb +14 -0
  451. data/lib/dropbox_api/metadata/shared_folder.rb +1 -0
  452. data/lib/dropbox_api/metadata/shared_folder_policy.rb +1 -0
  453. data/lib/dropbox_api/metadata/shared_link.rb +3 -2
  454. data/lib/dropbox_api/metadata/shared_link_metadata.rb +2 -1
  455. data/lib/dropbox_api/metadata/space_allocation.rb +1 -0
  456. data/lib/dropbox_api/metadata/space_usage.rb +1 -0
  457. data/lib/dropbox_api/metadata/tag.rb +2 -1
  458. data/lib/dropbox_api/metadata/team.rb +1 -0
  459. data/lib/dropbox_api/metadata/team_member_info.rb +1 -0
  460. data/lib/dropbox_api/metadata/team_root_info.rb +8 -0
  461. data/lib/dropbox_api/metadata/thumbnail_batch_result_data.rb +1 -0
  462. data/lib/dropbox_api/metadata/thumbnail_batch_result_entry.rb +3 -2
  463. data/lib/dropbox_api/metadata/upload_session_cursor.rb +1 -0
  464. data/lib/dropbox_api/metadata/user_root_info.rb +7 -0
  465. data/lib/dropbox_api/metadata/video_metadata.rb +1 -0
  466. data/lib/dropbox_api/metadata/write_mode.rb +6 -5
  467. data/lib/dropbox_api/middleware/decode_result.rb +3 -2
  468. data/lib/dropbox_api/middleware/path_root.rb +35 -0
  469. data/lib/dropbox_api/middleware/stack.rb +1 -0
  470. data/lib/dropbox_api/options_validator.rb +1 -0
  471. data/lib/dropbox_api/result_builder.rb +3 -2
  472. data/lib/dropbox_api/results/add_file_member_result_list.rb +1 -0
  473. data/lib/dropbox_api/results/base.rb +1 -0
  474. data/lib/dropbox_api/results/basic_account_batch.rb +1 -0
  475. data/lib/dropbox_api/results/copy_batch_result.rb +15 -0
  476. data/lib/dropbox_api/results/create_folder_batch_result.rb +21 -0
  477. data/lib/dropbox_api/results/create_folder_batch_result_entry.rb +20 -0
  478. data/lib/dropbox_api/results/delete_batch_result.rb +21 -0
  479. data/lib/dropbox_api/results/delete_batch_result_entry.rb +16 -0
  480. data/lib/dropbox_api/results/get_copy_reference_result.rb +4 -3
  481. data/lib/dropbox_api/results/get_temporary_link_result.rb +3 -2
  482. data/lib/dropbox_api/results/get_thumbnail_batch_result.rb +2 -1
  483. data/lib/dropbox_api/results/list_folder_get_latest_cursor_result.rb +2 -1
  484. data/lib/dropbox_api/results/list_folder_longpoll_result.rb +3 -2
  485. data/lib/dropbox_api/results/list_folder_result.rb +4 -3
  486. data/lib/dropbox_api/results/list_revisions_result.rb +3 -2
  487. data/lib/dropbox_api/results/list_shared_links_result.rb +4 -3
  488. data/lib/dropbox_api/results/relocation_batch_result.rb +21 -0
  489. data/lib/dropbox_api/results/relocation_batch_result_entry.rb +16 -0
  490. data/lib/dropbox_api/results/save_copy_reference_result.rb +2 -1
  491. data/lib/dropbox_api/results/save_url_job_status.rb +7 -6
  492. data/lib/dropbox_api/results/save_url_result.rb +2 -1
  493. data/lib/dropbox_api/results/search/match.rb +3 -2
  494. data/lib/dropbox_api/results/search_v2_result.rb +23 -0
  495. data/lib/dropbox_api/results/share_folder_launch.rb +4 -3
  496. data/lib/dropbox_api/results/shared_file_members.rb +5 -4
  497. data/lib/dropbox_api/results/shared_folder_members.rb +5 -4
  498. data/lib/dropbox_api/results/upload_session_start.rb +2 -1
  499. data/lib/dropbox_api/results/void_result.rb +1 -0
  500. data/lib/dropbox_api/version.rb +2 -1
  501. data/lib/dropbox_api.rb +38 -6
  502. data/yardoc/endpoint_handler.rb +2 -1
  503. data/yardoc/helpers/html_helper.rb +2 -1
  504. data/yardoc/rspec.rb +3 -2
  505. data/yardoc/templates/default/method_details/setup.rb +1 -0
  506. metadata +82 -28
  507. data/CHANGES.md +0 -7
  508. data/lib/dropbox_api/results/search_result.rb +0 -22
@@ -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
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DropboxApi::Metadata
4
+ class SearchOrderBy < DropboxApi::Metadata::Tag
5
+ VALID_VALUES = %i[
6
+ relevance
7
+ last_modified_time
8
+ ].freeze
9
+
10
+ def self.valid_values
11
+ VALID_VALUES
12
+ end
13
+ end
14
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module DropboxApi::Metadata
2
3
  # Example of a serialized {SharedFolder} object:
3
4
  #
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module DropboxApi::Metadata
2
3
  # Example of a serialized {SharedFolderPolicy} object:
3
4
  #
@@ -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
- {:url => param}
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, "Missing `:url` option"
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[".tag"].to_sym).new(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
  # Example of a serialized {SpaceAllocation} object:
3
4
  #
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module DropboxApi::Metadata
2
3
  # Example of a serialized {SpaceUsage} object:
3
4
  #
@@ -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[".tag"].to_sym)
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
  class Team < Base
3
4
  field :id, String
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module DropboxApi::Metadata
2
3
  # Example of a serialized {TeamMemberInfo} object:
3
4
  #
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+ module DropboxApi::Metadata
3
+ class TeamRootInfo < Base
4
+ field :root_namespace_id, String
5
+ field :home_namespace_id, String
6
+ field :home_path, String
7
+ end
8
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module DropboxApi::Metadata
2
3
  class ThumbnailBatchResultData < Base
3
4
  field :metadata, DropboxApi::Metadata::File
@@ -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[".tag"].to_sym
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("Thumbnail generation failed", data["failure"])
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
  # Example of a serialized {UploadSessionCursor} object:
3
4
  #
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+ module DropboxApi::Metadata
3
+ class UserRootInfo < Base
4
+ field :root_namespace_id, String
5
+ field :home_namespace_id, String
6
+ end
7
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module DropboxApi::Metadata
2
3
  # Example of a serialized {MediaInfo} object:
3
4
  #
@@ -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
- ".tag" => write_mode
52
+ '.tag' => write_mode
52
53
  }
53
54
  @write_mode[write_mode.to_s] = options unless options.nil?
54
55
  end
55
- @write_mode[".tag"] = @write_mode[".tag"].to_sym
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[".tag"]
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[".tag"] == :update && @write_mode["update"].nil?
66
- raise ArgumentError, "Mode `:update` expects a `rev` number"
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 == "null"
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 :decode_result => DecodeResult
26
+ Faraday::Response.register_middleware decode_result: DecodeResult
26
27
  end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+ module DropboxApi::MiddleWare
3
+ class PathRoot < Faraday::Middleware
4
+ HEADER_NAME = 'Dropbox-API-Path-Root'
5
+
6
+ def initialize(app, options = {})
7
+ super(app)
8
+ @options = options
9
+ end
10
+
11
+ def namespace_id
12
+ if @options[:namespace_id].nil?
13
+ return nil
14
+ else
15
+ return @options[:namespace_id]
16
+ end
17
+ end
18
+
19
+ def namespace_id_header_value
20
+ JSON.dump(
21
+ DropboxApi::Metadata::NamespaceId.new({
22
+ 'namespace_id' => namespace_id
23
+ }).to_hash
24
+ )
25
+ end
26
+
27
+ def call(env)
28
+ if !namespace_id.nil?
29
+ env[:request_headers][HEADER_NAME] ||= namespace_id_header_value
30
+ end
31
+
32
+ @app.call env
33
+ end
34
+ end
35
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module DropboxApi::MiddleWare
2
3
  class Stack
3
4
  def initialize
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module DropboxApi
2
3
  module OptionsValidator
3
4
  # Takes in a list of valid option keys and a hash of options. If one of the
@@ -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["error_summary"] if @response_data.is_a? Hash
9
+ @response_data['error_summary'] if @response_data.is_a? Hash
9
10
  end
10
11
 
11
12
  def error
12
- @response_data["error"]
13
+ @response_data['error']
13
14
  end
14
15
 
15
16
  def has_error?
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module DropboxApi::Results
2
3
  # Example of a result of the `add_file_member` endpoint:
3
4
  # [{
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module DropboxApi::Results
2
3
  class Base
3
4
  def initialize(result_data)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module DropboxApi::Results
2
3
  class BasicAccountBatch < Array
3
4
  def initialize(accounts)
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+ module DropboxApi::Results
3
+ class CopyBatchResult < DropboxApi::Results::Base
4
+ def self.new(result_data)
5
+ case result_data['.tag']
6
+ when 'async_job_id'
7
+ result_data['async_job_id']
8
+ when 'complete'
9
+ RelocationBatchResult.new(result_data)
10
+ else
11
+ raise NotImplementedError, "Unknown result type: #{result_data['.tag']}"
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+ module DropboxApi::Results
3
+ # Result returned by {Client#create_folder_batch} that may either launch an
4
+ # asynchronous job or complete synchronously.
5
+ #
6
+ # The value will be either a job id or a list of job statuses.
7
+ class CreateFolderBatchResult < DropboxApi::Results::Base
8
+ def self.new(result_data)
9
+ case result_data['.tag']
10
+ when 'async_job_id'
11
+ result_data
12
+ when 'complete'
13
+ result_data['entries'].map do |entry|
14
+ DropboxApi::Results::CreateFolderBatchResultEntry.new(entry)
15
+ end
16
+ else
17
+ raise NotImplementedError, "Unknown result type: #{result_data['.tag']}"
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+ module DropboxApi::Results
3
+ class CreateFolderBatchResultEntry < DropboxApi::Results::Base
4
+ def self.new(result_data)
5
+ case result_data['.tag']
6
+ when 'success'
7
+ DropboxApi::Metadata::Folder.new result_data['metadata']
8
+ when 'failure'
9
+ # At the moment, this is a `CreateFolderEntryError` which is an open
10
+ # union that can only be a `WriteError`. In the future, more errors
11
+ # could be added to the API which means we'd have to implement the
12
+ # actual `CreateFolderEntryError` class.
13
+ DropboxApi::Errors::WriteError
14
+ .build('Folder operation failed', result_data['failure']['path'])
15
+ else
16
+ raise NotImplementedError, "Unknown result type: #{result_data['.tag']}"
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+ module DropboxApi::Results
3
+ # Result returned by {Client#delete_batch} that may either launch an
4
+ # asynchronous job or complete synchronously.
5
+ #
6
+ # The value will be either a job id or a list of job statuses.
7
+ class DeleteBatchResult < DropboxApi::Results::Base
8
+ def self.new(result_data)
9
+ case result_data['.tag']
10
+ when 'async_job_id'
11
+ result_data
12
+ when 'complete'
13
+ result_data['entries'].map do |entry|
14
+ DropboxApi::Results::DeleteBatchResultEntry.new(entry)
15
+ end
16
+ else
17
+ raise NotImplementedError, "Unknown result type: #{result_data[".tag"]}"
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+ module DropboxApi::Results
3
+ class DeleteBatchResultEntry < DropboxApi::Results::Base
4
+ def self.new(result_data)
5
+ case result_data['.tag']
6
+ when 'success'
7
+ DropboxApi::Metadata::Resource.new result_data['metadata']
8
+ when 'failure'
9
+ DropboxApi::Errors::DeleteError
10
+ .build('Delete operation failed', result_data['failure'])
11
+ else
12
+ raise NotImplementedError, "Unknown result type: #{result_data['.tag']}"
13
+ end
14
+ end
15
+ end
16
+ end
@@ -1,20 +1,21 @@
1
+ # frozen_string_literal: true
1
2
  module DropboxApi::Results
2
3
  class GetCopyReferenceResult < DropboxApi::Results::Base
3
4
  # Metadata of the file or folder.
4
5
  def resource
5
- @resource ||= DropboxApi::Metadata::Resource.new @data["metadata"]
6
+ @resource ||= DropboxApi::Metadata::Resource.new @data['metadata']
6
7
  end
7
8
 
8
9
  # A copy reference to the file or folder.
9
10
  def copy_reference
10
- @copy_reference ||= @data["copy_reference"]
11
+ @copy_reference ||= @data['copy_reference']
11
12
  end
12
13
 
13
14
  # The expiration date of the copy reference.
14
15
  # This value is currently set to be far enough in the future
15
16
  # so that expiration is effectively not an issue.
16
17
  def expires
17
- @expires ||= Time.parse(@data["expires"])
18
+ @expires ||= Time.parse(@data['expires'])
18
19
  end
19
20
  end
20
21
  end
@@ -1,11 +1,12 @@
1
+ # frozen_string_literal: true
1
2
  module DropboxApi::Results
2
3
  class GetTemporaryLinkResult < DropboxApi::Results::Base
3
4
  def file
4
- @file ||= DropboxApi::Metadata::File.new(@data["metadata"])
5
+ @file ||= DropboxApi::Metadata::File.new(@data['metadata'])
5
6
  end
6
7
 
7
8
  def link
8
- @data["link"]
9
+ @data['link']
9
10
  end
10
11
  end
11
12
  end
@@ -1,7 +1,8 @@
1
+ # frozen_string_literal: true
1
2
  module DropboxApi::Results
2
3
  class GetThumbnailBatchResult < DropboxApi::Results::Base
3
4
  def entries
4
- @entries ||= @data["entries"].map do |entry|
5
+ @entries ||= @data['entries'].map do |entry|
5
6
  DropboxApi::Metadata::ThumbnailBatchResultEntry.new entry
6
7
  end
7
8
  end
@@ -1,7 +1,8 @@
1
+ # frozen_string_literal: true
1
2
  module DropboxApi::Results
2
3
  class ListFolderGetLatestCursorResult < DropboxApi::Results::Base
3
4
  def cursor
4
- @data["cursor"]
5
+ @data['cursor']
5
6
  end
6
7
  end
7
8
  end
@@ -1,15 +1,16 @@
1
+ # frozen_string_literal: true
1
2
  module DropboxApi::Results
2
3
  class ListFolderLongpollResult < DropboxApi::Results::Base
3
4
  # Indicates whether new changes are available. If true, call
4
5
  # `list_folder_continue` to retrieve the changes.
5
6
  def changes
6
- @data["changes"].to_s == "true"
7
+ @data['changes'].to_s == 'true'
7
8
  end
8
9
 
9
10
  # If present, backoff for at least this many seconds before calling
10
11
  # `list_folder_longpoll` again. This field is optional.
11
12
  def backoff
12
- @data["backoff"]
13
+ @data['backoff']
13
14
  end
14
15
  end
15
16
  end
@@ -1,8 +1,9 @@
1
+ # frozen_string_literal: true
1
2
  module DropboxApi::Results
2
3
  class ListFolderResult < DropboxApi::Results::Base
3
4
  # A collection of files and directories.
4
5
  def entries
5
- @entries ||= @data["entries"].map do |entry|
6
+ @entries ||= @data['entries'].map do |entry|
6
7
  DropboxApi::Metadata::Resource.new entry
7
8
  end
8
9
  end
@@ -10,13 +11,13 @@ module DropboxApi::Results
10
11
  # Pass the cursor into `list_folder_continue` to see what's changed in the
11
12
  # folder since your previous query.
12
13
  def cursor
13
- @data["cursor"]
14
+ @data['cursor']
14
15
  end
15
16
 
16
17
  # If true, then there are more entries available. Pass the cursor to
17
18
  # `list_folder_continue` to retrieve the rest.
18
19
  def has_more?
19
- @data["has_more"].to_s == "true"
20
+ @data['has_more'].to_s == 'true'
20
21
  end
21
22
  end
22
23
  end
@@ -1,14 +1,15 @@
1
+ # frozen_string_literal: true
1
2
  module DropboxApi::Results
2
3
  class ListRevisionsResult < DropboxApi::Results::Base
3
4
  # A collection of files and directories.
4
5
  def entries
5
- @entries ||= @data["entries"].map do |entry|
6
+ @entries ||= @data['entries'].map do |entry|
6
7
  DropboxApi::Metadata::File.new entry
7
8
  end
8
9
  end
9
10
 
10
11
  def is_deleted?
11
- @data["is_deleted"] == true
12
+ @data['is_deleted'] == true
12
13
  end
13
14
  end
14
15
  end
@@ -1,8 +1,9 @@
1
+ # frozen_string_literal: true
1
2
  module DropboxApi::Results
2
3
  class ListSharedLinksResult < DropboxApi::Results::Base
3
4
  # Shared links applicable to the path argument.
4
5
  def links
5
- @entries ||= @data["links"].map do |entry|
6
+ @entries ||= @data['links'].map do |entry|
6
7
  DropboxApi::Metadata::SharedLinkMetadata.new entry
7
8
  end
8
9
  end
@@ -10,13 +11,13 @@ module DropboxApi::Results
10
11
  # Pass the cursor into `list_folder_continue` to see what's changed in the
11
12
  # folder since your previous query.
12
13
  def cursor
13
- @data["cursor"]
14
+ @data['cursor']
14
15
  end
15
16
 
16
17
  # If true, then there are more entries available. Pass the cursor to
17
18
  # `list_folder_continue` to retrieve the rest.
18
19
  def has_more?
19
- @data["has_more"].to_s == "true"
20
+ @data['has_more'].to_s == 'true'
20
21
  end
21
22
  end
22
23
  end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+ module DropboxApi::Results
3
+ # Result returned by {Client#copy_batch} or {Client#move_batch} that may
4
+ # either launch an asynchronous job or complete synchronously.
5
+ #
6
+ # The value will be either `:in_progress` or a list of job statuses.
7
+ class RelocationBatchResult < DropboxApi::Results::Base
8
+ def self.new(result_data)
9
+ case result_data['.tag']
10
+ when 'in_progress'
11
+ :in_progress
12
+ when 'complete'
13
+ result_data['entries'].map do |entry|
14
+ DropboxApi::Results::RelocationBatchResultEntry.new(entry)
15
+ end
16
+ else
17
+ raise NotImplementedError, "Unknown result type: #{result_data['.tag']}"
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+ module DropboxApi::Results
3
+ class RelocationBatchResultEntry < DropboxApi::Results::Base
4
+ def self.new(result_data)
5
+ case result_data['.tag']
6
+ when 'success'
7
+ DropboxApi::Metadata::Resource.new result_data['success']
8
+ when 'failure'
9
+ DropboxApi::Errors::RelocationBatchEntryError
10
+ .build('File or folder operation failed', result_data['failure'])
11
+ else
12
+ raise NotImplementedError, "Unknown result type: #{result_data['.tag']}"
13
+ end
14
+ end
15
+ end
16
+ end
@@ -1,8 +1,9 @@
1
+ # frozen_string_literal: true
1
2
  module DropboxApi::Results
2
3
  class SaveCopyReferenceResult < DropboxApi::Results::Base
3
4
  # The saved file or folder in the user's Dropbox.
4
5
  def resource
5
- @resource ||= DropboxApi::Metadata::Resource.new @data["metadata"]
6
+ @resource ||= DropboxApi::Metadata::Resource.new @data['metadata']
6
7
  end
7
8
  end
8
9
  end