hubspot-api-client 16.1.1 → 16.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (190) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -1
  3. data/Gemfile +1 -0
  4. data/Gemfile.lock +3 -1
  5. data/lib/hubspot/codegen/automation/actions/models/action_function.rb +1 -0
  6. data/lib/hubspot/codegen/automation/actions/models/action_function_identifier.rb +1 -0
  7. data/lib/hubspot/codegen/automation/actions/models/action_labels.rb +1 -0
  8. data/lib/hubspot/codegen/automation/actions/models/action_revision.rb +1 -0
  9. data/lib/hubspot/codegen/automation/actions/models/callback_completion_batch_request.rb +1 -0
  10. data/lib/hubspot/codegen/automation/actions/models/callback_completion_request.rb +1 -0
  11. data/lib/hubspot/codegen/automation/actions/models/extension_action_definition.rb +1 -0
  12. data/lib/hubspot/codegen/automation/actions/models/extension_action_definition_input.rb +1 -0
  13. data/lib/hubspot/codegen/automation/actions/models/extension_action_definition_patch.rb +1 -0
  14. data/lib/hubspot/codegen/automation/actions/models/extension_action_definition_patch_input_field_dependencies_inner.rb +1 -0
  15. data/lib/hubspot/codegen/automation/actions/models/field_type_definition.rb +1 -0
  16. data/lib/hubspot/codegen/automation/actions/models/input_field_definition.rb +1 -0
  17. data/lib/hubspot/codegen/automation/actions/models/object_request_options.rb +1 -0
  18. data/lib/hubspot/codegen/automation/actions/models/option.rb +1 -0
  19. data/lib/hubspot/codegen/cms/blogs/authors/models/attach_to_lang_primary_request_v_next.rb +1 -0
  20. data/lib/hubspot/codegen/cms/blogs/authors/models/batch_input_blog_author.rb +1 -0
  21. data/lib/hubspot/codegen/cms/blogs/authors/models/batch_input_json_node.rb +1 -0
  22. data/lib/hubspot/codegen/cms/blogs/authors/models/batch_input_string.rb +1 -0
  23. data/lib/hubspot/codegen/cms/blogs/authors/models/batch_response_blog_author.rb +1 -0
  24. data/lib/hubspot/codegen/cms/blogs/authors/models/batch_response_blog_author_with_errors.rb +1 -0
  25. data/lib/hubspot/codegen/cms/blogs/authors/models/blog_author.rb +1 -0
  26. data/lib/hubspot/codegen/cms/blogs/authors/models/blog_author_clone_request_v_next.rb +1 -0
  27. data/lib/hubspot/codegen/cms/blogs/authors/models/collection_response_with_total_blog_author_forward_paging.rb +1 -0
  28. data/lib/hubspot/codegen/cms/blogs/authors/models/detach_from_lang_group_request_v_next.rb +1 -0
  29. data/lib/hubspot/codegen/cms/blogs/authors/models/forward_paging.rb +1 -0
  30. data/lib/hubspot/codegen/cms/blogs/authors/models/next_page.rb +1 -0
  31. data/lib/hubspot/codegen/cms/blogs/authors/models/set_new_language_primary_request_v_next.rb +1 -0
  32. data/lib/hubspot/codegen/cms/blogs/authors/models/standard_error.rb +1 -0
  33. data/lib/hubspot/codegen/cms/blogs/authors/models/update_languages_request_v_next.rb +1 -0
  34. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/attach_to_lang_primary_request_v_next.rb +1 -0
  35. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/batch_input_blog_post.rb +1 -0
  36. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/batch_input_json_node.rb +1 -0
  37. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/batch_input_string.rb +1 -0
  38. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/batch_response_blog_post.rb +1 -0
  39. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/batch_response_blog_post_with_errors.rb +1 -0
  40. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/blog_post.rb +1 -0
  41. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/blog_post_language_clone_request_v_next.rb +1 -0
  42. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/collection_response_with_total_blog_post_forward_paging.rb +1 -0
  43. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/collection_response_with_total_version_blog_post.rb +1 -0
  44. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/content_clone_request_v_next.rb +1 -0
  45. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/content_schedule_request_v_next.rb +1 -0
  46. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/detach_from_lang_group_request_v_next.rb +1 -0
  47. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/forward_paging.rb +1 -0
  48. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/next_page.rb +1 -0
  49. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/paging.rb +1 -0
  50. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/previous_page.rb +1 -0
  51. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/rgba_color.rb +1 -0
  52. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/set_new_language_primary_request_v_next.rb +1 -0
  53. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/standard_error.rb +1 -0
  54. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/update_languages_request_v_next.rb +1 -0
  55. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/version_blog_post.rb +1 -0
  56. data/lib/hubspot/codegen/cms/blogs/blog-posts/models/version_user.rb +1 -0
  57. data/lib/hubspot/codegen/cms/blogs/tags/models/attach_to_lang_primary_request_v_next.rb +1 -0
  58. data/lib/hubspot/codegen/cms/blogs/tags/models/batch_input_json_node.rb +1 -0
  59. data/lib/hubspot/codegen/cms/blogs/tags/models/batch_input_string.rb +1 -0
  60. data/lib/hubspot/codegen/cms/blogs/tags/models/batch_input_tag.rb +1 -0
  61. data/lib/hubspot/codegen/cms/blogs/tags/models/batch_response_tag.rb +1 -0
  62. data/lib/hubspot/codegen/cms/blogs/tags/models/batch_response_tag_with_errors.rb +1 -0
  63. data/lib/hubspot/codegen/cms/blogs/tags/models/collection_response_with_total_tag_forward_paging.rb +1 -0
  64. data/lib/hubspot/codegen/cms/blogs/tags/models/detach_from_lang_group_request_v_next.rb +1 -0
  65. data/lib/hubspot/codegen/cms/blogs/tags/models/forward_paging.rb +1 -0
  66. data/lib/hubspot/codegen/cms/blogs/tags/models/next_page.rb +1 -0
  67. data/lib/hubspot/codegen/cms/blogs/tags/models/set_new_language_primary_request_v_next.rb +1 -0
  68. data/lib/hubspot/codegen/cms/blogs/tags/models/standard_error.rb +1 -0
  69. data/lib/hubspot/codegen/cms/blogs/tags/models/tag.rb +1 -0
  70. data/lib/hubspot/codegen/cms/blogs/tags/models/tag_clone_request_v_next.rb +1 -0
  71. data/lib/hubspot/codegen/cms/blogs/tags/models/update_languages_request_v_next.rb +1 -0
  72. data/lib/hubspot/codegen/conversations/visitor-identification/models/identification_token_generation_request.rb +1 -0
  73. data/lib/hubspot/codegen/conversations/visitor-identification/models/identification_token_response.rb +1 -0
  74. data/lib/hubspot/codegen/crm/associations/api/batch_api.rb +30 -18
  75. data/lib/hubspot/codegen/crm/associations/api/types_api.rb +3 -3
  76. data/lib/hubspot/codegen/crm/associations/models/batch_response_public_association.rb +29 -38
  77. data/lib/hubspot/codegen/crm/associations/models/batch_response_public_association_multi.rb +29 -38
  78. data/lib/hubspot/codegen/crm/associations/models/batch_response_public_association_multi_with_errors.rb +346 -0
  79. data/lib/hubspot/codegen/crm/associations/models/batch_response_public_association_with_errors.rb +346 -0
  80. data/lib/hubspot/codegen/crm/associations/models/collection_response_public_association_definition_no_paging.rb +230 -0
  81. data/lib/hubspot/codegen/crm/associations/models/error_category.rb +20 -20
  82. data/lib/hubspot/codegen/crm/associations/models/paging.rb +13 -4
  83. data/lib/hubspot/codegen/crm/associations/models/previous_page.rb +237 -0
  84. data/lib/hubspot/codegen/crm/associations/models/public_association_definition.rb +242 -0
  85. data/lib/hubspot/codegen/crm/associations/models/public_association_multi.rb +13 -4
  86. data/lib/hubspot/codegen/crm/extensions/accounting/models/accounting_app_settings.rb +1 -0
  87. data/lib/hubspot/codegen/crm/extensions/accounting/models/accounting_app_urls.rb +1 -0
  88. data/lib/hubspot/codegen/crm/extensions/accounting/models/accounting_extension_customer.rb +1 -0
  89. data/lib/hubspot/codegen/crm/extensions/accounting/models/accounting_extension_invoice.rb +1 -0
  90. data/lib/hubspot/codegen/crm/extensions/accounting/models/accounting_extension_term.rb +1 -0
  91. data/lib/hubspot/codegen/crm/extensions/accounting/models/accounting_features.rb +1 -0
  92. data/lib/hubspot/codegen/crm/extensions/accounting/models/address.rb +1 -0
  93. data/lib/hubspot/codegen/crm/extensions/accounting/models/create_invoice_feature.rb +1 -0
  94. data/lib/hubspot/codegen/crm/extensions/accounting/models/create_invoice_sub_features.rb +1 -0
  95. data/lib/hubspot/codegen/crm/extensions/accounting/models/create_user_account_request_external.rb +1 -0
  96. data/lib/hubspot/codegen/crm/extensions/accounting/models/customer_search_response_external.rb +1 -0
  97. data/lib/hubspot/codegen/crm/extensions/accounting/models/exchange_rate_response.rb +1 -0
  98. data/lib/hubspot/codegen/crm/extensions/accounting/models/import_invoice_feature.rb +1 -0
  99. data/lib/hubspot/codegen/crm/extensions/accounting/models/invoice_pdf_response.rb +1 -0
  100. data/lib/hubspot/codegen/crm/extensions/accounting/models/invoice_read_response.rb +1 -0
  101. data/lib/hubspot/codegen/crm/extensions/accounting/models/invoice_search_response.rb +1 -0
  102. data/lib/hubspot/codegen/crm/extensions/accounting/models/invoice_update_request.rb +1 -0
  103. data/lib/hubspot/codegen/crm/extensions/accounting/models/invoices_response_external.rb +1 -0
  104. data/lib/hubspot/codegen/crm/extensions/accounting/models/product.rb +1 -0
  105. data/lib/hubspot/codegen/crm/extensions/accounting/models/product_search_response.rb +1 -0
  106. data/lib/hubspot/codegen/crm/extensions/accounting/models/result_id_accounting_response.rb +1 -0
  107. data/lib/hubspot/codegen/crm/extensions/accounting/models/sync_contacts_request.rb +1 -0
  108. data/lib/hubspot/codegen/crm/extensions/accounting/models/sync_products_request.rb +1 -0
  109. data/lib/hubspot/codegen/crm/extensions/accounting/models/tax.rb +1 -0
  110. data/lib/hubspot/codegen/crm/extensions/accounting/models/tax_search_response.rb +1 -0
  111. data/lib/hubspot/codegen/crm/extensions/accounting/models/tax_type.rb +1 -0
  112. data/lib/hubspot/codegen/crm/extensions/accounting/models/terms_response.rb +1 -0
  113. data/lib/hubspot/codegen/crm/extensions/accounting/models/unit_price.rb +1 -0
  114. data/lib/hubspot/codegen/crm/extensions/accounting/models/updated_contact.rb +1 -0
  115. data/lib/hubspot/codegen/crm/extensions/accounting/models/updated_product.rb +1 -0
  116. data/lib/hubspot/codegen/crm/extensions/calling/models/settings_patch_request.rb +1 -0
  117. data/lib/hubspot/codegen/crm/extensions/calling/models/settings_request.rb +1 -0
  118. data/lib/hubspot/codegen/crm/extensions/calling/models/settings_response.rb +1 -0
  119. data/lib/hubspot/codegen/crm/extensions/cards/models/card_actions.rb +1 -0
  120. data/lib/hubspot/codegen/crm/extensions/cards/models/card_create_request.rb +1 -0
  121. data/lib/hubspot/codegen/crm/extensions/cards/models/card_display_body.rb +1 -0
  122. data/lib/hubspot/codegen/crm/extensions/cards/models/card_display_property.rb +1 -0
  123. data/lib/hubspot/codegen/crm/extensions/cards/models/card_fetch_body.rb +1 -0
  124. data/lib/hubspot/codegen/crm/extensions/cards/models/card_fetch_body_patch.rb +1 -0
  125. data/lib/hubspot/codegen/crm/extensions/cards/models/card_list_response.rb +1 -0
  126. data/lib/hubspot/codegen/crm/extensions/cards/models/card_patch_request.rb +1 -0
  127. data/lib/hubspot/codegen/crm/extensions/cards/models/card_response.rb +1 -0
  128. data/lib/hubspot/codegen/crm/extensions/cards/models/display_option.rb +1 -0
  129. data/lib/hubspot/codegen/crm/extensions/cards/models/integrator_card_payload_response.rb +1 -0
  130. data/lib/hubspot/codegen/crm/extensions/cards/models/integrator_object_result_actions_inner.rb +1 -0
  131. data/lib/hubspot/codegen/crm/extensions/videoconferencing/models/external_settings.rb +1 -0
  132. data/lib/hubspot/codegen/files/files/models/collection_response_file.rb +1 -0
  133. data/lib/hubspot/codegen/files/files/models/file_update_input.rb +1 -0
  134. data/lib/hubspot/codegen/files/files/models/folder_input.rb +1 -0
  135. data/lib/hubspot/codegen/files/files/models/folder_update_input.rb +1 -0
  136. data/lib/hubspot/codegen/files/files/models/folder_update_task_locator.rb +1 -0
  137. data/lib/hubspot/codegen/files/files/models/hubspot_file.rb +1 -0
  138. data/lib/hubspot/codegen/files/files/models/import_from_url_task_locator.rb +1 -0
  139. data/lib/hubspot/codegen/marketing/events/api/marketing_events_external_api.rb +0 -60
  140. data/lib/hubspot/codegen/marketing/events/api/search_api.rb +90 -0
  141. data/lib/hubspot/codegen/marketing/events/models/batch_input_marketing_event_email_subscriber.rb +1 -0
  142. data/lib/hubspot/codegen/marketing/events/models/batch_input_marketing_event_subscriber.rb +1 -0
  143. data/lib/hubspot/codegen/marketing/events/models/property_value.rb +13 -4
  144. data/lib/hubspot/codegen/marketing/forms/models/collection_response_form_definition_base_forward_paging_results_inner.rb +1 -0
  145. data/lib/hubspot/codegen/marketing/forms/models/datepicker_field.rb +1 -0
  146. data/lib/hubspot/codegen/marketing/forms/models/dependent_field.rb +1 -0
  147. data/lib/hubspot/codegen/marketing/forms/models/dependent_field_dependent_field.rb +1 -0
  148. data/lib/hubspot/codegen/marketing/forms/models/dependent_field_filter.rb +1 -0
  149. data/lib/hubspot/codegen/marketing/forms/models/dropdown_field.rb +1 -0
  150. data/lib/hubspot/codegen/marketing/forms/models/email_field.rb +1 -0
  151. data/lib/hubspot/codegen/marketing/forms/models/email_field_validation.rb +1 -0
  152. data/lib/hubspot/codegen/marketing/forms/models/field_group.rb +1 -0
  153. data/lib/hubspot/codegen/marketing/forms/models/file_field.rb +1 -0
  154. data/lib/hubspot/codegen/marketing/forms/models/form_definition_base.rb +1 -0
  155. data/lib/hubspot/codegen/marketing/forms/models/form_definition_create_request_base.rb +1 -0
  156. data/lib/hubspot/codegen/marketing/forms/models/form_display_options.rb +1 -0
  157. data/lib/hubspot/codegen/marketing/forms/models/form_post_submit_action.rb +1 -0
  158. data/lib/hubspot/codegen/marketing/forms/models/form_style.rb +1 -0
  159. data/lib/hubspot/codegen/marketing/forms/models/hub_spot_form_definition_patch_request_legal_consent_options.rb +1 -0
  160. data/lib/hubspot/codegen/marketing/forms/models/mobile_phone_field.rb +1 -0
  161. data/lib/hubspot/codegen/marketing/forms/models/multi_line_text_field.rb +1 -0
  162. data/lib/hubspot/codegen/marketing/forms/models/multiple_checkboxes_field.rb +1 -0
  163. data/lib/hubspot/codegen/marketing/forms/models/number_field.rb +1 -0
  164. data/lib/hubspot/codegen/marketing/forms/models/number_field_validation.rb +1 -0
  165. data/lib/hubspot/codegen/marketing/forms/models/phone_field.rb +1 -0
  166. data/lib/hubspot/codegen/marketing/forms/models/phone_field_validation.rb +1 -0
  167. data/lib/hubspot/codegen/marketing/forms/models/radio_field.rb +1 -0
  168. data/lib/hubspot/codegen/marketing/forms/models/single_checkbox_field.rb +1 -0
  169. data/lib/hubspot/codegen/marketing/forms/models/single_line_text_field.rb +1 -0
  170. data/lib/hubspot/codegen/marketing/transactional/models/email_send_status_view.rb +1 -0
  171. data/lib/hubspot/codegen/marketing/transactional/models/event_id_view.rb +1 -0
  172. data/lib/hubspot/codegen/marketing/transactional/models/public_single_send_email.rb +1 -0
  173. data/lib/hubspot/codegen/marketing/transactional/models/public_single_send_request_egg.rb +1 -0
  174. data/lib/hubspot/codegen/marketing/transactional/models/smtp_api_token_request_egg.rb +1 -0
  175. data/lib/hubspot/codegen/marketing/transactional/models/smtp_api_token_view.rb +1 -0
  176. data/lib/hubspot/codegen/settings/users/models/public_permission_set.rb +1 -0
  177. data/lib/hubspot/codegen/settings/users/models/public_team.rb +1 -0
  178. data/lib/hubspot/codegen/settings/users/models/public_user.rb +1 -0
  179. data/lib/hubspot/codegen/settings/users/models/public_user_update.rb +1 -0
  180. data/lib/hubspot/codegen/settings/users/models/user_provision_request.rb +1 -0
  181. data/lib/hubspot/discovery/marketing/events/api/search_api.rb +13 -0
  182. data/lib/hubspot/discovery/marketing/events/client.rb +1 -0
  183. data/lib/hubspot/helpers/signature.rb +62 -0
  184. data/lib/hubspot/helpers/webhooks_helper.rb +1 -0
  185. data/lib/hubspot/version.rb +3 -3
  186. data/spec/discovery/marketing/events/marketing_events_external_api_spec.rb +0 -1
  187. data/spec/discovery/marketing/events/search_api_spec.rb +7 -0
  188. data/spec/helpers/camel_case_spec.rb +11 -0
  189. data/spec/helpers/signature_spec.rb +117 -0
  190. metadata +17 -3
