dropbox-sign 1.4.1 → 1.6.0

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 (292) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +26 -24
  3. data/README.md +25 -4
  4. data/VERSION +1 -1
  5. data/docs/AccountCreateResponse.md +1 -1
  6. data/docs/AccountGetResponse.md +1 -1
  7. data/docs/AccountResponse.md +1 -0
  8. data/docs/AccountResponseQuotas.md +1 -0
  9. data/docs/AccountResponseUsage.md +10 -0
  10. data/docs/ApiAppGetResponse.md +1 -1
  11. data/docs/ApiAppListResponse.md +2 -2
  12. data/docs/BulkSendJobGetResponse.md +3 -3
  13. data/docs/BulkSendJobListResponse.md +2 -2
  14. data/docs/BulkSendJobSendResponse.md +1 -1
  15. data/docs/EmbeddedEditUrlResponse.md +1 -1
  16. data/docs/EmbeddedSignUrlResponse.md +1 -1
  17. data/docs/FaxLineAddUserRequest.md +12 -0
  18. data/docs/FaxLineApi.md +503 -0
  19. data/docs/FaxLineAreaCodeGetCountryEnum.md +9 -0
  20. data/docs/FaxLineAreaCodeGetProvinceEnum.md +9 -0
  21. data/docs/FaxLineAreaCodeGetResponse.md +10 -0
  22. data/docs/FaxLineAreaCodeGetStateEnum.md +9 -0
  23. data/docs/FaxLineCreateRequest.md +13 -0
  24. data/docs/FaxLineDeleteRequest.md +10 -0
  25. data/docs/FaxLineListResponse.md +12 -0
  26. data/docs/FaxLineRemoveUserRequest.md +12 -0
  27. data/docs/FaxLineResponse.md +11 -0
  28. data/docs/FaxLineResponseFaxLine.md +13 -0
  29. data/docs/FileResponse.md +2 -2
  30. data/docs/FileResponseDataUri.md +1 -1
  31. data/docs/ReportCreateResponse.md +1 -1
  32. data/docs/SignatureRequestGetResponse.md +1 -1
  33. data/docs/SignatureRequestListResponse.md +2 -2
  34. data/docs/TeamGetInfoResponse.md +1 -1
  35. data/docs/TeamGetResponse.md +1 -1
  36. data/docs/TeamInvitesResponse.md +1 -1
  37. data/docs/TeamMembersResponse.md +2 -2
  38. data/docs/TeamSubTeamsResponse.md +2 -2
  39. data/docs/TemplateCreateEmbeddedDraftResponse.md +1 -1
  40. data/docs/TemplateCreateResponse.md +1 -1
  41. data/docs/TemplateEditResponse.md +1 -1
  42. data/docs/TemplateGetResponse.md +1 -1
  43. data/docs/TemplateListResponse.md +2 -2
  44. data/docs/TemplateUpdateFilesResponse.md +1 -1
  45. data/docs/UnclaimedDraftCreateResponse.md +1 -1
  46. data/dropbox-sign.gemspec +2 -1
  47. data/examples/FaxLineAddUser.rb +19 -0
  48. data/examples/FaxLineAreaCodeGet.rb +15 -0
  49. data/examples/FaxLineCreate.rb +19 -0
  50. data/examples/FaxLineDelete.rb +17 -0
  51. data/examples/FaxLineGet.rb +15 -0
  52. data/examples/FaxLineList.rb +15 -0
  53. data/examples/FaxLineRemoveUser.rb +19 -0
  54. data/lib/dropbox-sign/api/account_api.rb +5 -5
  55. data/lib/dropbox-sign/api/api_app_api.rb +8 -8
  56. data/lib/dropbox-sign/api/bulk_send_job_api.rb +7 -7
  57. data/lib/dropbox-sign/api/embedded_api.rb +3 -3
  58. data/lib/dropbox-sign/api/fax_line_api.rb +746 -0
  59. data/lib/dropbox-sign/api/o_auth_api.rb +3 -3
  60. data/lib/dropbox-sign/api/report_api.rb +2 -2
  61. data/lib/dropbox-sign/api/signature_request_api.rb +21 -21
  62. data/lib/dropbox-sign/api/team_api.rb +15 -15
  63. data/lib/dropbox-sign/api/template_api.rb +15 -15
  64. data/lib/dropbox-sign/api/unclaimed_draft_api.rb +5 -5
  65. data/lib/dropbox-sign/api_client.rb +27 -25
  66. data/lib/dropbox-sign/api_error.rb +6 -2
  67. data/lib/dropbox-sign/configuration.rb +39 -9
  68. data/lib/dropbox-sign/event_callback_helper.rb +1 -1
  69. data/lib/dropbox-sign/models/account_create_request.rb +12 -15
  70. data/lib/dropbox-sign/models/account_create_response.rb +17 -15
  71. data/lib/dropbox-sign/models/account_get_response.rb +17 -15
  72. data/lib/dropbox-sign/models/account_response.rb +27 -20
  73. data/lib/dropbox-sign/models/account_response_quotas.rb +29 -20
  74. data/lib/dropbox-sign/models/account_response_usage.rb +250 -0
  75. data/lib/dropbox-sign/models/account_update_request.rb +12 -15
  76. data/lib/dropbox-sign/models/account_verify_request.rb +12 -15
  77. data/lib/dropbox-sign/models/account_verify_response.rb +12 -15
  78. data/lib/dropbox-sign/models/account_verify_response_account.rb +12 -15
  79. data/lib/dropbox-sign/models/api_app_create_request.rb +12 -16
  80. data/lib/dropbox-sign/models/api_app_get_response.rb +17 -15
  81. data/lib/dropbox-sign/models/api_app_list_response.rb +22 -15
  82. data/lib/dropbox-sign/models/api_app_response.rb +12 -15
  83. data/lib/dropbox-sign/models/api_app_response_o_auth.rb +12 -15
  84. data/lib/dropbox-sign/models/api_app_response_options.rb +12 -15
  85. data/lib/dropbox-sign/models/api_app_response_owner_account.rb +12 -15
  86. data/lib/dropbox-sign/models/api_app_response_white_labeling_options.rb +12 -15
  87. data/lib/dropbox-sign/models/api_app_update_request.rb +13 -16
  88. data/lib/dropbox-sign/models/bulk_send_job_get_response.rb +27 -15
  89. data/lib/dropbox-sign/models/bulk_send_job_get_response_signature_requests.rb +12 -15
  90. data/lib/dropbox-sign/models/bulk_send_job_list_response.rb +22 -15
  91. data/lib/dropbox-sign/models/bulk_send_job_response.rb +12 -15
  92. data/lib/dropbox-sign/models/bulk_send_job_send_response.rb +17 -15
  93. data/lib/dropbox-sign/models/embedded_edit_url_request.rb +12 -15
  94. data/lib/dropbox-sign/models/embedded_edit_url_response.rb +17 -15
  95. data/lib/dropbox-sign/models/embedded_edit_url_response_embedded.rb +12 -15
  96. data/lib/dropbox-sign/models/embedded_sign_url_response.rb +17 -15
  97. data/lib/dropbox-sign/models/embedded_sign_url_response_embedded.rb +12 -15
  98. data/lib/dropbox-sign/models/error_response.rb +12 -15
  99. data/lib/dropbox-sign/models/error_response_error.rb +12 -15
  100. data/lib/dropbox-sign/models/event_callback_request.rb +12 -15
  101. data/lib/dropbox-sign/models/event_callback_request_event.rb +12 -15
  102. data/lib/dropbox-sign/models/event_callback_request_event_metadata.rb +12 -15
  103. data/lib/dropbox-sign/models/fax_line_add_user_request.rb +275 -0
  104. data/lib/dropbox-sign/models/fax_line_area_code_get_country_enum.rb +44 -0
  105. data/lib/dropbox-sign/models/fax_line_area_code_get_province_enum.rb +54 -0
  106. data/lib/dropbox-sign/models/fax_line_area_code_get_response.rb +254 -0
  107. data/lib/dropbox-sign/models/fax_line_area_code_get_state_enum.rb +92 -0
  108. data/lib/dropbox-sign/models/fax_line_create_request.rb +325 -0
  109. data/lib/dropbox-sign/models/fax_line_delete_request.rb +253 -0
  110. data/lib/dropbox-sign/models/fax_line_list_response.rb +279 -0
  111. data/lib/dropbox-sign/models/fax_line_remove_user_request.rb +275 -0
  112. data/lib/dropbox-sign/models/fax_line_response.rb +262 -0
  113. data/lib/dropbox-sign/models/fax_line_response_fax_line.rb +282 -0
  114. data/lib/dropbox-sign/models/file_response.rb +22 -15
  115. data/lib/dropbox-sign/models/file_response_data_uri.rb +17 -15
  116. data/lib/dropbox-sign/models/list_info_response.rb +12 -15
  117. data/lib/dropbox-sign/models/o_auth_token_generate_request.rb +12 -15
  118. data/lib/dropbox-sign/models/o_auth_token_refresh_request.rb +12 -15
  119. data/lib/dropbox-sign/models/o_auth_token_response.rb +12 -15
  120. data/lib/dropbox-sign/models/report_create_request.rb +12 -15
  121. data/lib/dropbox-sign/models/report_create_response.rb +17 -15
  122. data/lib/dropbox-sign/models/report_response.rb +12 -15
  123. data/lib/dropbox-sign/models/signature_request_bulk_create_embedded_with_template_request.rb +15 -18
  124. data/lib/dropbox-sign/models/signature_request_bulk_send_with_template_request.rb +15 -18
  125. data/lib/dropbox-sign/models/signature_request_create_embedded_request.rb +15 -18
  126. data/lib/dropbox-sign/models/signature_request_create_embedded_with_template_request.rb +15 -18
  127. data/lib/dropbox-sign/models/signature_request_get_response.rb +17 -15
  128. data/lib/dropbox-sign/models/signature_request_list_response.rb +22 -15
  129. data/lib/dropbox-sign/models/signature_request_remind_request.rb +12 -15
  130. data/lib/dropbox-sign/models/signature_request_response.rb +12 -15
  131. data/lib/dropbox-sign/models/signature_request_response_attachment.rb +13 -16
  132. data/lib/dropbox-sign/models/signature_request_response_custom_field_base.rb +12 -15
  133. data/lib/dropbox-sign/models/signature_request_response_custom_field_checkbox.rb +12 -15
  134. data/lib/dropbox-sign/models/signature_request_response_custom_field_text.rb +12 -15
  135. data/lib/dropbox-sign/models/signature_request_response_custom_field_type_enum.rb +7 -4
  136. data/lib/dropbox-sign/models/signature_request_response_data_base.rb +12 -15
  137. data/lib/dropbox-sign/models/signature_request_response_data_type_enum.rb +7 -4
  138. data/lib/dropbox-sign/models/signature_request_response_data_value_checkbox.rb +12 -15
  139. data/lib/dropbox-sign/models/signature_request_response_data_value_checkbox_merge.rb +12 -15
  140. data/lib/dropbox-sign/models/signature_request_response_data_value_date_signed.rb +12 -15
  141. data/lib/dropbox-sign/models/signature_request_response_data_value_dropdown.rb +12 -15
  142. data/lib/dropbox-sign/models/signature_request_response_data_value_initials.rb +12 -15
  143. data/lib/dropbox-sign/models/signature_request_response_data_value_radio.rb +12 -15
  144. data/lib/dropbox-sign/models/signature_request_response_data_value_signature.rb +12 -15
  145. data/lib/dropbox-sign/models/signature_request_response_data_value_text.rb +12 -15
  146. data/lib/dropbox-sign/models/signature_request_response_data_value_text_merge.rb +12 -15
  147. data/lib/dropbox-sign/models/signature_request_response_signatures.rb +12 -15
  148. data/lib/dropbox-sign/models/signature_request_send_request.rb +15 -18
  149. data/lib/dropbox-sign/models/signature_request_send_with_template_request.rb +16 -18
  150. data/lib/dropbox-sign/models/signature_request_update_request.rb +12 -15
  151. data/lib/dropbox-sign/models/sub_attachment.rb +12 -15
  152. data/lib/dropbox-sign/models/sub_bulk_signer_list.rb +12 -15
  153. data/lib/dropbox-sign/models/sub_bulk_signer_list_custom_field.rb +12 -15
  154. data/lib/dropbox-sign/models/sub_cc.rb +12 -15
  155. data/lib/dropbox-sign/models/sub_custom_field.rb +12 -15
  156. data/lib/dropbox-sign/models/sub_editor_options.rb +12 -15
  157. data/lib/dropbox-sign/models/sub_field_options.rb +12 -15
  158. data/lib/dropbox-sign/models/sub_form_field_group.rb +12 -15
  159. data/lib/dropbox-sign/models/sub_form_field_rule.rb +12 -17
  160. data/lib/dropbox-sign/models/sub_form_field_rule_action.rb +12 -15
  161. data/lib/dropbox-sign/models/sub_form_field_rule_trigger.rb +12 -15
  162. data/lib/dropbox-sign/models/sub_form_fields_per_document_base.rb +12 -15
  163. data/lib/dropbox-sign/models/sub_form_fields_per_document_checkbox.rb +12 -15
  164. data/lib/dropbox-sign/models/sub_form_fields_per_document_checkbox_merge.rb +12 -15
  165. data/lib/dropbox-sign/models/sub_form_fields_per_document_date_signed.rb +12 -15
  166. data/lib/dropbox-sign/models/sub_form_fields_per_document_dropdown.rb +12 -16
  167. data/lib/dropbox-sign/models/sub_form_fields_per_document_font_enum.rb +7 -4
  168. data/lib/dropbox-sign/models/sub_form_fields_per_document_hyperlink.rb +12 -15
  169. data/lib/dropbox-sign/models/sub_form_fields_per_document_initials.rb +12 -15
  170. data/lib/dropbox-sign/models/sub_form_fields_per_document_radio.rb +12 -15
  171. data/lib/dropbox-sign/models/sub_form_fields_per_document_signature.rb +12 -15
  172. data/lib/dropbox-sign/models/sub_form_fields_per_document_text.rb +12 -15
  173. data/lib/dropbox-sign/models/sub_form_fields_per_document_text_merge.rb +12 -15
  174. data/lib/dropbox-sign/models/sub_form_fields_per_document_type_enum.rb +7 -4
  175. data/lib/dropbox-sign/models/sub_merge_field.rb +12 -15
  176. data/lib/dropbox-sign/models/sub_o_auth.rb +12 -15
  177. data/lib/dropbox-sign/models/sub_options.rb +12 -15
  178. data/lib/dropbox-sign/models/sub_signature_request_grouped_signers.rb +12 -15
  179. data/lib/dropbox-sign/models/sub_signature_request_signer.rb +14 -17
  180. data/lib/dropbox-sign/models/sub_signature_request_template_signer.rb +14 -17
  181. data/lib/dropbox-sign/models/sub_signing_options.rb +12 -15
  182. data/lib/dropbox-sign/models/sub_team_response.rb +12 -15
  183. data/lib/dropbox-sign/models/sub_template_role.rb +12 -15
  184. data/lib/dropbox-sign/models/sub_unclaimed_draft_signer.rb +12 -15
  185. data/lib/dropbox-sign/models/sub_unclaimed_draft_template_signer.rb +12 -15
  186. data/lib/dropbox-sign/models/sub_white_labeling_options.rb +12 -15
  187. data/lib/dropbox-sign/models/team_add_member_request.rb +12 -15
  188. data/lib/dropbox-sign/models/team_create_request.rb +12 -15
  189. data/lib/dropbox-sign/models/team_get_info_response.rb +17 -15
  190. data/lib/dropbox-sign/models/team_get_response.rb +17 -15
  191. data/lib/dropbox-sign/models/team_info_response.rb +12 -15
  192. data/lib/dropbox-sign/models/team_invite_response.rb +12 -15
  193. data/lib/dropbox-sign/models/team_invites_response.rb +17 -15
  194. data/lib/dropbox-sign/models/team_member_response.rb +12 -15
  195. data/lib/dropbox-sign/models/team_members_response.rb +22 -15
  196. data/lib/dropbox-sign/models/team_parent_response.rb +12 -15
  197. data/lib/dropbox-sign/models/team_remove_member_request.rb +12 -15
  198. data/lib/dropbox-sign/models/team_response.rb +12 -15
  199. data/lib/dropbox-sign/models/team_sub_teams_response.rb +22 -15
  200. data/lib/dropbox-sign/models/team_update_request.rb +12 -15
  201. data/lib/dropbox-sign/models/template_add_user_request.rb +12 -15
  202. data/lib/dropbox-sign/models/template_create_embedded_draft_request.rb +14 -17
  203. data/lib/dropbox-sign/models/template_create_embedded_draft_response.rb +17 -15
  204. data/lib/dropbox-sign/models/template_create_embedded_draft_response_template.rb +12 -15
  205. data/lib/dropbox-sign/models/template_create_request.rb +14 -17
  206. data/lib/dropbox-sign/models/template_create_response.rb +17 -15
  207. data/lib/dropbox-sign/models/template_create_response_template.rb +12 -15
  208. data/lib/dropbox-sign/models/template_edit_response.rb +17 -15
  209. data/lib/dropbox-sign/models/template_get_response.rb +17 -15
  210. data/lib/dropbox-sign/models/template_list_response.rb +22 -15
  211. data/lib/dropbox-sign/models/template_remove_user_request.rb +12 -15
  212. data/lib/dropbox-sign/models/template_response.rb +12 -15
  213. data/lib/dropbox-sign/models/template_response_account.rb +12 -15
  214. data/lib/dropbox-sign/models/template_response_account_quota.rb +12 -15
  215. data/lib/dropbox-sign/models/template_response_cc_role.rb +12 -15
  216. data/lib/dropbox-sign/models/template_response_document.rb +12 -15
  217. data/lib/dropbox-sign/models/template_response_document_custom_field_base.rb +13 -16
  218. data/lib/dropbox-sign/models/template_response_document_custom_field_checkbox.rb +12 -15
  219. data/lib/dropbox-sign/models/template_response_document_custom_field_text.rb +12 -15
  220. data/lib/dropbox-sign/models/template_response_document_field_group.rb +12 -15
  221. data/lib/dropbox-sign/models/template_response_document_field_group_rule.rb +12 -15
  222. data/lib/dropbox-sign/models/template_response_document_form_field_base.rb +13 -16
  223. data/lib/dropbox-sign/models/template_response_document_form_field_checkbox.rb +12 -15
  224. data/lib/dropbox-sign/models/template_response_document_form_field_date_signed.rb +12 -15
  225. data/lib/dropbox-sign/models/template_response_document_form_field_dropdown.rb +12 -15
  226. data/lib/dropbox-sign/models/template_response_document_form_field_hyperlink.rb +12 -15
  227. data/lib/dropbox-sign/models/template_response_document_form_field_initials.rb +12 -15
  228. data/lib/dropbox-sign/models/template_response_document_form_field_radio.rb +12 -15
  229. data/lib/dropbox-sign/models/template_response_document_form_field_signature.rb +12 -15
  230. data/lib/dropbox-sign/models/template_response_document_form_field_text.rb +12 -15
  231. data/lib/dropbox-sign/models/template_response_document_static_field_base.rb +12 -15
  232. data/lib/dropbox-sign/models/template_response_document_static_field_checkbox.rb +12 -15
  233. data/lib/dropbox-sign/models/template_response_document_static_field_date_signed.rb +12 -15
  234. data/lib/dropbox-sign/models/template_response_document_static_field_dropdown.rb +12 -15
  235. data/lib/dropbox-sign/models/template_response_document_static_field_hyperlink.rb +12 -15
  236. data/lib/dropbox-sign/models/template_response_document_static_field_initials.rb +12 -15
  237. data/lib/dropbox-sign/models/template_response_document_static_field_radio.rb +12 -15
  238. data/lib/dropbox-sign/models/template_response_document_static_field_signature.rb +12 -15
  239. data/lib/dropbox-sign/models/template_response_document_static_field_text.rb +12 -15
  240. data/lib/dropbox-sign/models/template_response_field_avg_text_length.rb +12 -15
  241. data/lib/dropbox-sign/models/template_response_signer_role.rb +12 -15
  242. data/lib/dropbox-sign/models/template_update_files_request.rb +14 -17
  243. data/lib/dropbox-sign/models/template_update_files_response.rb +17 -15
  244. data/lib/dropbox-sign/models/template_update_files_response_template.rb +12 -15
  245. data/lib/dropbox-sign/models/unclaimed_draft_create_embedded_request.rb +15 -17
  246. data/lib/dropbox-sign/models/unclaimed_draft_create_embedded_with_template_request.rb +15 -18
  247. data/lib/dropbox-sign/models/unclaimed_draft_create_request.rb +15 -17
  248. data/lib/dropbox-sign/models/unclaimed_draft_create_response.rb +17 -15
  249. data/lib/dropbox-sign/models/unclaimed_draft_edit_and_resend_request.rb +12 -15
  250. data/lib/dropbox-sign/models/unclaimed_draft_response.rb +12 -15
  251. data/lib/dropbox-sign/models/warning_response.rb +12 -15
  252. data/lib/dropbox-sign/version.rb +2 -2
  253. data/lib/dropbox-sign.rb +14 -1
  254. data/openapi-config.yaml +2 -1
  255. data/openapi-sdk.yaml +1164 -69
  256. data/run-build +2 -2
  257. data/spec/api_client_spec.rb +3 -1
  258. data/spec/configuration_spec.rb +1 -1
  259. data/spec/spec_helper.rb +1 -1
  260. data/templates/Gemfile.mustache +2 -0
  261. data/templates/README.mustache +91 -2
  262. data/templates/api.mustache +86 -14
  263. data/templates/api_client.mustache +23 -36
  264. data/templates/api_client_faraday_partial.mustache +108 -44
  265. data/templates/api_client_httpx_partial.mustache +134 -0
  266. data/templates/api_client_typhoeus_partial.mustache +23 -15
  267. data/templates/api_doc.mustache +88 -1
  268. data/templates/api_error.mustache +11 -0
  269. data/templates/api_info.mustache +1 -1
  270. data/templates/api_test.mustache +1 -1
  271. data/templates/base_object.mustache +75 -4
  272. data/templates/configuration.mustache +196 -33
  273. data/templates/{configuration_tls_faraday_partial.mustache → configuration_faraday_partial.mustache} +11 -0
  274. data/templates/configuration_httpx_partial.mustache +11 -0
  275. data/templates/{configuration_tls_typhoeus_partial.mustache → configuration_typhoeus_partial.mustache} +7 -0
  276. data/templates/gem.mustache +16 -0
  277. data/templates/gemspec.mustache +10 -4
  278. data/templates/gitignore.mustache +3 -1
  279. data/templates/gitlab-ci.mustache +26 -0
  280. data/templates/model.mustache +16 -0
  281. data/templates/model_test.mustache +8 -3
  282. data/templates/partial_anyof_module.mustache +96 -0
  283. data/templates/partial_model_enum_class.mustache +6 -3
  284. data/templates/partial_model_generic.mustache +77 -28
  285. data/templates/partial_model_generic_doc.mustache +28 -0
  286. data/templates/partial_oneof_module.mustache +4 -4
  287. data/templates/partial_oneof_module_doc.mustache +1 -0
  288. data/templates/travis.mustache +1 -4
  289. data/templates/version.mustache +2 -0
  290. metadata +46 -11
  291. data/templates/api_client_spec.mustache +0 -220
  292. data/templates/configuration_spec.mustache +0 -32
