phrase 0.4.31 → 1.0.3

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 (663) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +6 -0
  3. data/LICENSE +17 -18
  4. data/README.md +449 -280
  5. data/Rakefile +7 -4
  6. data/docs/Account.md +27 -0
  7. data/docs/AccountDetails.md +27 -0
  8. data/docs/AccountDetails1.md +17 -0
  9. data/docs/AccountsApi.md +134 -0
  10. data/docs/AffectedCount.md +17 -0
  11. data/docs/AffectedResources.md +17 -0
  12. data/docs/Authorization.md +31 -0
  13. data/docs/AuthorizationCreateParameters.md +21 -0
  14. data/docs/AuthorizationUpdateParameters.md +21 -0
  15. data/docs/AuthorizationWithToken.md +33 -0
  16. data/docs/AuthorizationWithToken1.md +17 -0
  17. data/docs/AuthorizationsApi.md +321 -0
  18. data/docs/BitbucketSync.md +27 -0
  19. data/docs/BitbucketSyncApi.md +197 -0
  20. data/docs/BitbucketSyncExportParameters.md +17 -0
  21. data/docs/BitbucketSyncExportResponse.md +17 -0
  22. data/docs/BitbucketSyncImportParameters.md +17 -0
  23. data/docs/BlacklistedKey.md +23 -0
  24. data/docs/BlacklistedKeyCreateParameters.md +17 -0
  25. data/docs/BlacklistedKeyUpdateParameters.md +17 -0
  26. data/docs/BlacklistedKeysApi.md +333 -0
  27. data/docs/Branch.md +29 -0
  28. data/docs/BranchCreateParameters.md +17 -0
  29. data/docs/BranchMergeParameters.md +17 -0
  30. data/docs/BranchUpdateParameters.md +17 -0
  31. data/docs/BranchesApi.md +459 -0
  32. data/docs/Comment.md +25 -0
  33. data/docs/CommentCreateParameters.md +19 -0
  34. data/docs/CommentMarkReadParameters.md +17 -0
  35. data/docs/CommentUpdateParameters.md +19 -0
  36. data/docs/CommentsApi.md +548 -0
  37. data/docs/Distribution.md +29 -0
  38. data/docs/DistributionCreateParameters.md +29 -0
  39. data/docs/DistributionPreview.md +29 -0
  40. data/docs/DistributionUpdateParameters.md +29 -0
  41. data/docs/DistributionsApi.md +331 -0
  42. data/docs/Document.md +23 -0
  43. data/docs/DocumentsApi.md +137 -0
  44. data/docs/Format.md +35 -0
  45. data/docs/FormatsApi.md +68 -0
  46. data/docs/GitHubSyncApi.md +130 -0
  47. data/docs/GitLabSyncApi.md +463 -0
  48. data/docs/GithubSyncExportParameters.md +17 -0
  49. data/docs/GithubSyncImportParameters.md +17 -0
  50. data/docs/GitlabSync.md +37 -0
  51. data/docs/GitlabSyncExport.md +19 -0
  52. data/docs/GitlabSyncExportParameters.md +17 -0
  53. data/docs/GitlabSyncHistory.md +25 -0
  54. data/docs/GitlabSyncImportParameters.md +17 -0
  55. data/docs/GlossariesApi.md +331 -0
  56. data/docs/Glossary.md +25 -0
  57. data/docs/GlossaryCreateParameters.md +21 -0
  58. data/docs/GlossaryTerm.md +31 -0
  59. data/docs/GlossaryTermCreateParameters.md +23 -0
  60. data/docs/GlossaryTermTranslation.md +25 -0
  61. data/docs/GlossaryTermTranslationCreateParameters.md +19 -0
  62. data/docs/GlossaryTermTranslationUpdateParameters.md +19 -0
  63. data/docs/GlossaryTermTranslationsApi.md +213 -0
  64. data/docs/GlossaryTermUpdateParameters.md +23 -0
  65. data/docs/GlossaryTermsApi.md +341 -0
  66. data/docs/GlossaryUpdateParameters.md +21 -0
  67. data/docs/InlineResponse422.md +19 -0
  68. data/docs/InlineResponse422Errors.md +21 -0
  69. data/docs/Invitation.md +35 -0
  70. data/docs/InvitationCreateParameters.md +25 -0
  71. data/docs/InvitationUpdateParameters.md +23 -0
  72. data/docs/InvitationsApi.md +395 -0
  73. data/docs/Job.md +29 -0
  74. data/docs/JobCompleteParameters.md +17 -0
  75. data/docs/JobCreateParameters.md +27 -0
  76. data/docs/JobDetails.md +37 -0
  77. data/docs/JobDetails1.md +23 -0
  78. data/docs/JobKeysCreateParameters.md +19 -0
  79. data/docs/JobLocale.md +23 -0
  80. data/docs/JobLocaleCompleteParameters.md +17 -0
  81. data/docs/JobLocaleReopenParameters.md +17 -0
  82. data/docs/JobLocaleUpdateParameters.md +21 -0
  83. data/docs/JobLocalesApi.md +483 -0
  84. data/docs/JobLocalesCreateParameters.md +21 -0
  85. data/docs/JobPreview.md +21 -0
  86. data/docs/JobReopenParameters.md +17 -0
  87. data/docs/JobStartParameters.md +17 -0
  88. data/docs/JobUpdateParameters.md +23 -0
  89. data/docs/JobsApi.md +674 -0
  90. data/docs/KeyCreateParameters.md +45 -0
  91. data/docs/KeyPreview.md +21 -0
  92. data/docs/KeyUpdateParameters.md +45 -0
  93. data/docs/KeysApi.md +609 -0
  94. data/docs/KeysSearchParameters.md +25 -0
  95. data/docs/KeysTagParameters.md +23 -0
  96. data/docs/KeysUntagParameters.md +23 -0
  97. data/docs/Locale.md +35 -0
  98. data/docs/LocaleCreateParameters.md +35 -0
  99. data/docs/LocaleDetails.md +37 -0
  100. data/docs/LocaleDetails1.md +17 -0
  101. data/docs/LocalePreview.md +21 -0
  102. data/docs/LocaleStatistics.md +29 -0
  103. data/docs/LocaleUpdateParameters.md +35 -0
  104. data/docs/LocalesApi.md +428 -0
  105. data/docs/Member.md +25 -0
  106. data/docs/MemberUpdateParameters.md +23 -0
  107. data/docs/MembersApi.md +267 -0
  108. data/docs/OrderConfirmParameters.md +17 -0
  109. data/docs/OrderCreateParameters.md +43 -0
  110. data/docs/OrdersApi.md +337 -0
  111. data/docs/Project.md +31 -0
  112. data/docs/ProjectCreateParameters.md +29 -0
  113. data/docs/ProjectDetails.md +33 -0
  114. data/docs/ProjectDetails1.md +19 -0
  115. data/docs/ProjectLocales.md +27 -0
  116. data/docs/ProjectLocales1.md +17 -0
  117. data/docs/ProjectShort.md +25 -0
  118. data/docs/ProjectUpdateParameters.md +27 -0
  119. data/docs/ProjectsApi.md +321 -0
  120. data/docs/Release.md +37 -0
  121. data/docs/ReleaseCreateParameters.md +21 -0
  122. data/docs/ReleasePreview.md +37 -0
  123. data/docs/ReleaseUpdateParameters.md +21 -0
  124. data/docs/ReleasesApi.md +407 -0
  125. data/docs/Screenshot.md +29 -0
  126. data/docs/ScreenshotCreateParameters.md +21 -0
  127. data/docs/ScreenshotMarker.md +27 -0
  128. data/docs/ScreenshotMarkerCreateParameters.md +19 -0
  129. data/docs/ScreenshotMarkerUpdateParameters.md +19 -0
  130. data/docs/ScreenshotMarkersApi.md +337 -0
  131. data/docs/ScreenshotUpdateParameters.md +21 -0
  132. data/docs/ScreenshotsApi.md +331 -0
  133. data/docs/Space.md +27 -0
  134. data/docs/SpaceCreateParameters.md +17 -0
  135. data/docs/SpaceUpdateParameters.md +17 -0
  136. data/docs/SpacesApi.md +529 -0
  137. data/docs/SpacesProjectsCreateParameters.md +17 -0
  138. data/docs/StyleGuidesApi.md +331 -0
  139. data/docs/Styleguide.md +23 -0
  140. data/docs/StyleguideCreateParameters.md +41 -0
  141. data/docs/StyleguideDetails.md +49 -0
  142. data/docs/StyleguideDetails1.md +41 -0
  143. data/docs/StyleguidePreview.md +19 -0
  144. data/docs/StyleguideUpdateParameters.md +41 -0
  145. data/docs/Tag.md +23 -0
  146. data/docs/TagCreateParameters.md +19 -0
  147. data/docs/TagWithStats.md +25 -0
  148. data/docs/TagWithStats1.md +17 -0
  149. data/docs/TagWithStats1Statistics.md +23 -0
  150. data/docs/TagWithStats1Statistics1.md +19 -0
  151. data/docs/TagsApi.md +271 -0
  152. data/docs/Team.md +29 -0
  153. data/docs/TeamCreateParameters.md +17 -0
  154. data/docs/TeamDetail.md +29 -0
  155. data/docs/TeamUpdateParameters.md +17 -0
  156. data/docs/TeamsApi.md +721 -0
  157. data/docs/TeamsProjectsCreateParameters.md +17 -0
  158. data/docs/TeamsSpacesCreateParameters.md +17 -0
  159. data/docs/TeamsUsersCreateParameters.md +17 -0
  160. data/docs/Translation.md +37 -0
  161. data/docs/TranslationCreateParameters.md +31 -0
  162. data/docs/TranslationDetails.md +41 -0
  163. data/docs/TranslationDetails1.md +19 -0
  164. data/docs/TranslationExcludeParameters.md +17 -0
  165. data/docs/TranslationIncludeParameters.md +17 -0
  166. data/docs/TranslationKey.md +33 -0
  167. data/docs/TranslationKeyDetails.md +51 -0
  168. data/docs/TranslationKeyDetails1.md +33 -0
  169. data/docs/TranslationOrder.md +49 -0
  170. data/docs/TranslationReviewParameters.md +17 -0
  171. data/docs/TranslationUnverifyParameters.md +17 -0
  172. data/docs/TranslationUpdateParameters.md +27 -0
  173. data/docs/TranslationVerifyParameters.md +17 -0
  174. data/docs/TranslationVersion.md +31 -0
  175. data/docs/TranslationVersionWithUser.md +33 -0
  176. data/docs/TranslationVersionWithUser1.md +17 -0
  177. data/docs/TranslationsApi.md +1148 -0
  178. data/docs/TranslationsExcludeParameters.md +23 -0
  179. data/docs/TranslationsIncludeParameters.md +23 -0
  180. data/docs/TranslationsReviewParameters.md +19 -0
  181. data/docs/TranslationsSearchParameters.md +23 -0
  182. data/docs/TranslationsUnverifyParameters.md +23 -0
  183. data/docs/TranslationsVerifyParameters.md +23 -0
  184. data/docs/Upload.md +31 -0
  185. data/docs/UploadCreateParameters.md +45 -0
  186. data/docs/UploadSummary.md +31 -0
  187. data/docs/UploadsApi.md +234 -0
  188. data/docs/User.md +29 -0
  189. data/docs/UserPreview.md +21 -0
  190. data/docs/UsersApi.md +68 -0
  191. data/docs/VersionsHistoryApi.md +146 -0
  192. data/docs/Webhook.md +29 -0
  193. data/docs/WebhookCreateParameters.md +23 -0
  194. data/docs/WebhookUpdateParameters.md +23 -0
  195. data/docs/WebhooksApi.md +394 -0
  196. data/git_push.sh +58 -0
  197. data/lib/phrase.rb +212 -55
  198. data/lib/phrase/api/accounts_api.rb +142 -0
  199. data/lib/phrase/api/authorizations_api.rb +348 -0
  200. data/lib/phrase/api/bitbucket_sync_api.rb +219 -0
  201. data/lib/phrase/api/blacklisted_keys_api.rb +381 -0
  202. data/lib/phrase/api/branches_api.rb +526 -0
  203. data/lib/phrase/api/comments_api.rb +659 -0
  204. data/lib/phrase/api/distributions_api.rb +378 -0
  205. data/lib/phrase/api/documents_api.rb +152 -0
  206. data/lib/phrase/api/formats_api.rb +70 -0
  207. data/lib/phrase/api/git_hub_sync_api.rb +146 -0
  208. data/lib/phrase/api/git_lab_sync_api.rb +510 -0
  209. data/lib/phrase/api/glossaries_api.rb +378 -0
  210. data/lib/phrase/api/glossary_term_translations_api.rb +270 -0
  211. data/lib/phrase/api/glossary_terms_api.rb +408 -0
  212. data/lib/phrase/api/invitations_api.rb +450 -0
  213. data/lib/phrase/api/job_locales_api.rb +589 -0
  214. data/lib/phrase/api/jobs_api.rb +792 -0
  215. data/lib/phrase/api/keys_api.rb +702 -0
  216. data/lib/phrase/api/locales_api.rb +499 -0
  217. data/lib/phrase/api/members_api.rb +304 -0
  218. data/lib/phrase/api/orders_api.rb +387 -0
  219. data/lib/phrase/api/projects_api.rb +348 -0
  220. data/lib/phrase/api/releases_api.rb +486 -0
  221. data/lib/phrase/api/screenshot_markers_api.rb +396 -0
  222. data/lib/phrase/api/screenshots_api.rb +378 -0
  223. data/lib/phrase/api/spaces_api.rb +610 -0
  224. data/lib/phrase/api/style_guides_api.rb +378 -0
  225. data/lib/phrase/api/tags_api.rb +307 -0
  226. data/lib/phrase/api/teams_api.rb +840 -0
  227. data/lib/phrase/api/translations_api.rb +1353 -0
  228. data/lib/phrase/api/uploads_api.rb +273 -0
  229. data/lib/phrase/api/users_api.rb +70 -0
  230. data/lib/phrase/api/versions_history_api.rb +172 -0
  231. data/lib/phrase/api/webhooks_api.rb +448 -0
  232. data/lib/phrase/api_client.rb +376 -0
  233. data/lib/phrase/api_error.rb +45 -0
  234. data/lib/phrase/configuration.rb +243 -0
  235. data/lib/phrase/models/account.rb +239 -0
  236. data/lib/phrase/models/account_details.rb +247 -0
  237. data/lib/phrase/models/account_details1.rb +194 -0
  238. data/lib/phrase/models/affected_count.rb +194 -0
  239. data/lib/phrase/models/affected_resources.rb +194 -0
  240. data/lib/phrase/models/authorization.rb +259 -0
  241. data/lib/phrase/models/authorization_create_parameters.rb +217 -0
  242. data/lib/phrase/models/authorization_update_parameters.rb +217 -0
  243. data/lib/phrase/models/authorization_with_token.rb +276 -0
  244. data/lib/phrase/models/authorization_with_token1.rb +194 -0
  245. data/lib/phrase/models/bitbucket_sync.rb +241 -0
  246. data/lib/phrase/models/bitbucket_sync_export_parameters.rb +195 -0
  247. data/lib/phrase/models/bitbucket_sync_export_response.rb +194 -0
  248. data/lib/phrase/models/bitbucket_sync_import_parameters.rb +195 -0
  249. data/lib/phrase/models/blacklisted_key.rb +221 -0
  250. data/lib/phrase/models/blacklisted_key_create_parameters.rb +195 -0
  251. data/lib/phrase/models/blacklisted_key_update_parameters.rb +195 -0
  252. data/lib/phrase/models/branch.rb +248 -0
  253. data/lib/phrase/models/branch_create_parameters.rb +195 -0
  254. data/lib/phrase/models/branch_merge_parameters.rb +195 -0
  255. data/lib/phrase/models/branch_update_parameters.rb +195 -0
  256. data/lib/phrase/models/comment.rb +230 -0
  257. data/lib/phrase/models/comment_create_parameters.rb +205 -0
  258. data/lib/phrase/models/comment_mark_read_parameters.rb +195 -0
  259. data/lib/phrase/models/comment_update_parameters.rb +205 -0
  260. data/lib/phrase/models/distribution.rb +252 -0
  261. data/lib/phrase/models/distribution_create_parameters.rb +259 -0
  262. data/lib/phrase/models/distribution_preview.rb +250 -0
  263. data/lib/phrase/models/distribution_update_parameters.rb +259 -0
  264. data/lib/phrase/models/document.rb +221 -0
  265. data/lib/phrase/models/format.rb +275 -0
  266. data/lib/phrase/models/github_sync_export_parameters.rb +195 -0
  267. data/lib/phrase/models/github_sync_import_parameters.rb +195 -0
  268. data/lib/phrase/models/gitlab_sync.rb +284 -0
  269. data/lib/phrase/models/gitlab_sync_export.rb +203 -0
  270. data/lib/phrase/models/gitlab_sync_export_parameters.rb +195 -0
  271. data/lib/phrase/models/gitlab_sync_history.rb +232 -0
  272. data/lib/phrase/models/gitlab_sync_import_parameters.rb +195 -0
  273. data/lib/phrase/models/glossary.rb +232 -0
  274. data/lib/phrase/models/glossary_create_parameters.rb +217 -0
  275. data/lib/phrase/models/glossary_term.rb +259 -0
  276. data/lib/phrase/models/glossary_term_create_parameters.rb +225 -0
  277. data/lib/phrase/models/glossary_term_translation.rb +230 -0
  278. data/lib/phrase/models/glossary_term_translation_create_parameters.rb +205 -0
  279. data/lib/phrase/models/glossary_term_translation_update_parameters.rb +205 -0
  280. data/lib/phrase/models/glossary_term_update_parameters.rb +225 -0
  281. data/lib/phrase/models/glossary_update_parameters.rb +217 -0
  282. data/lib/phrase/models/inline_response422.rb +205 -0
  283. data/lib/phrase/models/inline_response422_errors.rb +212 -0
  284. data/lib/phrase/models/invitation.rb +279 -0
  285. data/lib/phrase/models/invitation_create_parameters.rb +237 -0
  286. data/lib/phrase/models/invitation_update_parameters.rb +227 -0
  287. data/lib/phrase/models/job.rb +248 -0
  288. data/lib/phrase/models/job_complete_parameters.rb +195 -0
  289. data/lib/phrase/models/job_create_parameters.rb +249 -0
  290. data/lib/phrase/models/job_details.rb +296 -0
  291. data/lib/phrase/models/job_details1.rb +225 -0
  292. data/lib/phrase/models/job_keys_create_parameters.rb +207 -0
  293. data/lib/phrase/models/job_locale.rb +223 -0
  294. data/lib/phrase/models/job_locale_complete_parameters.rb +195 -0
  295. data/lib/phrase/models/job_locale_reopen_parameters.rb +195 -0
  296. data/lib/phrase/models/job_locale_update_parameters.rb +217 -0
  297. data/lib/phrase/models/job_locales_create_parameters.rb +217 -0
  298. data/lib/phrase/models/job_preview.rb +212 -0
  299. data/lib/phrase/models/job_reopen_parameters.rb +195 -0
  300. data/lib/phrase/models/job_start_parameters.rb +195 -0
  301. data/lib/phrase/models/job_update_parameters.rb +225 -0
  302. data/lib/phrase/models/key_create_parameters.rb +335 -0
  303. data/lib/phrase/models/key_preview.rb +212 -0
  304. data/lib/phrase/models/key_update_parameters.rb +335 -0
  305. data/lib/phrase/models/keys_search_parameters.rb +235 -0
  306. data/lib/phrase/models/keys_tag_parameters.rb +225 -0
  307. data/lib/phrase/models/keys_untag_parameters.rb +225 -0
  308. data/lib/phrase/models/locale.rb +277 -0
  309. data/lib/phrase/models/locale_create_parameters.rb +285 -0
  310. data/lib/phrase/models/locale_details.rb +294 -0
  311. data/lib/phrase/models/locale_details1.rb +194 -0
  312. data/lib/phrase/models/locale_preview.rb +212 -0
  313. data/lib/phrase/models/locale_statistics.rb +248 -0
  314. data/lib/phrase/models/locale_update_parameters.rb +285 -0
  315. data/lib/phrase/models/member.rb +232 -0
  316. data/lib/phrase/models/member_update_parameters.rb +227 -0
  317. data/lib/phrase/models/order_confirm_parameters.rb +195 -0
  318. data/lib/phrase/models/order_create_parameters.rb +327 -0
  319. data/lib/phrase/models/project.rb +257 -0
  320. data/lib/phrase/models/project_create_parameters.rb +255 -0
  321. data/lib/phrase/models/project_details.rb +274 -0
  322. data/lib/phrase/models/project_details1.rb +203 -0
  323. data/lib/phrase/models/project_locales.rb +249 -0
  324. data/lib/phrase/models/project_locales1.rb +196 -0
  325. data/lib/phrase/models/project_short.rb +230 -0
  326. data/lib/phrase/models/project_update_parameters.rb +245 -0
  327. data/lib/phrase/models/release.rb +290 -0
  328. data/lib/phrase/models/release_create_parameters.rb +217 -0
  329. data/lib/phrase/models/release_preview.rb +290 -0
  330. data/lib/phrase/models/release_update_parameters.rb +217 -0
  331. data/lib/phrase/models/screenshot.rb +248 -0
  332. data/lib/phrase/models/screenshot_create_parameters.rb +215 -0
  333. data/lib/phrase/models/screenshot_marker.rb +239 -0
  334. data/lib/phrase/models/screenshot_marker_create_parameters.rb +205 -0
  335. data/lib/phrase/models/screenshot_marker_update_parameters.rb +205 -0
  336. data/lib/phrase/models/screenshot_update_parameters.rb +215 -0
  337. data/lib/phrase/models/space.rb +241 -0
  338. data/lib/phrase/models/space_create_parameters.rb +195 -0
  339. data/lib/phrase/models/space_update_parameters.rb +195 -0
  340. data/lib/phrase/models/spaces_projects_create_parameters.rb +195 -0
  341. data/lib/phrase/models/styleguide.rb +221 -0
  342. data/lib/phrase/models/styleguide_create_parameters.rb +315 -0
  343. data/lib/phrase/models/styleguide_details.rb +346 -0
  344. data/lib/phrase/models/styleguide_details1.rb +302 -0
  345. data/lib/phrase/models/styleguide_preview.rb +203 -0
  346. data/lib/phrase/models/styleguide_update_parameters.rb +315 -0
  347. data/lib/phrase/models/tag.rb +221 -0
  348. data/lib/phrase/models/tag_create_parameters.rb +205 -0
  349. data/lib/phrase/models/tag_with_stats.rb +240 -0
  350. data/lib/phrase/models/tag_with_stats1.rb +196 -0
  351. data/lib/phrase/models/tag_with_stats1_statistics.rb +221 -0
  352. data/lib/phrase/models/tag_with_stats1_statistics1.rb +203 -0
  353. data/lib/phrase/models/team.rb +254 -0
  354. data/lib/phrase/models/team_create_parameters.rb +195 -0
  355. data/lib/phrase/models/team_detail.rb +254 -0
  356. data/lib/phrase/models/team_update_parameters.rb +195 -0
  357. data/lib/phrase/models/teams_projects_create_parameters.rb +195 -0
  358. data/lib/phrase/models/teams_spaces_create_parameters.rb +195 -0
  359. data/lib/phrase/models/teams_users_create_parameters.rb +195 -0
  360. data/lib/phrase/models/translation.rb +286 -0
  361. data/lib/phrase/models/translation_create_parameters.rb +265 -0
  362. data/lib/phrase/models/translation_details.rb +312 -0
  363. data/lib/phrase/models/translation_details1.rb +203 -0
  364. data/lib/phrase/models/translation_exclude_parameters.rb +195 -0
  365. data/lib/phrase/models/translation_include_parameters.rb +195 -0
  366. data/lib/phrase/models/translation_key.rb +268 -0
  367. data/lib/phrase/models/translation_key_details.rb +357 -0
  368. data/lib/phrase/models/translation_key_details1.rb +266 -0
  369. data/lib/phrase/models/translation_order.rb +340 -0
  370. data/lib/phrase/models/translation_review_parameters.rb +195 -0
  371. data/lib/phrase/models/translation_unverify_parameters.rb +195 -0
  372. data/lib/phrase/models/translation_update_parameters.rb +245 -0
  373. data/lib/phrase/models/translation_verify_parameters.rb +195 -0
  374. data/lib/phrase/models/translation_version.rb +257 -0
  375. data/lib/phrase/models/translation_version_with_user.rb +274 -0
  376. data/lib/phrase/models/translation_version_with_user1.rb +194 -0
  377. data/lib/phrase/models/translations_exclude_parameters.rb +225 -0
  378. data/lib/phrase/models/translations_include_parameters.rb +225 -0
  379. data/lib/phrase/models/translations_review_parameters.rb +205 -0
  380. data/lib/phrase/models/translations_search_parameters.rb +225 -0
  381. data/lib/phrase/models/translations_unverify_parameters.rb +225 -0
  382. data/lib/phrase/models/translations_verify_parameters.rb +225 -0
  383. data/lib/phrase/models/upload.rb +257 -0
  384. data/lib/phrase/models/upload_create_parameters.rb +335 -0
  385. data/lib/phrase/models/upload_summary.rb +257 -0
  386. data/lib/phrase/models/user.rb +248 -0
  387. data/lib/phrase/models/user_preview.rb +212 -0
  388. data/lib/phrase/models/webhook.rb +250 -0
  389. data/lib/phrase/models/webhook_create_parameters.rb +225 -0
  390. data/lib/phrase/models/webhook_update_parameters.rb +225 -0
  391. data/lib/phrase/response.rb +41 -0
  392. data/lib/phrase/version.rb +1 -1
  393. data/phrase.gemspec +27 -27
  394. data/spec/api/accounts_api_spec.rb +50 -0
  395. data/spec/api/authorizations_api_spec.rb +90 -0
  396. data/spec/api/bitbucket_sync_api_spec.rb +64 -0
  397. data/spec/api/blacklisted_keys_api_spec.rb +96 -0
  398. data/spec/api/branches_api_spec.rb +124 -0
  399. data/spec/api/comments_api_spec.rb +151 -0
  400. data/spec/api/distributions_api_spec.rb +95 -0
  401. data/spec/api/documents_api_spec.rb +52 -0
  402. data/spec/api/formats_api_spec.rb +35 -0
  403. data/spec/api/git_hub_sync_api_spec.rb +49 -0
  404. data/spec/api/git_lab_sync_api_spec.rb +125 -0
  405. data/spec/api/glossaries_api_spec.rb +95 -0
  406. data/spec/api/glossary_term_translations_api_spec.rb +72 -0
  407. data/spec/api/glossary_terms_api_spec.rb +100 -0
  408. data/spec/api/invitations_api_spec.rb +109 -0
  409. data/spec/api/job_locales_api_spec.rb +135 -0
  410. data/spec/api/jobs_api_spec.rb +177 -0
  411. data/spec/api/keys_api_spec.rb +162 -0
  412. data/spec/api/locales_api_spec.rb +126 -0
  413. data/spec/api/members_api_spec.rb +81 -0
  414. data/spec/api/orders_api_spec.rb +98 -0
  415. data/spec/api/projects_api_spec.rb +90 -0
  416. data/spec/api/releases_api_spec.rb +115 -0
  417. data/spec/api/screenshot_markers_api_spec.rb +98 -0
  418. data/spec/api/screenshots_api_spec.rb +95 -0
  419. data/spec/api/spaces_api_spec.rb +141 -0
  420. data/spec/api/style_guides_api_spec.rb +95 -0
  421. data/spec/api/tags_api_spec.rb +83 -0
  422. data/spec/api/teams_api_spec.rb +185 -0
  423. data/spec/api/translations_api_spec.rb +287 -0
  424. data/spec/api/uploads_api_spec.rb +82 -0
  425. data/spec/api/users_api_spec.rb +35 -0
  426. data/spec/api/versions_history_api_spec.rb +56 -0
  427. data/spec/api/webhooks_api_spec.rb +109 -0
  428. data/spec/api_client_spec.rb +214 -0
  429. data/spec/configuration_spec.rb +30 -0
  430. data/spec/models/account_details1_spec.rb +29 -0
  431. data/spec/models/account_details_spec.rb +59 -0
  432. data/spec/models/account_spec.rb +59 -0
  433. data/spec/models/affected_count_spec.rb +29 -0
  434. data/spec/models/affected_resources_spec.rb +29 -0
  435. data/spec/models/authorization_create_parameters_spec.rb +41 -0
  436. data/spec/models/authorization_spec.rb +71 -0
  437. data/spec/models/authorization_update_parameters_spec.rb +41 -0
  438. data/spec/models/authorization_with_token1_spec.rb +29 -0
  439. data/spec/models/authorization_with_token_spec.rb +77 -0
  440. data/spec/models/bitbucket_sync_export_parameters_spec.rb +29 -0
  441. data/spec/models/bitbucket_sync_export_response_spec.rb +29 -0
  442. data/spec/models/bitbucket_sync_import_parameters_spec.rb +29 -0
  443. data/spec/models/bitbucket_sync_spec.rb +59 -0
  444. data/spec/models/blacklisted_key_create_parameters_spec.rb +29 -0
  445. data/spec/models/blacklisted_key_spec.rb +47 -0
  446. data/spec/models/blacklisted_key_update_parameters_spec.rb +29 -0
  447. data/spec/models/branch_create_parameters_spec.rb +29 -0
  448. data/spec/models/branch_merge_parameters_spec.rb +29 -0
  449. data/spec/models/branch_spec.rb +65 -0
  450. data/spec/models/branch_update_parameters_spec.rb +29 -0
  451. data/spec/models/comment_create_parameters_spec.rb +35 -0
  452. data/spec/models/comment_mark_read_parameters_spec.rb +29 -0
  453. data/spec/models/comment_spec.rb +53 -0
  454. data/spec/models/comment_update_parameters_spec.rb +35 -0
  455. data/spec/models/distribution_create_parameters_spec.rb +65 -0
  456. data/spec/models/distribution_preview_spec.rb +65 -0
  457. data/spec/models/distribution_spec.rb +65 -0
  458. data/spec/models/distribution_update_parameters_spec.rb +65 -0
  459. data/spec/models/document_spec.rb +47 -0
  460. data/spec/models/format_spec.rb +83 -0
  461. data/spec/models/github_sync_export_parameters_spec.rb +29 -0
  462. data/spec/models/github_sync_import_parameters_spec.rb +29 -0
  463. data/spec/models/gitlab_sync_export_parameters_spec.rb +29 -0
  464. data/spec/models/gitlab_sync_export_spec.rb +35 -0
  465. data/spec/models/gitlab_sync_history_spec.rb +53 -0
  466. data/spec/models/gitlab_sync_import_parameters_spec.rb +29 -0
  467. data/spec/models/gitlab_sync_spec.rb +89 -0
  468. data/spec/models/glossary_create_parameters_spec.rb +41 -0
  469. data/spec/models/glossary_spec.rb +53 -0
  470. data/spec/models/glossary_term_create_parameters_spec.rb +47 -0
  471. data/spec/models/glossary_term_spec.rb +71 -0
  472. data/spec/models/glossary_term_translation_create_parameters_spec.rb +35 -0
  473. data/spec/models/glossary_term_translation_spec.rb +53 -0
  474. data/spec/models/glossary_term_translation_update_parameters_spec.rb +35 -0
  475. data/spec/models/glossary_term_update_parameters_spec.rb +47 -0
  476. data/spec/models/glossary_update_parameters_spec.rb +41 -0
  477. data/spec/models/inline_response422_errors_spec.rb +41 -0
  478. data/spec/models/inline_response422_spec.rb +35 -0
  479. data/spec/models/invitation_create_parameters_spec.rb +53 -0
  480. data/spec/models/invitation_spec.rb +83 -0
  481. data/spec/models/invitation_update_parameters_spec.rb +47 -0
  482. data/spec/models/job_complete_parameters_spec.rb +29 -0
  483. data/spec/models/job_create_parameters_spec.rb +59 -0
  484. data/spec/models/job_details1_spec.rb +47 -0
  485. data/spec/models/job_details_spec.rb +89 -0
  486. data/spec/models/job_keys_create_parameters_spec.rb +35 -0
  487. data/spec/models/job_locale_complete_parameters_spec.rb +29 -0
  488. data/spec/models/job_locale_reopen_parameters_spec.rb +29 -0
  489. data/spec/models/job_locale_spec.rb +47 -0
  490. data/spec/models/job_locale_update_parameters_spec.rb +41 -0
  491. data/spec/models/job_locales_create_parameters_spec.rb +41 -0
  492. data/spec/models/job_preview_spec.rb +41 -0
  493. data/spec/models/job_reopen_parameters_spec.rb +29 -0
  494. data/spec/models/job_spec.rb +65 -0
  495. data/spec/models/job_start_parameters_spec.rb +29 -0
  496. data/spec/models/job_update_parameters_spec.rb +47 -0
  497. data/spec/models/key_create_parameters_spec.rb +113 -0
  498. data/spec/models/key_preview_spec.rb +41 -0
  499. data/spec/models/key_update_parameters_spec.rb +113 -0
  500. data/spec/models/keys_search_parameters_spec.rb +53 -0
  501. data/spec/models/keys_tag_parameters_spec.rb +47 -0
  502. data/spec/models/keys_untag_parameters_spec.rb +47 -0
  503. data/spec/models/locale_create_parameters_spec.rb +83 -0
  504. data/spec/models/locale_details1_spec.rb +29 -0
  505. data/spec/models/locale_details_spec.rb +89 -0
  506. data/spec/models/locale_preview_spec.rb +41 -0
  507. data/spec/models/locale_spec.rb +83 -0
  508. data/spec/models/locale_statistics_spec.rb +65 -0
  509. data/spec/models/locale_update_parameters_spec.rb +83 -0
  510. data/spec/models/member_spec.rb +53 -0
  511. data/spec/models/member_update_parameters_spec.rb +47 -0
  512. data/spec/models/order_confirm_parameters_spec.rb +29 -0
  513. data/spec/models/order_create_parameters_spec.rb +107 -0
  514. data/spec/models/project_create_parameters_spec.rb +65 -0
  515. data/spec/models/project_details1_spec.rb +35 -0
  516. data/spec/models/project_details_spec.rb +77 -0
  517. data/spec/models/project_locales1_spec.rb +29 -0
  518. data/spec/models/project_locales_spec.rb +59 -0
  519. data/spec/models/project_short_spec.rb +53 -0
  520. data/spec/models/project_spec.rb +71 -0
  521. data/spec/models/project_update_parameters_spec.rb +59 -0
  522. data/spec/models/release_create_parameters_spec.rb +41 -0
  523. data/spec/models/release_preview_spec.rb +89 -0
  524. data/spec/models/release_spec.rb +89 -0
  525. data/spec/models/release_update_parameters_spec.rb +41 -0
  526. data/spec/models/screenshot_create_parameters_spec.rb +41 -0
  527. data/spec/models/screenshot_marker_create_parameters_spec.rb +35 -0
  528. data/spec/models/screenshot_marker_spec.rb +59 -0
  529. data/spec/models/screenshot_marker_update_parameters_spec.rb +35 -0
  530. data/spec/models/screenshot_spec.rb +65 -0
  531. data/spec/models/screenshot_update_parameters_spec.rb +41 -0
  532. data/spec/models/space_create_parameters_spec.rb +29 -0
  533. data/spec/models/space_spec.rb +59 -0
  534. data/spec/models/space_update_parameters_spec.rb +29 -0
  535. data/spec/models/spaces_projects_create_parameters_spec.rb +29 -0
  536. data/spec/models/styleguide_create_parameters_spec.rb +101 -0
  537. data/spec/models/styleguide_details1_spec.rb +101 -0
  538. data/spec/models/styleguide_details_spec.rb +125 -0
  539. data/spec/models/styleguide_preview_spec.rb +35 -0
  540. data/spec/models/styleguide_spec.rb +47 -0
  541. data/spec/models/styleguide_update_parameters_spec.rb +101 -0
  542. data/spec/models/tag_create_parameters_spec.rb +35 -0
  543. data/spec/models/tag_spec.rb +47 -0
  544. data/spec/models/tag_with_stats1_spec.rb +29 -0
  545. data/spec/models/tag_with_stats1_statistics1_spec.rb +35 -0
  546. data/spec/models/tag_with_stats1_statistics_spec.rb +47 -0
  547. data/spec/models/tag_with_stats_spec.rb +53 -0
  548. data/spec/models/team_create_parameters_spec.rb +29 -0
  549. data/spec/models/team_detail_spec.rb +65 -0
  550. data/spec/models/team_spec.rb +65 -0
  551. data/spec/models/team_update_parameters_spec.rb +29 -0
  552. data/spec/models/teams_projects_create_parameters_spec.rb +29 -0
  553. data/spec/models/teams_spaces_create_parameters_spec.rb +29 -0
  554. data/spec/models/teams_users_create_parameters_spec.rb +29 -0
  555. data/spec/models/translation_create_parameters_spec.rb +71 -0
  556. data/spec/models/translation_details1_spec.rb +35 -0
  557. data/spec/models/translation_details_spec.rb +101 -0
  558. data/spec/models/translation_exclude_parameters_spec.rb +29 -0
  559. data/spec/models/translation_include_parameters_spec.rb +29 -0
  560. data/spec/models/translation_key_details1_spec.rb +77 -0
  561. data/spec/models/translation_key_details_spec.rb +131 -0
  562. data/spec/models/translation_key_spec.rb +77 -0
  563. data/spec/models/translation_order_spec.rb +125 -0
  564. data/spec/models/translation_review_parameters_spec.rb +29 -0
  565. data/spec/models/translation_spec.rb +89 -0
  566. data/spec/models/translation_unverify_parameters_spec.rb +29 -0
  567. data/spec/models/translation_update_parameters_spec.rb +59 -0
  568. data/spec/models/translation_verify_parameters_spec.rb +29 -0
  569. data/spec/models/translation_version_spec.rb +71 -0
  570. data/spec/models/translation_version_with_user1_spec.rb +29 -0
  571. data/spec/models/translation_version_with_user_spec.rb +77 -0
  572. data/spec/models/translations_exclude_parameters_spec.rb +47 -0
  573. data/spec/models/translations_include_parameters_spec.rb +47 -0
  574. data/spec/models/translations_review_parameters_spec.rb +35 -0
  575. data/spec/models/translations_search_parameters_spec.rb +47 -0
  576. data/spec/models/translations_unverify_parameters_spec.rb +47 -0
  577. data/spec/models/translations_verify_parameters_spec.rb +47 -0
  578. data/spec/models/upload_create_parameters_spec.rb +113 -0
  579. data/spec/models/upload_spec.rb +71 -0
  580. data/spec/models/upload_summary_spec.rb +71 -0
  581. data/spec/models/user_preview_spec.rb +41 -0
  582. data/spec/models/user_spec.rb +65 -0
  583. data/spec/models/webhook_create_parameters_spec.rb +47 -0
  584. data/spec/models/webhook_spec.rb +65 -0
  585. data/spec/models/webhook_update_parameters_spec.rb +47 -0
  586. data/spec/spec_helper.rb +99 -0
  587. metadata +819 -188
  588. data/.gitignore +0 -25
  589. data/.travis.yml +0 -4
  590. data/Guardfile +0 -29
  591. data/bin/phrase +0 -8
  592. data/cacert.pem +0 -3366
  593. data/lib/ext/all.rb +0 -5
  594. data/lib/ext/hash.rb +0 -8
  595. data/lib/ext/object.rb +0 -130
  596. data/lib/ext/try.rb +0 -57
  597. data/lib/generators/phrase/install_generator.rb +0 -37
  598. data/lib/generators/templates/README +0 -11
  599. data/lib/generators/templates/phrase.rb +0 -21
  600. data/lib/phrase/adapters/fast_gettext.rb +0 -25
  601. data/lib/phrase/adapters/i18n.rb +0 -12
  602. data/lib/phrase/api.rb +0 -7
  603. data/lib/phrase/api/client.rb +0 -308
  604. data/lib/phrase/api/client/http.rb +0 -56
  605. data/lib/phrase/api/config.rb +0 -34
  606. data/lib/phrase/api/exceptions.rb +0 -9
  607. data/lib/phrase/api/query_params.rb +0 -22
  608. data/lib/phrase/backend.rb +0 -7
  609. data/lib/phrase/backend/base.rb +0 -6
  610. data/lib/phrase/backend/phrase_service.rb +0 -163
  611. data/lib/phrase/cache.rb +0 -34
  612. data/lib/phrase/config.rb +0 -94
  613. data/lib/phrase/delegate.rb +0 -36
  614. data/lib/phrase/delegate/fast_gettext.rb +0 -27
  615. data/lib/phrase/delegate/i18n.rb +0 -166
  616. data/lib/phrase/engine.rb +0 -14
  617. data/lib/phrase/formats.rb +0 -172
  618. data/lib/phrase/formats/angular_translate.rb +0 -19
  619. data/lib/phrase/formats/csv.rb +0 -19
  620. data/lib/phrase/formats/custom.rb +0 -40
  621. data/lib/phrase/formats/gettext.rb +0 -27
  622. data/lib/phrase/formats/gettext_template.rb +0 -19
  623. data/lib/phrase/formats/ini.rb +0 -19
  624. data/lib/phrase/formats/json.rb +0 -19
  625. data/lib/phrase/formats/laravel.rb +0 -19
  626. data/lib/phrase/formats/mozilla_properties.rb +0 -8
  627. data/lib/phrase/formats/nested_json.rb +0 -19
  628. data/lib/phrase/formats/node_json.rb +0 -23
  629. data/lib/phrase/formats/php_array.rb +0 -19
  630. data/lib/phrase/formats/play_properties.rb +0 -15
  631. data/lib/phrase/formats/plist.rb +0 -19
  632. data/lib/phrase/formats/properties.rb +0 -19
  633. data/lib/phrase/formats/properties_xml.rb +0 -19
  634. data/lib/phrase/formats/qt_phrase_book.rb +0 -19
  635. data/lib/phrase/formats/qt_translation_source.rb +0 -19
  636. data/lib/phrase/formats/resx.rb +0 -19
  637. data/lib/phrase/formats/resx_windowsphone.rb +0 -19
  638. data/lib/phrase/formats/simple_json.rb +0 -19
  639. data/lib/phrase/formats/strings.rb +0 -45
  640. data/lib/phrase/formats/tmx.rb +0 -19
  641. data/lib/phrase/formats/windows8_resource.rb +0 -19
  642. data/lib/phrase/formats/xliff.rb +0 -19
  643. data/lib/phrase/formats/xml.rb +0 -49
  644. data/lib/phrase/formats/yaml.rb +0 -19
  645. data/lib/phrase/formats/yaml_symfony.rb +0 -19
  646. data/lib/phrase/formats/yaml_symfony2.rb +0 -8
  647. data/lib/phrase/hash_flattener.rb +0 -21
  648. data/lib/phrase/tool.rb +0 -46
  649. data/lib/phrase/tool/commands.rb +0 -56
  650. data/lib/phrase/tool/commands/base.rb +0 -73
  651. data/lib/phrase/tool/commands/init.rb +0 -51
  652. data/lib/phrase/tool/commands/pull.rb +0 -109
  653. data/lib/phrase/tool/commands/push.rb +0 -163
  654. data/lib/phrase/tool/commands/show_help.rb +0 -26
  655. data/lib/phrase/tool/commands/show_version.rb +0 -17
  656. data/lib/phrase/tool/commands/tags.rb +0 -29
  657. data/lib/phrase/tool/config.rb +0 -120
  658. data/lib/phrase/tool/encoding_detector.rb +0 -17
  659. data/lib/phrase/tool/locale.rb +0 -41
  660. data/lib/phrase/tool/options.rb +0 -32
  661. data/lib/phrase/tool/options_factory.rb +0 -150
  662. data/lib/phrase/tool/tag_validator.rb +0 -9
  663. data/lib/phrase/view_helpers.rb +0 -19