@@ -16,6 +16,7 @@ require 'time'
16
16
  module Hubspot
17
17
  module Marketing
18
18
  module Transactional
19
+ # A SMTP API token provides both an ID and password that can be used to send email through the HubSpot SMTP API.
19
20
  class SmtpApiTokenView
20
21
  # User name to log into the HubSpot SMTP server.
21
22
  attr_accessor :id
@@ -16,6 +16,7 @@ require 'time'
16
16
  module Hubspot
17
17
  module Settings
18
18
  module Users
19
+ # A role that can be assigned to a user
19
20
  class PublicPermissionSet
20
21
  # The role's unique ID
21
22
  attr_accessor :id
@@ -16,6 +16,7 @@ require 'time'
16
16
  module Hubspot
17
17
  module Settings
18
18
  module Users
19
+ # A team that can be assigned to a user
19
20
  class PublicTeam
20
21
  # The team's unique ID
21
22
  attr_accessor :id
@@ -16,6 +16,7 @@ require 'time'
16
16
  module Hubspot
17
17
  module Settings
18
18
  module Users
19
+ # A user
19
20
  class PublicUser
20
21
  # The user's unique ID
21
22
  attr_accessor :id
@@ -16,6 +16,7 @@ require 'time'
16
16
  module Hubspot