@@ -3,50 +3,38 @@
3
3
  # @return [Array<(Object, Integer, Hash)>] an array of 3 elements:
4
4
  # the data deserialized from response body (could be nil), response status code and response headers.
5
5
  def call_api(http_method, path, opts = {})
6
- ssl_options = {
7
- :ca_file => @config.ssl_ca_file,
8
- :verify => @config.ssl_verify,
9
- :verify_mode => @config.ssl_verify_mode,
10
- :client_cert => @config.ssl_client_cert,
11
- :client_key => @config.ssl_client_key
12
- }
13
-
14
- connection = Faraday.new(:url => config.base_url, :ssl => ssl_options) do |conn|
15
- conn.request(:basic_auth, config.username, config.password)
16
- @config.configure_middleware(conn)
17
- if opts[:header_params]["Content-Type"] == "multipart/form-data"
18
- conn.request :multipart
19
- conn.request :url_encoded
20
- end
21
- conn.adapter(Faraday.default_adapter)
22
- end
23
-
6
+ stream = nil
24
7
  begin
25
- response = connection.public_send(http_method.to_sym.downcase) do |req|
26
- build_request(http_method, path, req, opts)
8
+ response = connection(opts).public_send(http_method.to_sym.downcase) do |req|
9
+ request = build_request(http_method, path, req, opts)
10
+ stream = download_file(request) if opts[:return_type] == 'File' || opts[:return_type] == 'Binary'
27
11
  end