@@ -0,0 +1,448 @@
1
+ require 'cgi'
2
+
3
+ module Phrase
4
+ class WebhooksApi
5
+ attr_accessor :api_client
6
+
7
+ def initialize(api_client = ApiClient.default)
8
+ @api_client = api_client
9
+ end
10
+ # Create a webhook
11
+ # Create a new webhook.
12
+ # @param project_id [String] Project ID
13
+ # @param webhook_create_parameters [WebhookCreateParameters]
14
+ # @param [Hash] opts the optional parameters
15
+ # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
16
+ # @return [Webhook]
17
+ def webhook_create(project_id, webhook_create_parameters, opts = {})
18
+ data, _status_code, _headers = webhook_create_with_http_info(project_id, webhook_create_parameters, opts)
19
+ data
20
+ end
21
+
22
+ # Create a webhook
23
+ # Create a new webhook.
24
+ # @param project_id [String] Project ID
25
+ # @param webhook_create_parameters [WebhookCreateParameters]
26
+ # @param [Hash] opts the optional parameters
27
+ # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
28
+ # @return [Array<(Response<(Webhook)>, Integer, Hash)>] Response<(Webhook)> data, response status code and response headers
29
+ def webhook_create_with_http_info(project_id, webhook_create_parameters, opts = {})
30
+ if @api_client.config.debugging
31
+ @api_client.config.logger.debug 'Calling API: WebhooksApi.webhook_create ...'
32
+ end
33
+ # verify the required parameter 'project_id' is set
34
+ if @api_client.config.client_side_validation && project_id.nil?
35
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling WebhooksApi.webhook_create"
36
+ end
37
+ # verify the required parameter 'webhook_create_parameters' is set
38
+ if @api_client.config.client_side_validation && webhook_create_parameters.nil?
39
+ fail ArgumentError, "Missing the required parameter 'webhook_create_parameters' when calling WebhooksApi.webhook_create"
40
+ end
41
+ # resource path
42
+ local_var_path = '/projects/{project_id}/webhooks'.sub('{' + 'project_id' + '}', CGI.escape(project_id.to_s))
43
+
44
+ # query parameters
45
+ query_params = opts[:query_params] || {}
46
+
47
+ # header parameters
48
+ header_params = opts[:header_params] || {}
49
+ # HTTP header 'Accept' (if needed)
50
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
51
+ # HTTP header 'Content-Type'
52
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
53
+ header_params[:'X-PhraseApp-OTP'] = opts[:'x_phrase_app_otp'] if !opts[:'x_phrase_app_otp'].nil?
54
+
55
+ # form parameters
56
+ form_params = opts[:form_params] || {}
57
+
58
+ # http body (model)
59
+ post_body = opts[:body] || @api_client.object_to_http_body(webhook_create_parameters)
60
+
61
+ # return_type
62
+ return_type = opts[:return_type] || 'Webhook'
63
+
64
+ # auth_names
65
+ auth_names = opts[:auth_names] || ['Basic', 'Token']
66
+
67
+ new_options = opts.merge(
68
+ :header_params => header_params,
69
+ :query_params => query_params,
70
+ :form_params => form_params,
71
+ :body => post_body,
72
+ :auth_names => auth_names,
73
+ :return_type => return_type
74
+ )
75
+
76
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
77
+ if @api_client.config.debugging
78
+ @api_client.config.logger.debug "API called: WebhooksApi#webhook_create\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
79
+ end
80
+ response = ::Phrase::Response.new(data, headers)
81
+ return response, status_code, headers
82
+ end
83
+
84
+ # Delete a webhook
85
+ # Delete an existing webhook.
86
+ # @param project_id [String] Project ID
87
+ # @param id [String] ID
88
+ # @param [Hash] opts the optional parameters
89
+ # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
90
+ # @return [nil]
91
+ def webhook_delete(project_id, id, opts = {})
92
+ data, _status_code, _headers = webhook_delete_with_http_info(project_id, id, opts)
93
+ data
94
+ end
95
+
96
+ # Delete a webhook
97
+ # Delete an existing webhook.
98
+ # @param project_id [String] Project ID
99
+ # @param id [String] ID
100
+ # @param [Hash] opts the optional parameters
101
+ # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
102
+ # @return [Array<(Response, Integer, Hash)>] Response<(nil, response status code and response headers
103
+ def webhook_delete_with_http_info(project_id, id, opts = {})
104
+ if @api_client.config.debugging
105
+ @api_client.config.logger.debug 'Calling API: WebhooksApi.webhook_delete ...'
106
+ end
107
+ # verify the required parameter 'project_id' is set
108
+ if @api_client.config.client_side_validation && project_id.nil?
109
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling WebhooksApi.webhook_delete"
110
+ end
111
+ # verify the required parameter 'id' is set
112
+ if @api_client.config.client_side_validation && id.nil?
113
+ fail ArgumentError, "Missing the required parameter 'id' when calling WebhooksApi.webhook_delete"
114
+ end
115
+ # resource path
116
+ local_var_path = '/projects/{project_id}/webhooks/{id}'.sub('{' + 'project_id' + '}', CGI.escape(project_id.to_s)).sub('{' + 'id' + '}', CGI.escape(id.to_s))
117
+
118
+ # query parameters
119
+ query_params = opts[:query_params] || {}
120
+
121
+ # header parameters
122
+ header_params = opts[:header_params] || {}
123
+ header_params[:'X-PhraseApp-OTP'] = opts[:'x_phrase_app_otp'] if !opts[:'x_phrase_app_otp'].nil?
124
+
125
+ # form parameters
126
+ form_params = opts[:form_params] || {}
127
+
128
+ # http body (model)
129
+ post_body = opts[:body]
130
+
131
+ # return_type
132
+ return_type = opts[:return_type]
133
+
134
+ # auth_names
135
+ auth_names = opts[:auth_names] || ['Basic', 'Token']
136
+
137
+ new_options = opts.merge(
138
+ :header_params => header_params,
139
+ :query_params => query_params,
140
+ :form_params => form_params,
141
+ :body => post_body,
142
+ :auth_names => auth_names,
143
+ :return_type => return_type
144
+ )
145
+
146
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
147
+ if @api_client.config.debugging
148
+ @api_client.config.logger.debug "API called: WebhooksApi#webhook_delete\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
149
+ end
150
+ response = ::Phrase::Response.new(data, headers)
151
+ return response, status_code, headers
152
+ end
153
+
154
+ # Get a single webhook
155
+ # Get details on a single webhook.
156
+ # @param project_id [String] Project ID
157
+ # @param id [String] ID
158
+ # @param [Hash] opts the optional parameters
159
+ # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
160
+ # @return [Webhook]
161
+ def webhook_show(project_id, id, opts = {})
162
+ data, _status_code, _headers = webhook_show_with_http_info(project_id, id, opts)
163
+ data
164
+ end
165
+
166
+ # Get a single webhook
167
+ # Get details on a single webhook.
168
+ # @param project_id [String] Project ID
169
+ # @param id [String] ID
170
+ # @param [Hash] opts the optional parameters
171
+ # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
172
+ # @return [Array<(Response<(Webhook)>, Integer, Hash)>] Response<(Webhook)> data, response status code and response headers
173
+ def webhook_show_with_http_info(project_id, id, opts = {})
174
+ if @api_client.config.debugging
175
+ @api_client.config.logger.debug 'Calling API: WebhooksApi.webhook_show ...'
176
+ end
177
+ # verify the required parameter 'project_id' is set
178
+ if @api_client.config.client_side_validation && project_id.nil?
179
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling WebhooksApi.webhook_show"
180
+ end
181
+ # verify the required parameter 'id' is set
182
+ if @api_client.config.client_side_validation && id.nil?
183
+ fail ArgumentError, "Missing the required parameter 'id' when calling WebhooksApi.webhook_show"
184
+ end
185
+ # resource path
186
+ local_var_path = '/projects/{project_id}/webhooks/{id}'.sub('{' + 'project_id' + '}', CGI.escape(project_id.to_s)).sub('{' + 'id' + '}', CGI.escape(id.to_s))
187
+
188
+ # query parameters
189
+ query_params = opts[:query_params] || {}
190
+
191
+ # header parameters
192
+ header_params = opts[:header_params] || {}
193
+ # HTTP header 'Accept' (if needed)
194
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
195
+ header_params[:'X-PhraseApp-OTP'] = opts[:'x_phrase_app_otp'] if !opts[:'x_phrase_app_otp'].nil?
196
+
197
+ # form parameters
198
+ form_params = opts[:form_params] || {}
199
+
200
+ # http body (model)
201
+ post_body = opts[:body]
202
+
203
+ # return_type
204
+ return_type = opts[:return_type] || 'Webhook'
205
+
206
+ # auth_names
207
+ auth_names = opts[:auth_names] || ['Basic', 'Token']
208
+
209
+ new_options = opts.merge(
210
+ :header_params => header_params,
211
+ :query_params => query_params,
212
+ :form_params => form_params,
213
+ :body => post_body,
214
+ :auth_names => auth_names,
215
+ :return_type => return_type
216
+ )
217
+
218
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
219
+ if @api_client.config.debugging
220
+ @api_client.config.logger.debug "API called: WebhooksApi#webhook_show\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
221
+ end
222
+ response = ::Phrase::Response.new(data, headers)
223
+ return response, status_code, headers
224
+ end
225
+
226
+ # Test a webhook
227
+ # Perform a test request for a webhook.
228
+ # @param project_id [String] Project ID
229
+ # @param id [String] ID
230
+ # @param [Hash] opts the optional parameters
231
+ # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
232
+ # @return [nil]
233
+ def webhook_test(project_id, id, opts = {})
234
+ data, _status_code, _headers = webhook_test_with_http_info(project_id, id, opts)
235
+ data
236
+ end
237
+
238
+ # Test a webhook
239
+ # Perform a test request for a webhook.
240
+ # @param project_id [String] Project ID
241
+ # @param id [String] ID
242
+ # @param [Hash] opts the optional parameters
243
+ # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
244
+ # @return [Array<(Response, Integer, Hash)>] Response<(nil, response status code and response headers
245
+ def webhook_test_with_http_info(project_id, id, opts = {})
246
+ if @api_client.config.debugging
247
+ @api_client.config.logger.debug 'Calling API: WebhooksApi.webhook_test ...'
248
+ end
249
+ # verify the required parameter 'project_id' is set
250
+ if @api_client.config.client_side_validation && project_id.nil?
251
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling WebhooksApi.webhook_test"
252
+ end
253
+ # verify the required parameter 'id' is set
254
+ if @api_client.config.client_side_validation && id.nil?
255
+ fail ArgumentError, "Missing the required parameter 'id' when calling WebhooksApi.webhook_test"
256
+ end
257
+ # resource path
258
+ local_var_path = '/projects/{project_id}/webhooks/{id}/test'.sub('{' + 'project_id' + '}', CGI.escape(project_id.to_s)).sub('{' + 'id' + '}', CGI.escape(id.to_s))
259
+
260
+ # query parameters
261
+ query_params = opts[:query_params] || {}
262
+
263
+ # header parameters
264
+ header_params = opts[:header_params] || {}
265
+ header_params[:'X-PhraseApp-OTP'] = opts[:'x_phrase_app_otp'] if !opts[:'x_phrase_app_otp'].nil?
266
+
267
+ # form parameters
268
+ form_params = opts[:form_params] || {}
269
+
270
+ # http body (model)
271
+ post_body = opts[:body]
272
+
273
+ # return_type
274
+ return_type = opts[:return_type]
275
+
276
+ # auth_names
277
+ auth_names = opts[:auth_names] || ['Basic', 'Token']
278
+
279
+ new_options = opts.merge(
280
+ :header_params => header_params,
281
+ :query_params => query_params,
282
+ :form_params => form_params,
283
+ :body => post_body,
284
+ :auth_names => auth_names,
285
+ :return_type => return_type
286
+ )
287
+
288
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
289
+ if @api_client.config.debugging
290
+ @api_client.config.logger.debug "API called: WebhooksApi#webhook_test\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
291
+ end
292
+ response = ::Phrase::Response.new(data, headers)
293
+ return response, status_code, headers
294
+ end
295
+
296
+ # Update a webhook
297
+ # Update an existing webhook.
298
+ # @param project_id [String] Project ID
299
+ # @param id [String] ID
300
+ # @param webhook_update_parameters [WebhookUpdateParameters]
301
+ # @param [Hash] opts the optional parameters
302
+ # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
303
+ # @return [Webhook]
304
+ def webhook_update(project_id, id, webhook_update_parameters, opts = {})
305
+ data, _status_code, _headers = webhook_update_with_http_info(project_id, id, webhook_update_parameters, opts)
306
+ data
307
+ end
308
+
309
+ # Update a webhook
310
+ # Update an existing webhook.
311
+ # @param project_id [String] Project ID
312
+ # @param id [String] ID
313
+ # @param webhook_update_parameters [WebhookUpdateParameters]
314
+ # @param [Hash] opts the optional parameters
315
+ # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
316
+ # @return [Array<(Response<(Webhook)>, Integer, Hash)>] Response<(Webhook)> data, response status code and response headers
317
+ def webhook_update_with_http_info(project_id, id, webhook_update_parameters, opts = {})
318
+ if @api_client.config.debugging
319
+ @api_client.config.logger.debug 'Calling API: WebhooksApi.webhook_update ...'
320
+ end
321
+ # verify the required parameter 'project_id' is set
322
+ if @api_client.config.client_side_validation && project_id.nil?
323
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling WebhooksApi.webhook_update"
324
+ end
325
+ # verify the required parameter 'id' is set
326
+ if @api_client.config.client_side_validation && id.nil?
327
+ fail ArgumentError, "Missing the required parameter 'id' when calling WebhooksApi.webhook_update"
328
+ end
329
+ # verify the required parameter 'webhook_update_parameters' is set
330
+ if @api_client.config.client_side_validation && webhook_update_parameters.nil?
331
+ fail ArgumentError, "Missing the required parameter 'webhook_update_parameters' when calling WebhooksApi.webhook_update"
332
+ end
333
+ # resource path
334
+ local_var_path = '/projects/{project_id}/webhooks/{id}'.sub('{' + 'project_id' + '}', CGI.escape(project_id.to_s)).sub('{' + 'id' + '}', CGI.escape(id.to_s))
335
+
336
+ # query parameters
337
+ query_params = opts[:query_params] || {}
338
+
339
+ # header parameters
340
+ header_params = opts[:header_params] || {}
341
+ # HTTP header 'Accept' (if needed)
342
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
343
+ # HTTP header 'Content-Type'
344
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
345
+ header_params[:'X-PhraseApp-OTP'] = opts[:'x_phrase_app_otp'] if !opts[:'x_phrase_app_otp'].nil?
346
+
347
+ # form parameters
348
+ form_params = opts[:form_params] || {}
349
+
350
+ # http body (model)
351
+ post_body = opts[:body] || @api_client.object_to_http_body(webhook_update_parameters)
352
+
353
+ # return_type
354
+ return_type = opts[:return_type] || 'Webhook'
355
+
356
+ # auth_names
357
+ auth_names = opts[:auth_names] || ['Basic', 'Token']
358
+
359
+ new_options = opts.merge(
360
+ :header_params => header_params,
361
+ :query_params => query_params,
362
+ :form_params => form_params,
363
+ :body => post_body,
364
+ :auth_names => auth_names,
365
+ :return_type => return_type
366
+ )
367
+
368
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
369
+ if @api_client.config.debugging
370
+ @api_client.config.logger.debug "API called: WebhooksApi#webhook_update\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
371
+ end
372
+ response = ::Phrase::Response.new(data, headers)
373
+ return response, status_code, headers
374
+ end
375
+
376
+ # List webhooks
377
+ # List all webhooks for the given project.
378
+ # @param project_id [String] Project ID
379
+ # @param [Hash] opts the optional parameters
380
+ # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
381
+ # @option opts [Integer] :page Page number
382
+ # @option opts [Integer] :per_page allows you to specify a page size up to 100 items, 25 by default
383
+ # @return [Array<Webhook>]
384
+ def webhooks_list(project_id, opts = {})
385
+ data, _status_code, _headers = webhooks_list_with_http_info(project_id, opts)
386
+ data
387
+ end
388
+
389
+ # List webhooks
390
+ # List all webhooks for the given project.
391
+ # @param project_id [String] Project ID
392
+ # @param [Hash] opts the optional parameters
393
+ # @option opts [String] :x_phrase_app_otp Two-Factor-Authentication token (optional)
394
+ # @option opts [Integer] :page Page number
395
+ # @option opts [Integer] :per_page allows you to specify a page size up to 100 items, 25 by default
396
+ # @return [Array<(Response<(Array<Webhook>)>, Integer, Hash)>] Response<(Array<Webhook>)> data, response status code and response headers
397
+ def webhooks_list_with_http_info(project_id, opts = {})
398
+ if @api_client.config.debugging
399
+ @api_client.config.logger.debug 'Calling API: WebhooksApi.webhooks_list ...'
400
+ end
401
+ # verify the required parameter 'project_id' is set
402
+ if @api_client.config.client_side_validation && project_id.nil?
403
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling WebhooksApi.webhooks_list"
404
+ end
405
+ # resource path
406
+ local_var_path = '/projects/{project_id}/webhooks'.sub('{' + 'project_id' + '}', CGI.escape(project_id.to_s))
407
+
408
+ # query parameters
409
+ query_params = opts[:query_params] || {}
410
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
411
+ query_params[:'per_page'] = opts[:'per_page'] if !opts[:'per_page'].nil?
412
+
413
+ # header parameters
414
+ header_params = opts[:header_params] || {}
415
+ # HTTP header 'Accept' (if needed)
416
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
417
+ header_params[:'X-PhraseApp-OTP'] = opts[:'x_phrase_app_otp'] if !opts[:'x_phrase_app_otp'].nil?
418
+
419
+ # form parameters
420
+ form_params = opts[:form_params] || {}
421
+
422
+ # http body (model)
423
+ post_body = opts[:body]
424
+
425
+ # return_type
426
+ return_type = opts[:return_type] || 'Array<Webhook>'
427
+
428
+ # auth_names
429
+ auth_names = opts[:auth_names] || ['Basic', 'Token']
430
+
431
+ new_options = opts.merge(
432
+ :header_params => header_params,
433
+ :query_params => query_params,
434
+ :form_params => form_params,
435
+ :body => post_body,
436
+ :auth_names => auth_names,
437
+ :return_type => return_type
438
+ )
439
+
440
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
441
+ if @api_client.config.debugging
442
+ @api_client.config.logger.debug "API called: WebhooksApi#webhooks_list\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
443
+ end
444
+ response = ::Phrase::Response.new(data, headers)
445
+ return response, status_code, headers
446
+ end
447
+ end
448
+ end
@@ -0,0 +1,376 @@
1
+ require 'date'
2
+ require 'json'
3
+ require 'logger'
4
+ require 'tempfile'
5
+ require 'typhoeus'
6
+
7
+ module Phrase
8
+ class ApiClient
9
+ # The Configuration object holding settings to be used in the API client.
10
+ attr_accessor :config
11
+
12
+ # Defines the headers to be used in HTTP requests of all API calls by default.
13
+ #
14
+ # @return [Hash]
15
+ attr_accessor :default_headers
16
+
17
+ # Initializes the ApiClient
18
+ # @option config [Configuration] Configuration for initializing the object, default to Configuration.default
19
+ def initialize(config = Configuration.default)
20
+ @config = config
21
+ @user_agent = "OpenAPI-Generator/#{VERSION}/ruby"
22
+ @default_headers = {
23
+ 'Content-Type' => 'application/json',
24
+ 'User-Agent' => @user_agent
25
+ }
26
+ end
27
+
28
+ def self.default
29
+ @@default ||= ApiClient.new
30
+ end
31
+
32
+ # Call an API with given options.
33
+ #
34
+ # @return [Array<(Object, Integer, Hash)>] an array of 3 elements:
35
+ # the data deserialized from response body (could be nil), response status code and response headers.
36
+ def call_api(http_method, path, opts = {})
37
+ request = build_request(http_method, path, opts)
38
+ response = request.run
39
+
40
+ if @config.debugging
41
+ @config.logger.debug "HTTP response body ~BEGIN~\n#{response.body}\n~END~\n"
42
+ end
43
+
44
+ unless response.success?
45
+ if response.timed_out?
46
+ fail ApiError.new('Connection timed out')
47
+ elsif response.code == 0
48
+ # Errors from libcurl will be made visible here
49
+ fail ApiError.new(:code => 0,
50
+ :message => response.return_message)
51
+ else
52
+ fail ApiError.new(:code => response.code,
53
+ :response_headers => response.headers,
54
+ :response_body => response.body),
55
+ response.status_message
56
+ end
57
+ end
58
+
59
+ if opts[:return_type]
60
+ data = deserialize(response, opts[:return_type])
61
+ else
62
+ data = nil
63
+ end
64
+ return data, response.code, response.headers
65
+ end
66
+
67
+ # Builds the HTTP request
68
+ #
69
+ # @param [String] http_method HTTP method/verb (e.g. POST)
70
+ # @param [String] path URL path (e.g. /account/new)
71
+ # @option opts [Hash] :header_params Header parameters
72
+ # @option opts [Hash] :query_params Query parameters
73
+ # @option opts [Hash] :form_params Query parameters
74
+ # @option opts [Object] :body HTTP body (JSON/XML)
75
+ # @return [Typhoeus::Request] A Typhoeus Request
76
+ def build_request(http_method, path, opts = {})
77
+ url = build_request_url(path)
78
+ http_method = http_method.to_sym.downcase
79
+
80
+ header_params = @default_headers.merge(opts[:header_params] || {})
81
+ query_params = opts[:query_params] || {}
82
+ form_params = opts[:form_params] || {}
83
+
84
+ update_params_for_auth! header_params, query_params, opts[:auth_names]
85
+
86
+ # set ssl_verifyhosts option based on @config.verify_ssl_host (true/false)
87
+ _verify_ssl_host = @config.verify_ssl_host ? 2 : 0
88
+
89
+ req_opts = {
90
+ :method => http_method,
91
+ :headers => header_params,
92
+ :params => query_params,
93
+ :params_encoding => @config.params_encoding,
94
+ :timeout => @config.timeout,
95
+ :ssl_verifypeer => @config.verify_ssl,
96
+ :ssl_verifyhost => _verify_ssl_host,
97
+ :sslcert => @config.cert_file,
98
+ :sslkey => @config.key_file,
99
+ :verbose => @config.debugging
100
+ }
101
+
102
+ # set custom cert, if provided
103
+ req_opts[:cainfo] = @config.ssl_ca_cert if @config.ssl_ca_cert
104
+
105
+ if [:post, :patch, :put, :delete].include?(http_method)
106
+ req_body = build_request_body(header_params, form_params, opts[:body])
107
+ req_opts.update :body => req_body
108
+ if @config.debugging
109
+ @config.logger.debug "HTTP request body param ~BEGIN~\n#{req_body}\n~END~\n"
110
+ end
111
+ end
112
+
113
+ request = Typhoeus::Request.new(url, req_opts)
114
+ download_file(request) if opts[:return_type] == 'File'
115
+ request
116
+ end
117
+
118
+ # Builds the HTTP request body
119
+ #
120
+ # @param [Hash] header_params Header parameters
121
+ # @param [Hash] form_params Query parameters
122
+ # @param [Object] body HTTP body (JSON/XML)
123
+ # @return [String] HTTP body data in the form of string
124
+ def build_request_body(header_params, form_params, body)
125
+ # http form
126
+ if header_params['Content-Type'] == 'application/x-www-form-urlencoded' ||
127
+ header_params['Content-Type'] == 'multipart/form-data'
128
+ data = {}
129
+ form_params.each do |key, value|
130
+ case value
131
+ when ::File, ::Array, nil
132
+ # let typhoeus handle File, Array and nil parameters
133
+ data[key] = value
134
+ else
135
+ data[key] = value.to_s
136
+ end
137
+ end
138
+ elsif body
139
+ data = body.is_a?(String) ? body : body.to_json
140
+ else
141
+ data = nil
142
+ end
143
+ data
144
+ end
145
+
146
+ # Check if the given MIME is a JSON MIME.
147
+ # JSON MIME examples:
148
+ # application/json
149
+ # application/json; charset=UTF8
150
+ # APPLICATION/JSON
151
+ # */*
152
+ # @param [String] mime MIME
153
+ # @return [Boolean] True if the MIME is application/json
154
+ def json_mime?(mime)
155
+ (mime == '*/*') || !(mime =~ /Application\/.*json(?!p)(;.*)?/i).nil?
156
+ end
157
+
158
+ # Deserialize the response to the given return type.
159
+ #
160
+ # @param [Response] response HTTP response
161
+ # @param [String] return_type some examples: "User", "Array<User>", "Hash<String, Integer>"
162
+ def deserialize(response, return_type)
163
+ body = response.body
164
+
165
+ # handle file downloading - return the File instance processed in request callbacks
166
+ # note that response body is empty when the file is written in chunks in request on_body callback
167
+ return @tempfile if return_type == 'File'
168
+
169
+ return nil if body.nil? || body.empty?
170
+
171
+ # return response body directly for String return type
172
+ return body if return_type == 'String'
173
+
174
+ # ensuring a default content type
175
+ content_type = response.headers['Content-Type'] || 'application/json'
176
+
177
+ fail "Content-Type is not supported: #{content_type}" unless json_mime?(content_type)
178
+
179
+ begin
180
+ data = JSON.parse("[#{body}]", :symbolize_names => true)[0]
181
+ rescue JSON::ParserError => e
182
+ if %w(String Date DateTime).include?(return_type)
183
+ data = body
184
+ else
185
+ raise e
186
+ end
187
+ end
188
+
189
+ convert_to_type data, return_type
190
+ end
191
+
192
+ # Convert data to the given return type.
193
+ # @param [Object] data Data to be converted
194
+ # @param [String] return_type Return type
195
+ # @return [Mixed] Data in a particular type
196
+ def convert_to_type(data, return_type)
197
+ return nil if data.nil?
198
+ case return_type
199
+ when 'String'
200
+ data.to_s
201
+ when 'Integer'
202
+ data.to_i
203
+ when 'Float'
204
+ data.to_f
205
+ when 'Boolean'
206
+ data == true
207
+ when 'DateTime'
208
+ # parse date time (expecting ISO 8601 format)
209
+ DateTime.parse data
210
+ when 'Date'
211
+ # parse date time (expecting ISO 8601 format)
212
+ Date.parse data
213
+ when 'Object'
214
+ # generic object (usually a Hash), return directly
215
+ data
216
+ when /\AArray<(.+)>\z/
217
+ # e.g. Array<Pet>
218
+ sub_type = $1
219
+ data.map { |item| convert_to_type(item, sub_type) }
220
+ when /\AHash\<String, (.+)\>\z/
221
+ # e.g. Hash<String, Integer>
222
+ sub_type = $1
223
+ {}.tap do |hash|
224
+ data.each { |k, v| hash[k] = convert_to_type(v, sub_type) }
225
+ end
226
+ else
227
+ # models, e.g. Pet
228
+ Phrase.const_get(return_type).build_from_hash(data)
229
+ end
230
+ end
231
+
232
+ # Save response body into a file in (the defined) temporary folder, using the filename
233
+ # from the "Content-Disposition" header if provided, otherwise a random filename.
234
+ # The response body is written to the file in chunks in order to handle files which
235
+ # size is larger than maximum Ruby String or even larger than the maximum memory a Ruby
236
+ # process can use.
237
+ #
238
+ # @see Configuration#temp_folder_path
239
+ def download_file(request)
240
+ tempfile = nil
241
+ encoding = nil
242
+ request.on_headers do |response|
243
+ content_disposition = response.headers['Content-Disposition']
244
+ if content_disposition && content_disposition =~ /filename=/i
245
+ filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
246
+ prefix = sanitize_filename(filename)
247
+ else
248
+ prefix = 'download-'
249
+ end
250
+ prefix = prefix + '-' unless prefix.end_with?('-')
251
+ encoding = response.body.encoding
252
+ tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
253
+ @tempfile = tempfile
254
+ end
255
+ request.on_body do |chunk|
256
+ chunk.force_encoding(encoding)
257
+ tempfile.write(chunk)
258
+ end
259
+ request.on_complete do |response|
260
+ if tempfile
261
+ tempfile.close
262
+ @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
263
+ "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
264
+ "will be deleted automatically with GC. It's also recommended to delete the temp file "\
265
+ "explicitly with `tempfile.delete`"
266
+ end
267
+ end
268
+ end
269
+
270
+ # Sanitize filename by removing path.
271
+ # e.g. ../../sun.gif becomes sun.gif
272
+ #
273
+ # @param [String] filename the filename to be sanitized
274
+ # @return [String] the sanitized filename
275
+ def sanitize_filename(filename)
276
+ filename.gsub(/.*[\/\\]/, '')
277
+ end
278
+
279
+ def build_request_url(path)
280
+ # Add leading and trailing slashes to path
281
+ path = "/#{path}".gsub(/\/+/, '/')
282
+ @config.base_url + path
283
+ end
284
+
285
+ # Update hearder and query params based on authentication settings.
286
+ #
287
+ # @param [Hash] header_params Header parameters
288
+ # @param [Hash] query_params Query parameters
289
+ # @param [String] auth_names Authentication scheme name
290
+ def update_params_for_auth!(header_params, query_params, auth_names)
291
+ Array(auth_names).each do |auth_name|
292
+ auth_setting = @config.auth_settings[auth_name]
293
+ next unless auth_setting
294
+ case auth_setting[:in]
295
+ when 'header' then header_params[auth_setting[:key]] = auth_setting[:value]
296
+ when 'query' then query_params[auth_setting[:key]] = auth_setting[:value]
297
+ else fail ArgumentError, 'Authentication token must be in `query` of `header`'
298
+ end
299
+ end
300
+ end
301
+
302
+ # Sets user agent in HTTP header
303
+ #
304
+ # @param [String] user_agent User agent (e.g. openapi-generator/ruby/1.0.0)
305
+ def user_agent=(user_agent)
306
+ @user_agent = user_agent
307
+ @default_headers['User-Agent'] = @user_agent
308
+ end
309
+
310
+ # Return Accept header based on an array of accepts provided.
311
+ # @param [Array] accepts array for Accept
312
+ # @return [String] the Accept header (e.g. application/json)
313
+ def select_header_accept(accepts)
314
+ return nil if accepts.nil? || accepts.empty?
315
+ # use JSON when present, otherwise use all of the provided
316
+ json_accept = accepts.find { |s| json_mime?(s) }
317
+ json_accept || accepts.join(',')
318
+ end
319
+
320
+ # Return Content-Type header based on an array of content types provided.
321
+ # @param [Array] content_types array for Content-Type
322
+ # @return [String] the Content-Type header (e.g. application/json)
323
+ def select_header_content_type(content_types)
324
+ # use application/json by default
325
+ return 'application/json' if content_types.nil? || content_types.empty?
326
+ # use JSON when present, otherwise use the first one
327
+ json_content_type = content_types.find { |s| json_mime?(s) }
328
+ json_content_type || content_types.first
329
+ end
330
+
331
+ # Convert object (array, hash, object, etc) to JSON string.
332
+ # @param [Object] model object to be converted into JSON string
333
+ # @return [String] JSON string representation of the object
334
+ def object_to_http_body(model)
335
+ return model if model.nil? || model.is_a?(String)
336
+ local_body = nil
337
+ if model.is_a?(Array)
338
+ local_body = model.map { |m| object_to_hash(m) }
339
+ else
340
+ local_body = object_to_hash(model)
341
+ end
342
+ local_body.to_json
343
+ end
344
+
345
+ # Convert object(non-array) to hash.
346
+ # @param [Object] obj object to be converted into JSON string
347
+ # @return [String] JSON string representation of the object
348
+ def object_to_hash(obj)
349
+ if obj.respond_to?(:to_hash)
350
+ obj.to_hash
351
+ else
352
+ obj
353
+ end
354
+ end
355
+
356
+ # Build parameter value according to the given collection format.
357
+ # @param [String] collection_format one of :csv, :ssv, :tsv, :pipes and :multi
358
+ def build_collection_param(param, collection_format)
359
+ case collection_format
360
+ when :csv
361
+ param.join(',')
362
+ when :ssv
363
+ param.join(' ')
364
+ when :tsv
365
+ param.join("\t")
366
+ when :pipes
367
+ param.join('|')
368
+ when :multi
369
+ # return the array directly as typhoeus will handle it as expected
370
+ param
371
+ else
372
+ fail "unknown collection format: #{collection_format.inspect}"
373
+ end
374
+ end
375
+ end
376
+ end