17
17
  module Settings
18
18
  module Users
19
+ # A user to update
19
20
  class PublicUserUpdate
20
21
  # The user's role
21
22
  attr_accessor :role_id
@@ -16,6 +16,7 @@ require 'time'
16
16
  module Hubspot
17
17
  module Settings
18
18
  module Users
19
+ # A user creation request
19
20
  class UserProvisionRequest
20
21
  # The created user's email
21
22
  attr_accessor :email
@@ -0,0 +1,13 @@
1
+ require_relative '../../../base_api_client'
2
+
3
+ module Hubspot
4
+ module Discovery
5
+ module Marketing
6
+ module Events
7
+ class SearchApi
8
+ include Hubspot::Discovery::BaseApiClient
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -11,6 +11,7 @@ module Hubspot
11
11
  %i[
12
12
  attendance_subscriber_state_changes
13
13
  marketing_events_external
14
+ search
14
15
  settings_external
15
16
  ].freeze
16
17
  end
@@ -0,0 +1,62 @@
1
+ require 'date'
2
+ require 'openssl'
3
+
4
+ module Hubspot
5
+ module Helpers
6
+ class Signature
7
+ MAX_ALLOWED_TIMESTAMP = 3000
8
+ def is_valid(
9
+ signature: String,
10
+ client_secret: String,
11
+ request_body: String,
12
+ http_uri: nil,
13
+ http_method: 'POST',
14
+ signature_version: 'v2',
15
+ timestamp: nil
16
+ )
17
+ if signature_version == "v3"
18
+ current_time = DateTime.now.strftime("%s").to_i
19
+ if current_time - timestamp.to_i > MAX_ALLOWED_TIMESTAMP
20
+ raise StandardError("Timestamp is invalid, reject request.")
21
+ end
22
+ end
23
+ hashed_signature = get_signature(
24
+ client_secret: client_secret,
25
+ request_body: request_body,
26
+ signature_version: signature_version,
27
+ http_uri: http_uri,
28
+ http_method: http_method,
29
+ timestamp: timestamp
30
+ )
31
+
32
+ signature == hashed_signature
33
+ end
34
+
35
+ def get_signature(
36
+ client_secret: String,
37
+ request_body: String,
38
+ signature_version: String,
39
+ http_uri: nil,
40
+ http_method: "POST",
41
+ timestamp: nil
42
+ )
43
+ case signature_version
44
+ when "v1"
45
+ source_string = "#{client_secret}#{request_body}"
46
+ hash_result = Digest::SHA2.hexdigest(source_string.encode('utf-8'))
47
+ return hash_result
48
+ when "v2"
49
+ source_string = "#{client_secret}#{http_method}#{http_uri}#{request_body}"
50
+ hash_result = Digest::SHA2.hexdigest(source_string.encode('utf-8'))
51
+ return hash_result
52
+ when "v3"
53
+ source_string = "#{http_method}#{http_uri}#{request_body}#{timestamp}"
54
+ hash_result = OpenSSL::HMAC.base64digest('SHA256', client_secret, source_string.encode('utf-8'))
55
+ return hash_result
56
+ else
57
+ raise StandardError("Not supported signature version: #{signature_version}")
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -1,3 +1,4 @@
1
+ # @deprecated
1
2
  module Hubspot