28
12
 
29
- if @config.debugging
30
- @config.logger.debug "HTTP response body ~BEGIN~\n#{response.body}\n~END~\n"
13
+ if config.debugging
14
+ config.logger.debug "HTTP response body ~BEGIN~\n#{response.body}\n~END~\n"
31
15
  end
32
16
 
33
17
  unless response.success?
34
- if response.status == 0
18
+ if response.status == 0 && response.respond_to?(:return_message)
35
19
  # Errors from libcurl will be made visible here
36
- fail ApiError.new(:code => 0,
37
- :message => response.return_message)
20
+ fail ApiError.new(code: 0,
21
+ message: response.return_message)
38
22
  else
39
- fail ApiError.new(:code => response.status,
40
- :response_headers => response.headers,
41
- :response_body => response.body),
23
+ fail ApiError.new(code: response.status,
24
+ response_headers: response.headers,
25
+ response_body: response.body),
42
26
  response.reason_phrase
43
27
  end
44
28
  end
45
29
  rescue Faraday::TimeoutError
46
30
  fail ApiError.new('Connection timed out')
31
+ rescue Faraday::ConnectionFailed
32
+ fail ApiError.new('Connection failed')
47
33
  end
48
34
 
49
- if opts[:return_type]
35
+ if opts[:return_type] == 'File' || opts[:return_type] == 'Binary'
36
+ data = deserialize_file(response, stream)
37
+ elsif opts[:return_type]
50
38
  data = deserialize(response, opts[:return_type])