2
3
  module Helpers
3
4
  class WebhooksHelper
@@ -1,3 +1,3 @@
1
- module Hubspot
2
- VERSION = '16.1.1'
3
- end
1
+ module Hubspot
2
+ VERSION = '16.2.1'
3
+ end
@@ -10,7 +10,6 @@ describe 'Hubspot::Discovery::Marketing::Events::MarketingEventsExternalApi' do
10
10
  it { is_expected.to respond_to(:do_cancel) }
11
11
  it { is_expected.to respond_to(:archive_batch) }
12
12
  it { is_expected.to respond_to(:do_email_upsert_by_id) }
13
- it { is_expected.to respond_to(:do_search) }
14
13
  it { is_expected.to respond_to(:do_upsert) }
15
14
  it { is_expected.to respond_to(:do_upsert_by_id) }
16
15
  it { is_expected.to respond_to(:get_by_id) }
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Hubspot::Discovery::Marketing::Events::SearchApi' do
4
+ subject(:api) { Hubspot::Client.new(access_token: 'test').marketing.events.search_api }
5
+
6
+ it { is_expected.to respond_to(:do_search) }
7
+ end
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Hubspot::Helpers::CamelCase" do
4
+ subject( :camel_case) { Hubspot::Helpers::CamelCase.new }
5
+
6
+ it "Method 'format' should convert all snake_case strings to CamelCase strings" do
7
+ result = camel_case.format("some_test_text_in_snake_case")
8
+ expect(result).to eql "SomeTestTextInSnakeCase"
9
+ end
10
+
11
+ end
@@ -0,0 +1,117 @@
1
+ require 'date'
2
+ require_relative "../../lib/hubspot/helpers/signature"
3
+
4
+ TEST_DATA = {
5
+ :client_secret=> "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
6
+ :request_body=> "{'example_field':'example_value'}",
7
+ :url=> "https://www.example.com/webhook_uri",
8
+ :http_method=> "POST",
9
+ :timestamp=> 15000000,
10
+ :v1_hash=> "69fc6631a867edd4f9e9e627fc5c1148e3fbdd8b21837b6d2b8901c1fa57f750",
11
+ :v2_hash=> "4fe4e3a7d3cf09db53be39d0a58130e2aaba074ec123a9e355b876a689a1c383",
12
+ :v3_hash=> "HPW73RUtKmcYoEDADG0s6MmGFWUzWJKAW07r8RDgcQw=",
13
+ }
14
+
15
+
16
+
17
+ describe "Hubspot::Helpers::Signature.get_signature" do
18
+ subject( :signature) { Hubspot::Helpers::Signature.new }
19
+
20
+ it "should return hashed data for v3 signature version" do
21
+ result = signature.get_signature(
22
+ client_secret: TEST_DATA[:client_secret],
23
+ request_body: TEST_DATA[:request_body],
24
+ signature_version: "v3",
25
+ http_uri: TEST_DATA[:url],
26
+ timestamp: TEST_DATA[:timestamp]
27
+ )
28
+ expect(result).to eql TEST_DATA[:v3_hash]
29
+ end
30
+ it "should return hashed data for v2 signature version" do
31
+ result = signature.get_signature(
32
+ client_secret: TEST_DATA[:client_secret],
33
+ request_body: TEST_DATA[:request_body],
34
+ signature_version: "v2",
35
+ http_uri: TEST_DATA[:url],
36
+ )
37
+ expect(result).to eql TEST_DATA[:v2_hash]
38
+ end
39
+ it "should return hashed data for v1 signature version" do
40
+ result = signature.get_signature(
41
+ client_secret: TEST_DATA[:client_secret],
42
+ request_body: TEST_DATA[:request_body],
43
+ signature_version: "v1"
44
+ )
45
+ expect(result).to eql TEST_DATA[:v1_hash]
46
+ end
47
+ it "should raise exception for wrong signature version" do
48
+ expect{ signature.get_signature(
49
+ client_secret: TEST_DATA[:client_secret],
50
+ request_body: TEST_DATA[:request_body],
51
+ signature_version: "wrong_signature_version"
52
+ ) }.to raise_error(StandardError)
53
+ end
54
+
55
+ end
56
+
57
+ describe "Hubspot::Helpers::Signature.is_valid" do
58
+ subject( :signature) { Hubspot::Helpers::Signature.new }
59
+ it "should return true for v1 signature version" do
60
+ result = signature.is_valid(
61
+ signature: TEST_DATA[:v1_hash],
62
+ client_secret: TEST_DATA[:client_secret],
63
+ request_body: TEST_DATA[:request_body],
64
+ signature_version: "v1"
65
+ )
66
+ expect(result).to be true
67
+ end
68
+ it "should return true for v2 signature version" do
69
+ result = signature.is_valid(
70
+ signature: TEST_DATA[:v2_hash],
71
+ client_secret: TEST_DATA[:client_secret],
72
+ request_body: TEST_DATA[:request_body],
73
+ http_uri: TEST_DATA[:url],
74
+ signature_version: "v2"
75
+ )
76
+ expect(result).to be true
77
+ end
78
+ it "should return true for v3 signature version" do
79
+ test_timestamp = DateTime.now.strftime("%s")
80
+ test_signature = signature.get_signature(
81
+ client_secret: TEST_DATA[:client_secret],
82
+ request_body: TEST_DATA[:request_body],
83
+ http_uri: TEST_DATA[:http_uri],
84
+ timestamp: test_timestamp,
85
+ signature_version: "v3"
86
+ )
87
+
88
+ result = signature.is_valid(
89
+ signature: test_signature,
90
+ client_secret: TEST_DATA[:client_secret],
91
+ request_body: TEST_DATA[:request_body],
92
+ http_uri: TEST_DATA[:http_uri],
93
+ timestamp: test_timestamp,
94
+ signature_version: "v3"
95
+ )
96
+ expect(result).to be true
97
+ end
98
+ it "should raise exception if :signature_version=>v3 and :timestamp=>nil" do
99
+ expect { signature.is_valid(
100
+ signature: TEST_DATA[:v3_hash],
101
+ client_secret: TEST_DATA[:client_secret],
102
+ request_body: TEST_DATA[:request_body],
103
+ http_uri: TEST_DATA[:http_uri],
104
+ signature_version: "v3"
105
+ ) }.to raise_error(StandardError)
106
+ end
107
+ it "should raise exception if :signature_version=>v3 and :timestamp=>wrong_timestamp" do
108
+ expect { signature.is_valid(
109
+ signature: TEST_DATA[:v3_hash],
110
+ client_secret: TEST_DATA[:client_secret],
111
+ request_body: TEST_DATA[:request_body],
112
+ http_uri: TEST_DATA[:http_uri],
113
+ timestamp: "wrong_timestamp",
114
+ signature_version: "v3"
115
+ ) }.to raise_error(StandardError)
116
+ end
117
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hubspot-api-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 16.1.1
4
+ version: 16.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - HubSpot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-23 00:00:00.000000000 Z
11
+ date: 2023-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -437,13 +437,18 @@ files:
437
437
  - lib/hubspot/codegen/crm/associations/models/batch_input_public_object_id.rb