51
39
  else
52
40
  data = nil
@@ -62,7 +50,7 @@
62
50
  # @option opts [Hash] :query_params Query parameters
63
51
  # @option opts [Hash] :form_params Query parameters
64
52
  # @option opts [Object] :body HTTP body (JSON/XML)
65
- # @return [Typhoeus::Request] A Typhoeus Request
53
+ # @return [Faraday::Request] A Faraday Request
66
54
  def build_request(http_method, path, request, opts = {})
67
55
  url = build_request_url(path, opts)
68
56
  http_method = http_method.to_sym.downcase
@@ -73,24 +61,21 @@
73
61
 
74
62
  update_params_for_auth! header_params, query_params, opts[:auth_names]
75
63
 
76
- req_opts = {
77
- :params_encoding => @config.params_encoding,
78
- :timeout => @config.timeout,
79
- :verbose => @config.debugging
80
- }
81
-
82
64
  if [:post, :patch, :put, :delete].include?(http_method)
83
65
  req_body = build_request_body(header_params, form_params, opts[:body])
84
- if @config.debugging
85
- @config.logger.debug "HTTP request body param ~BEGIN~\n#{req_body}\n~END~\n"
66
+ if config.debugging
67
+ config.logger.debug "HTTP request body param ~BEGIN~\n#{req_body}\n~END~\n"
86
68
  end
87
69
  end
88
70
  request.headers = header_params
89
71
  request.body = req_body
90
- request.options = OpenStruct.new(req_opts)
72
+
73
+ # Overload default options only if provided
74
+ request.options.params_encoder = config.params_encoder if config.params_encoder
75
+ request.options.timeout = config.timeout if config.timeout
76
+
91
77
  request.url url
92
78
  request.params = query_params
93
- download_file(request) if opts[:return_type] == 'File'
94
79
  request
95
80
  end
96
81
 
@@ -109,8 +94,7 @@
109
94
  form_params.each do |key, value|
110
95
  case value
111
96
  when ::File, ::Tempfile
112
- # TODO hardcode to application/octet-stream, need better way to detect content type
113
- data[key] = Faraday::UploadIO.new(value.path, 'application/octet-stream', value.path)
97
+ data[key] = Faraday::FilePart.new(value.path, Marcel::MimeType.for(Pathname.new(value.path)))
114
98
  when ::Array, nil
115
99
  # let Faraday handle Array and nil parameters
116
100
  data[key] = value
@@ -127,10 +111,90 @@
127
111
  end
128
112
 
129
113
  def download_file(request)
130
- @stream = []
114
+ stream = []
131
115
 
132
116
  # handle streaming Responses
133
117
  request.options.on_data = Proc.new do |chunk, overall_received_bytes|
134
- @stream << chunk
118
+ stream << chunk
119
+ end
120
+
121
+ stream
122
+ end
123
+
124
+ def deserialize_file(response, stream)
125
+ body = response.body
126
+ encoding = body.encoding
127
+
128
+ # reconstruct content
129
+ content = stream.join
130
+ content = content.unpack('m').join if response.headers['Content-Transfer-Encoding'] == 'binary'
131
+ content = content.force_encoding(encoding)
132
+
133
+ # return byte stream
134
+ return content if @config.return_binary_data == true
135
+
136
+ # return file instead of binary data
137
+ content_disposition = response.headers['Content-Disposition']
138
+ if content_disposition && content_disposition =~ /filename=/i
139
+ filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
140
+ prefix = sanitize_filename(filename)
141
+ else
142
+ prefix = 'download-'
143
+ end
144
+ prefix = prefix + '-' unless prefix.end_with?('-')
145
+
146
+ tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
147
+ tempfile.write(content)
148
+ tempfile.close
149
+
150
+ config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
151
+ "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
152
+ "will be deleted automatically with GC. It's also recommended to delete the temp file "\
153
+ "explicitly with `tempfile.delete`"
154
+ tempfile
155
+ end
156
+
157
+ def connection(opts)
158
+ opts[:header_params]['Content-Type'] == 'multipart/form-data' ? connection_multipart : connection_regular
159
+ end
160
+
161
+ def connection_multipart
162
+ @connection_multipart ||= build_connection do |conn|
163
+ conn.request :multipart
164
+ conn.request :url_encoded
165
+ end
166
+ end
167
+
168
+ def connection_regular
169
+ @connection_regular ||= build_connection
170
+ end
171
+
172
+ def build_connection
173
+ Faraday.new(url: config.base_url, ssl: ssl_options, proxy: config.proxy) do |conn|
174
+ basic_auth(conn)
175
+ config.configure_middleware(conn)
176
+ yield(conn) if block_given?
177
+ conn.adapter(Faraday.default_adapter)
178
+ config.configure_connection(conn)
179
+ end
180
+ end
181
+
182
+ def ssl_options
183
+ {
184
+ ca_file: config.ssl_ca_file,
185
+ verify: config.ssl_verify,
186
+ verify_mode: config.ssl_verify_mode,
187
+ client_cert: config.ssl_client_cert,
188
+ client_key: config.ssl_client_key
189
+ }
190
+ end
191
+
192
+ def basic_auth(conn)
193
+ if config.username && config.password
194
+ if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0')
195
+ conn.request(:authorization, :basic, config.username, config.password)
196
+ else
197
+ conn.request(:basic_auth, config.username, config.password)
198
+ end
135
199
  end
136
200
  end