438
438
  - lib/hubspot/codegen/crm/associations/models/batch_response_public_association.rb
439
439
  - lib/hubspot/codegen/crm/associations/models/batch_response_public_association_multi.rb
440
+ - lib/hubspot/codegen/crm/associations/models/batch_response_public_association_multi_with_errors.rb
441
+ - lib/hubspot/codegen/crm/associations/models/batch_response_public_association_with_errors.rb
442
+ - lib/hubspot/codegen/crm/associations/models/collection_response_public_association_definition_no_paging.rb
440
443
  - lib/hubspot/codegen/crm/associations/models/collection_response_public_association_definiton.rb
441
444
  - lib/hubspot/codegen/crm/associations/models/error.rb
442
445
  - lib/hubspot/codegen/crm/associations/models/error_category.rb
443
446
  - lib/hubspot/codegen/crm/associations/models/error_detail.rb
444
447
  - lib/hubspot/codegen/crm/associations/models/next_page.rb
445
448
  - lib/hubspot/codegen/crm/associations/models/paging.rb
449
+ - lib/hubspot/codegen/crm/associations/models/previous_page.rb
446
450
  - lib/hubspot/codegen/crm/associations/models/public_association.rb
451
+ - lib/hubspot/codegen/crm/associations/models/public_association_definition.rb
447
452
  - lib/hubspot/codegen/crm/associations/models/public_association_definiton.rb
448
453
  - lib/hubspot/codegen/crm/associations/models/public_association_multi.rb
449
454
  - lib/hubspot/codegen/crm/associations/models/public_object_id.rb
@@ -1307,6 +1312,7 @@ files:
1307
1312
  - lib/hubspot/codegen/files/files/models/standard_error.rb
1308
1313
  - lib/hubspot/codegen/marketing/events/api/attendance_subscriber_state_changes_api.rb
1309
1314
  - lib/hubspot/codegen/marketing/events/api/marketing_events_external_api.rb
1315
+ - lib/hubspot/codegen/marketing/events/api/search_api.rb
1310
1316
  - lib/hubspot/codegen/marketing/events/api/settings_external_api.rb
1311
1317
  - lib/hubspot/codegen/marketing/events/api_client.rb
1312
1318
  - lib/hubspot/codegen/marketing/events/api_error.rb
@@ -1632,6 +1638,7 @@ files:
1632
1638
  - lib/hubspot/discovery/marketing/client.rb
1633
1639
  - lib/hubspot/discovery/marketing/events/api/attendance_subscriber_state_changes_api.rb
1634
1640
  - lib/hubspot/discovery/marketing/events/api/marketing_events_external_api.rb
1641
+ - lib/hubspot/discovery/marketing/events/api/search_api.rb
1635
1642
  - lib/hubspot/discovery/marketing/events/api/settings_external_api.rb