@@ -0,0 +1,134 @@
1
+ # Call an API with given options.
2
+ #
3
+ # @return [Array<(Object, Integer, Hash)>] an array of 3 elements:
4
+ # the data deserialized from response body (could be nil), response status code and response headers.
5
+ def call_api(http_method, path, opts = {})
6
+ begin
7
+ response = build_request(http_method.to_s, path, opts)
8
+
9
+ if config.debugging
10
+ config.logger.debug "HTTP response body ~BEGIN~\n#{response.body}\n~END~\n"
11
+ end
12
+
13
+ response.raise_for_status
14
+
15
+ rescue HTTPX::HTTPError
16
+ fail ApiError.new(code: response.status,
17
+ response_headers: response.headers.to_h,
18
+ response_body: response.body.to_s),
19
+ Net::HTTP::STATUS_CODES.fetch(response.status, "HTTP Error (#{response.status})")
20
+ rescue HTTPX::TimeoutError
21
+ fail ApiError.new('Connection timed out')
22
+ rescue HTTPX::ConnectionError, HTTPX::ResolveError
23
+ fail ApiError.new('Connection failed')
24
+ end
25
+
26
+ if opts[:return_type] == 'File'
27
+ data = deserialize_file(response)
28
+ elsif opts[:return_type]
29
+ data = deserialize(response, opts[:return_type])
30
+ else
31
+ data = nil
32
+ end
33
+ return data, response.status, response.headers.to_h
34
+ end
35
+
36
+ # Builds the HTTP request
37
+ #
38
+ # @param [String] http_method HTTP method/verb (e.g. POST)
39
+ # @param [String] path URL path (e.g. /account/new)
40
+ # @option opts [Hash] :header_params Header parameters
41
+ # @option opts [Hash] :query_params Query parameters
42
+ # @option opts [Hash] :form_params Query parameters
43
+ # @option opts [Object] :body HTTP body (JSON/XML)
44
+ # @return [HTTPX::Request] A Request object
45
+ def build_request(http_method, path, opts = {})
46
+ url = build_request_url(path, opts)
47
+
48
+ header_params = @default_headers.merge(opts[:header_params] || {})
49
+ query_params = opts[:query_params] || {}
50
+ form_params = opts[:form_params] || {}
51
+
52
+ update_params_for_auth! header_params, query_params, opts[:auth_names]
53
+
54
+ if %w[POST PATCH PUT DELETE].include?(http_method)
55
+ body_params = build_request_body(header_params, form_params, opts[:body])
56
+ if config.debugging
57
+ config.logger.debug "HTTP request body param ~BEGIN~\n#{req_body}\n~END~\n"
58
+ end
59
+ end
60
+ req_opts = {
61
+ :headers => HTTPX::Headers.new(header_params)
62
+ }
63
+ req_opts.merge!(body_params) if body_params
64
+ req_opts[:params] = query_params if query_params && !query_params.empty?
65
+ session.request(http_method, url, **req_opts)
66
+ end
67
+
68
+ # Builds the HTTP request body
69
+ #
70
+ # @param [Hash] header_params Header parameters
71
+ # @param [Hash] form_params Query parameters
72
+ # @param [Object] body HTTP body (JSON/XML)
73
+ # @return [Hash{Symbol => Object}] body options as HTTPX handles them
74
+ def build_request_body(header_params, form_params, body)
75
+ # http form
76
+ if header_params['Content-Type'] == 'application/x-www-form-urlencoded' ||
77
+ header_params['Content-Type'] == 'multipart/form-data'
78
+ header_params.delete('Content-Type') # httpx takes care of this
79
+ { form: form_params }
80
+ elsif body
81
+ body.is_a?(String) ? { body: body } : { json: body }
82
+ end
83
+ end
84
+
85
+ def deserialize_file(response)
86
+ body = response.body
87
+ if @config.return_binary_data == true
88
+ # TODO: force response encoding
89
+ body.to_s
90
+ else
91
+ content_disposition = response.headers['content-disposition']
92
+ if content_disposition && content_disposition =~ /filename=/i
93
+ filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
94
+ prefix = sanitize_filename(filename)
95
+ else
96
+ prefix = 'download-'
97
+ end
98
+ prefix = prefix + '-' unless prefix.end_with?('-')
99
+ encoding = response.body.encoding
100
+ tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
101
+ response.copy_to(tempfile)
102
+ tempfile.close
103
+ @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
104
+ "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
105
+ "will be deleted automatically with GC. It's also recommended to delete the temp file "\
106
+ "explicitly with `tempfile.delete`"
107
+
108
+ tempfile
109
+ end
110
+ end
111
+
112
+ def session
113
+ return @session if defined?(@session)
114
+
115
+ session = HTTPX.with(
116
+ ssl: @config.ssl,
117
+ timeout: ({ request_timeout: @config.timeout } if @config.timeout && @config.timeout.positive?),
118
+ origin: "#{@config.scheme}://#{@config.host}",
119
+ base_path: (@config.base_path.sub(/\/+\z/, '') if @config.base_path)
120
+ )
121
+
122
+ if @config.proxy
123
+ session = session.plugin(:proxy, proxy: @config.proxy)
124
+ end
125
+
126
+ if @config.username && @config.password
127
+ session = session.plugin(:basic_auth).basic_auth(@config.username, @config.password)
128
+ end
129
+
130
+ session = @config.configure(session)
131
+
132
+ @session = session
133
+
134
+ end
@@ -1,9 +1,10 @@
1
1
  # Call an API with given options.
2
2
  #
3
3
  # @return [Array<(Object, Integer, Hash)>] an array of 3 elements:
4
- # the data deserialized from response body (could be nil), response status code and response headers.
4
+ # the data deserialized from response body (may be a Tempfile or nil), response status code and response headers.
5
5
  def call_api(http_method, path, opts = {})
6
6
  request = build_request(http_method, path, opts)
7
+ tempfile = download_file(request) if opts[:return_type] == 'File'
7
8
  response = request.run
8
9
 
9
10
  if @config.debugging
@@ -25,7 +26,9 @@
25
26
  end
26
27
  end
27
28
 
28
- if opts[:return_type]
29
+ if opts[:return_type] == 'File'
30
+ data = tempfile
31
+ elsif opts[:return_type]
29
32
  data = deserialize(response, opts[:return_type])
30
33
  else
31
34
  data = nil
@@ -49,6 +52,7 @@
49
52
  header_params = @default_headers.merge(opts[:header_params] || {})
50
53
  query_params = opts[:query_params] || {}
51
54
  form_params = opts[:form_params] || {}
55
+ follow_location = opts[:follow_location] || true
52
56
 