1636
1643
  - lib/hubspot/discovery/marketing/events/client.rb
1637
1644
  - lib/hubspot/discovery/marketing/forms/api/forms_api.rb
@@ -1655,6 +1662,7 @@ files:
1655
1662
  - lib/hubspot/helpers/camel_case.rb
1656
1663
  - lib/hubspot/helpers/get_all_helper.rb
1657
1664
  - lib/hubspot/helpers/path.rb
1665
+ - lib/hubspot/helpers/signature.rb
1658
1666
  - lib/hubspot/helpers/snake_case.rb
1659
1667
  - lib/hubspot/helpers/webhooks_helper.rb
1660
1668
  - lib/hubspot/oauth_helper.rb
@@ -1793,6 +1801,7 @@ files:
1793
1801
  - spec/discovery/files/files/folders_api_spec.rb
1794
1802
  - spec/discovery/marketing/events/attendance_subscriber_state_changes_api_spec.rb
1795
1803
  - spec/discovery/marketing/events/marketing_events_external_api_spec.rb
1804
+ - spec/discovery/marketing/events/search_api_spec.rb
1796
1805
  - spec/discovery/marketing/events/settings_external_api_spec.rb
1797
1806
  - spec/discovery/marketing/forms/forms_api_spec.rb
1798
1807
  - spec/discovery/marketing/transactional/public_smtp_tokens_api_spec.rb
@@ -1805,6 +1814,8 @@ files:
1805
1814
  - spec/discovery/settings/users/users_api_spec.rb
1806
1815
  - spec/discovery/webhooks/settings_api_spec.rb
1807
1816
  - spec/discovery/webhooks/subscriptions_api_spec.rb
1817
+ - spec/helpers/camel_case_spec.rb
1818
+ - spec/helpers/signature_spec.rb
1808
1819
  - spec/spec_helper.rb
1809
1820
  homepage: https://github.com/HubSpot/hubspot-api-ruby
1810
1821
  licenses:
@@ -1825,7 +1836,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1825
1836
  - !ruby/object:Gem::Version
1826
1837
  version: '0'
1827
1838
  requirements: []
1828
- rubygems_version: 3.2.3
1839
+ rubygems_version: 3.3.26
1829
1840
  signing_key:
1830
1841
  specification_version: 4
1831
1842
  summary: HubSpot Ruby API Gem
@@ -1964,6 +1975,7 @@ test_files:
1964
1975
  - spec/discovery/files/files/files_api_spec.rb
1965
1976
  - spec/discovery/files/files/folders_api_spec.rb
1966
1977
  - spec/discovery/marketing/forms/forms_api_spec.rb
1978
+ - spec/discovery/marketing/events/search_api_spec.rb
1967
1979
  - spec/discovery/marketing/events/marketing_events_external_api_spec.rb
1968
1980
  - spec/discovery/marketing/events/attendance_subscriber_state_changes_api_spec.rb
1969
1981
  - spec/discovery/marketing/events/settings_external_api_spec.rb
@@ -1976,4 +1988,6 @@ test_files:
1976
1988
  - spec/discovery/events/events_api_spec.rb
1977
1989
  - spec/discovery/webhooks/settings_api_spec.rb
1978
1990
  - spec/discovery/webhooks/subscriptions_api_spec.rb
1991
+ - spec/helpers/signature_spec.rb
1992
+ - spec/helpers/camel_case_spec.rb
1979
1993
  - spec/spec_helper.rb