53
57
  {{#hasAuthMethods}}
54
58
  update_params_for_auth! header_params, query_params, opts[:auth_names]
@@ -67,7 +71,8 @@
67
71
  :ssl_verifyhost => _verify_ssl_host,
68
72
  :sslcert => @config.cert_file,
69
73
  :sslkey => @config.key_file,
70
- :verbose => @config.debugging
74
+ :verbose => @config.debugging,
75
+ :followlocation => follow_location
71
76
  }
72
77
 
73
78
  # set custom cert, if provided
@@ -81,9 +86,7 @@
81
86
  end
82
87
  end
83
88
 
84
- request = Typhoeus::Request.new(url, req_opts)
85
- download_file(request) if opts[:return_type] == 'File'
86
- request
89
+ Typhoeus::Request.new(url, req_opts)
87
90
  end
88
91
 
89
92
  # Builds the HTTP request body
@@ -121,6 +124,8 @@
121
124
  # process can use.
122
125
  #
123
126
  # @see Configuration#temp_folder_path
127
+ #
128
+ # @return [Tempfile] the tempfile generated
124
129
  def download_file(request)
125
130
  tempfile = nil
126
131
  encoding = nil
@@ -135,19 +140,22 @@
135
140
  prefix = prefix + '-' unless prefix.end_with?('-')
136
141
  encoding = response.body.encoding
137
142
  tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
138
- @tempfile = tempfile
139
143
  end
140
144
  request.on_body do |chunk|
141
145
  chunk.force_encoding(encoding)
142
146
  tempfile.write(chunk)
143
147
  end
144
- request.on_complete do |response|
145
- if tempfile
146
- tempfile.close
147
- @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
148
- "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
149
- "will be deleted automatically with GC. It's also recommended to delete the temp file "\
150
- "explicitly with `tempfile.delete`"
151
- end
148
+ # run the request to ensure the tempfile is created successfully before returning it
149
+ request.run
150
+ if tempfile
151
+ tempfile.close
152
+ @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
153
+ "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
154
+ "will be deleted automatically with GC. It's also recommended to delete the temp file "\
155
+ "explicitly with `tempfile.delete`"
156
+ else
157
+ fail ApiError.new("Failed to create the tempfile based on the HTTP response from the server: #{request.inspect}")
152
158
  end
159
+
160
+ tempfile
153
161
  end
@@ -8,16 +8,28 @@ All URIs are relative to *{{basePath}}*
8
8
  | ------ | ------------ | ----------- |
9
9
  {{#operations}}
10
10
  {{#operation}}
11
+ {{^useCustomTemplateCode}}
12
+ | [**{{operationId}}**]({{classname}}.md#{{operationId}}) | **{{httpMethod}}** {{path}} | {{summary}} |
13
+ {{/useCustomTemplateCode}}
14
+ {{#useCustomTemplateCode}}
11
15
  | [`{{operationId}}`]({{classname}}.md#{{operationId}}) | **{{httpMethod}}** `{{path}}` | {{summary}} |
16
+ {{/useCustomTemplateCode}}
12
17
  {{/operation}}
13
18
  {{/operations}}
14
19
 
15
20
  {{#operations}}
16
21
  {{#operation}}
17
22
 
23
+ {{^useCustomTemplateCode}}
24
+ ## {{operationId}}
25
+
26
+ > {{#returnType}}{{#returnTypeIsPrimitive}}{{returnType}}{{/returnTypeIsPrimitive}}{{^returnTypeIsPrimitive}}<{{{returnType}}}>{{/returnTypeIsPrimitive}} {{/returnType}}{{operationId}}{{#hasParams}}({{^vendorExtensions.x-group-parameters}}{{#requiredParams}}{{{paramName}}}{{^-last}}, {{/-last}}{{/requiredParams}}{{#optionalParams}}{{#-last}}{{#hasRequiredParams}}, {{/hasRequiredParams}}opts{{/-last}}{{/optionalParams}}{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}opts{{/vendorExtensions.x-group-parameters}}){{/hasParams}}
27
+ {{/useCustomTemplateCode}}
28
+ {{#useCustomTemplateCode}}
18
29
  ## `{{operationId}}`
19
30
 
20
31
  > `{{#returnType}}{{#returnTypeIsPrimitive}}{{returnType}}{{/returnTypeIsPrimitive}}{{^returnTypeIsPrimitive}}<{{{returnType}}}>{{/returnTypeIsPrimitive}} {{/returnType}}{{operationId}}{{#hasParams}}({{#requiredParams}}{{{paramName}}}{{^-last}}, {{/-last}}{{/requiredParams}}{{#optionalParams}}{{#-last}}{{#hasRequiredParams}}, {{/hasRequiredParams}}opts{{/-last}}{{/optionalParams}}){{/hasParams}}`
32
+ {{/useCustomTemplateCode}}
21
33
 
22
34
  {{{summary}}}{{#notes}}
23
35
 
@@ -26,19 +38,89 @@ All URIs are relative to *{{basePath}}*
26
38
  ### Examples
27
39
 
28
40
  ```ruby
41
+ {{^useCustomTemplateCode}}
42
+ require 'time'
43
+ require '{{{gemName}}}'
44
+ {{#hasAuthMethods}}
45
+ # setup authorization
46
+ {{{moduleName}}}.configure do |config|{{#authMethods}}{{#isBasic}}{{#isBasicBasic}}
47
+ # Configure HTTP basic authorization: {{{name}}}
48
+ config.username = 'YOUR USERNAME'
49
+ config.password = 'YOUR PASSWORD'{{/isBasicBasic}}{{#isBasicBearer}}
50
+ # Configure Bearer authorization{{#bearerFormat}} ({{{.}}}){{/bearerFormat}}: {{{name}}}
51
+ config.access_token = 'YOUR_BEARER_TOKEN'{{/isBasicBearer}}{{/isBasic}}{{#isApiKey}}
52
+ # Configure API key authorization: {{{name}}}
53
+ config.api_key['{{{name}}}'] = 'YOUR API KEY'
54
+ # Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
55
+ # config.api_key_prefix['{{{name}}}'] = 'Bearer'{{/isApiKey}}{{#isOAuth}}
56
+ # Configure OAuth2 access token for authorization: {{{name}}}
57
+ config.access_token = 'YOUR ACCESS TOKEN'{{/isOAuth}}
58
+ {{/authMethods}}end
59
+ {{/hasAuthMethods}}
60
+
61
+ api_instance = {{{moduleName}}}::{{{classname}}}.new
62
+ {{^vendorExtensions.x-group-parameters}}
63
+ {{#requiredParams}}
64
+ {{{paramName}}} = {{{vendorExtensions.x-ruby-example}}} # {{{dataType}}} | {{{description}}}
65
+ {{/requiredParams}}
66
+ {{#optionalParams}}
67
+ {{#-first}}
68
+ opts = {
69
+ {{/-first}}
70
+ {{{paramName}}}: {{{vendorExtensions.x-ruby-example}}}{{^-last}},{{/-last}} # {{{dataType}}} | {{{description}}}
71
+ {{#-last}}
72
+ }
73
+ {{/-last}}
74
+ {{/optionalParams}}
75
+ {{/vendorExtensions.x-group-parameters}}
76
+ {{#vendorExtensions.x-group-parameters}}
77
+ {{#hasParams}}
78
+ opts = {
79
+ {{#requiredParams}}
80
+ {{{paramName}}}: {{{vendorExtensions.x-ruby-example}}}, # {{{dataType}}} | {{{description}}} (required)
81
+ {{/requiredParams}}
82
+ {{#optionalParams}}
83
+ {{{paramName}}}: {{{vendorExtensions.x-ruby-example}}}, # {{{dataType}}} | {{{description}}}
84
+ {{/optionalParams}}
85
+ }
86
+ {{/hasParams}}
87
+ {{/vendorExtensions.x-group-parameters}}
88
+
89
+ begin
90
+ {{#summary}}# {{{.}}}{{/summary}}
91
+ {{#returnType}}result = {{/returnType}}api_instance.{{{operationId}}}{{#hasParams}}({{^vendorExtensions.x-group-parameters}}{{#requiredParams}}{{{paramName}}}{{^-last}}, {{/-last}}{{/requiredParams}}{{#optionalParams}}{{#-last}}{{#hasRequiredParams}}, {{/hasRequiredParams}}opts{{/-last}}{{/optionalParams}}{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}opts{{/vendorExtensions.x-group-parameters}}){{/hasParams}}
92
+ {{#returnType}}
93
+ p result
94
+ {{/returnType}}
95
+ rescue {{{moduleName}}}::ApiError => e
96
+ puts "Error when calling {{classname}}->{{{operationId}}}: #{e}"
97
+ end
98
+ {{/useCustomTemplateCode}}
99
+ {{#useCustomTemplateCode}}
29
100
  REPLACE_ME_WITH_EXAMPLE_FOR__{{{operationId}}}_Ruby_CODE
101
+ {{/useCustomTemplateCode}}
30
102
  ```
31
103
 
104
+ {{^useCustomTemplateCode}}
105
+ #### Using the {{operationId}}_with_http_info variant
106
+ {{/useCustomTemplateCode}}
107
+ {{#useCustomTemplateCode}}
32
108
  #### Using the `{{operationId}}_with_http_info` variant
109
+ {{/useCustomTemplateCode}}
33
110
 
34
111
  This returns an Array which contains the response data{{^returnType}} (`nil` in this case){{/returnType}}, status code and headers.
35
112
 
113
+ {{^useCustomTemplateCode}}
114
+ > <Array({{#returnType}}{{#returnTypeIsPrimitive}}{{returnType}}{{/returnTypeIsPrimitive}}{{^returnTypeIsPrimitive}}<{{{returnType}}}>{{/returnTypeIsPrimitive}}{{/returnType}}{{^returnType}}nil{{/returnType}}, Integer, Hash)> {{operationId}}_with_http_info{{#hasParams}}({{^vendorExtensions.x-group-parameters}}{{#requiredParams}}{{{paramName}}}{{^-last}}, {{/-last}}{{/requiredParams}}{{#optionalParams}}{{#-last}}{{#hasRequiredParams}}, {{/hasRequiredParams}}opts{{/-last}}{{/optionalParams}}{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}opts{{/vendorExtensions.x-group-parameters}}){{/hasParams}}
115
+ {{/useCustomTemplateCode}}
116
+ {{#useCustomTemplateCode}}
36
117
  > `<Array({{#returnType}}{{#returnTypeIsPrimitive}}{{returnType}}{{/returnTypeIsPrimitive}}{{^returnTypeIsPrimitive}}<{{{returnType}}}>{{/returnTypeIsPrimitive}}{{/returnType}}{{^returnType}}nil{{/returnType}}, Integer, Hash)> {{operationId}}_with_http_info{{#hasParams}}({{#requiredParams}}{{{paramName}}}{{^-last}}, {{/-last}}{{/requiredParams}}{{#optionalParams}}{{#-last}}{{#hasRequiredParams}}, {{/hasRequiredParams}}opts{{/-last}}{{/optionalParams}}){{/hasParams}}`
118
+ {{/useCustomTemplateCode}}
37
119
 
38
120
  ```ruby
39
121
  begin
40
122
  {{#summary}}# {{{.}}}{{/summary}}
41
- data, status_code, headers = api_instance.{{{operationId}}}_with_http_info{{#hasParams}}({{#requiredParams}}{{{paramName}}}{{^-last}}, {{/-last}}{{/requiredParams}}{{#optionalParams}}{{#-last}}{{#hasRequiredParams}}, {{/hasRequiredParams}}opts{{/-last}}{{/optionalParams}}){{/hasParams}}
123
+ data, status_code, headers = api_instance.{{{operationId}}}_with_http_info{{#hasParams}}({{^vendorExtensions.x-group-parameters}}{{#requiredParams}}{{{paramName}}}{{^-last}}, {{/-last}}{{/requiredParams}}{{#optionalParams}}{{#-last}}{{#hasRequiredParams}}, {{/hasRequiredParams}}opts{{/-last}}{{/optionalParams}}{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}opts{{/vendorExtensions.x-group-parameters}}){{/hasParams}}
42
124
  p status_code # => 2xx
43
125
  p headers # => { ... }
44
126
  p data # => {{#returnType}}{{#returnTypeIsPrimitive}}{{returnType}}{{/returnTypeIsPrimitive}}{{^returnTypeIsPrimitive}}<{{{returnType}}}>{{/returnTypeIsPrimitive}}{{/returnType}}{{^returnType}}nil{{/returnType}}
@@ -57,7 +139,12 @@ This endpoint does not need any parameter.
57
139
  | Name | Type | Description | Notes |
58
140
  | ---- | ---- | ----------- | ----- |
59
141
  {{/-first}}
142
+ {{^useCustomTemplateCode}}
143
+ | **{{paramName}}** | {{#isPrimitiveType}}**{{dataType}}**{{/isPrimitiveType}}{{^isPrimitiveType}}{{#isFile}}**{{dataType}}**{{/isFile}}{{^isFile}}[**{{dataType}}**]({{baseType}}.md){{/isFile}}{{/isPrimitiveType}} | {{description}} | {{^required}}[optional]{{/required}}{{#defaultValue}}[default to {{.}}]{{/defaultValue}} |
144
+ {{/useCustomTemplateCode}}
145
+ {{#useCustomTemplateCode}}
60
146
  | `{{paramName}}` | {{#isPrimitiveType}}**{{dataType}}**{{/isPrimitiveType}}{{^isPrimitiveType}}{{#isFile}}**{{dataType}}**{{/isFile}}{{^isFile}}[**{{dataType}}**]({{baseType}}.md){{/isFile}}{{/isPrimitiveType}} | {{description}} | {{^required}}[optional]{{/required}}{{#defaultValue}}[default to {{.}}]{{/defaultValue}} |
147
+ {{/useCustomTemplateCode}}
61
148
  {{/allParams}}
62
149
 
63
150
  ### Return type
@@ -2,12 +2,22 @@
2
2
  {{> api_info}}
3
3
  =end
4
4
 
5
+ {{#useCustomTemplateCode}}
5
6
  module Dropbox
6
7
  end
7
8
 
9
+ {{/useCustomTemplateCode}}
8
10
  module {{moduleName}}
9
11
  class ApiError < StandardError
12
+ {{^useCustomTemplateCode}}
10
13
  attr_reader :code, :response_headers, :response_body
14
+ {{/useCustomTemplateCode}}
15
+ {{#useCustomTemplateCode}}
16
+ attr_reader :code, :response_headers
17
+
18
+ # @return [ErrorResponse]
19
+ attr_accessor :response_body
20
+ {{/useCustomTemplateCode}}
11
21
 
12
22
  # Usage examples:
13
23
  # ApiError.new
@@ -27,6 +37,7 @@ module {{moduleName}}
27
37
  end
28
38
  else
29
39
  super arg
40
+ @message = arg
30
41
  end
31
42
  end
32
43
 
@@ -9,4 +9,4 @@
9
9
  {{#version}}The version of the OpenAPI document: {{.}}{{/version}}
10
10
  {{#infoEmail}}Contact: {{{.}}}{{/infoEmail}}
11
11
  Generated by: https://openapi-generator.tech
12
- OpenAPI Generator version: {{{generatorVersion}}}
12
+ Generator version: {{{generatorVersion}}}
@@ -38,7 +38,7 @@ require 'json'
38
38
  {{/required}}{{/allParams}} # @return [{{{returnType}}}{{^returnType}}nil{{/returnType}}]
39
39
  describe '{{operationId}} test' do
40
40
  it 'should work' do
41
- # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
41
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
42
42
  end
43
43
  end
44
44