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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -1
- data/Gemfile +1 -0
- data/Gemfile.lock +3 -1
- data/lib/hubspot/codegen/automation/actions/models/action_function.rb +1 -0
- data/lib/hubspot/codegen/automation/actions/models/action_function_identifier.rb +1 -0
- data/lib/hubspot/codegen/automation/actions/models/action_labels.rb +1 -0
- data/lib/hubspot/codegen/automation/actions/models/action_revision.rb +1 -0
- data/lib/hubspot/codegen/automation/actions/models/callback_completion_batch_request.rb +1 -0
- data/lib/hubspot/codegen/automation/actions/models/callback_completion_request.rb +1 -0
- data/lib/hubspot/codegen/automation/actions/models/extension_action_definition.rb +1 -0
- data/lib/hubspot/codegen/automation/actions/models/extension_action_definition_input.rb +1 -0
- data/lib/hubspot/codegen/automation/actions/models/extension_action_definition_patch.rb +1 -0
- data/lib/hubspot/codegen/automation/actions/models/extension_action_definition_patch_input_field_dependencies_inner.rb +1 -0
- data/lib/hubspot/codegen/automation/actions/models/field_type_definition.rb +1 -0
- data/lib/hubspot/codegen/automation/actions/models/input_field_definition.rb +1 -0
- data/lib/hubspot/codegen/automation/actions/models/object_request_options.rb +1 -0
- data/lib/hubspot/codegen/automation/actions/models/option.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/authors/models/attach_to_lang_primary_request_v_next.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/authors/models/batch_input_blog_author.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/authors/models/batch_input_json_node.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/authors/models/batch_input_string.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/authors/models/batch_response_blog_author.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/authors/models/batch_response_blog_author_with_errors.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/authors/models/blog_author.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/authors/models/blog_author_clone_request_v_next.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/authors/models/collection_response_with_total_blog_author_forward_paging.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/authors/models/detach_from_lang_group_request_v_next.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/authors/models/forward_paging.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/authors/models/next_page.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/authors/models/set_new_language_primary_request_v_next.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/authors/models/standard_error.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/authors/models/update_languages_request_v_next.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/attach_to_lang_primary_request_v_next.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/batch_input_blog_post.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/batch_input_json_node.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/batch_input_string.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/batch_response_blog_post.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/batch_response_blog_post_with_errors.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/blog_post.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/blog_post_language_clone_request_v_next.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/collection_response_with_total_blog_post_forward_paging.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/collection_response_with_total_version_blog_post.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/content_clone_request_v_next.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/content_schedule_request_v_next.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/detach_from_lang_group_request_v_next.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/forward_paging.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/next_page.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/paging.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/previous_page.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/rgba_color.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/set_new_language_primary_request_v_next.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/standard_error.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/update_languages_request_v_next.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/version_blog_post.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/blog-posts/models/version_user.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/tags/models/attach_to_lang_primary_request_v_next.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/tags/models/batch_input_json_node.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/tags/models/batch_input_string.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/tags/models/batch_input_tag.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/tags/models/batch_response_tag.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/tags/models/batch_response_tag_with_errors.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/tags/models/collection_response_with_total_tag_forward_paging.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/tags/models/detach_from_lang_group_request_v_next.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/tags/models/forward_paging.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/tags/models/next_page.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/tags/models/set_new_language_primary_request_v_next.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/tags/models/standard_error.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/tags/models/tag.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/tags/models/tag_clone_request_v_next.rb +1 -0
- data/lib/hubspot/codegen/cms/blogs/tags/models/update_languages_request_v_next.rb +1 -0
- data/lib/hubspot/codegen/conversations/visitor-identification/models/identification_token_generation_request.rb +1 -0
- data/lib/hubspot/codegen/conversations/visitor-identification/models/identification_token_response.rb +1 -0
- data/lib/hubspot/codegen/crm/associations/api/batch_api.rb +30 -18
- data/lib/hubspot/codegen/crm/associations/api/types_api.rb +3 -3
- data/lib/hubspot/codegen/crm/associations/models/batch_response_public_association.rb +29 -38
- data/lib/hubspot/codegen/crm/associations/models/batch_response_public_association_multi.rb +29 -38
- data/lib/hubspot/codegen/crm/associations/models/batch_response_public_association_multi_with_errors.rb +346 -0
- data/lib/hubspot/codegen/crm/associations/models/batch_response_public_association_with_errors.rb +346 -0
- data/lib/hubspot/codegen/crm/associations/models/collection_response_public_association_definition_no_paging.rb +230 -0
- data/lib/hubspot/codegen/crm/associations/models/error_category.rb +20 -20
- data/lib/hubspot/codegen/crm/associations/models/paging.rb +13 -4
- data/lib/hubspot/codegen/crm/associations/models/previous_page.rb +237 -0
- data/lib/hubspot/codegen/crm/associations/models/public_association_definition.rb +242 -0
- data/lib/hubspot/codegen/crm/associations/models/public_association_multi.rb +13 -4
- data/lib/hubspot/codegen/crm/extensions/accounting/models/accounting_app_settings.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/accounting_app_urls.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/accounting_extension_customer.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/accounting_extension_invoice.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/accounting_extension_term.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/accounting_features.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/address.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/create_invoice_feature.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/create_invoice_sub_features.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/create_user_account_request_external.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/customer_search_response_external.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/exchange_rate_response.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/import_invoice_feature.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/invoice_pdf_response.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/invoice_read_response.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/invoice_search_response.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/invoice_update_request.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/invoices_response_external.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/product.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/product_search_response.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/result_id_accounting_response.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/sync_contacts_request.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/sync_products_request.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/tax.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/tax_search_response.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/tax_type.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/terms_response.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/unit_price.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/updated_contact.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/accounting/models/updated_product.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/calling/models/settings_patch_request.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/calling/models/settings_request.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/calling/models/settings_response.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/cards/models/card_actions.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/cards/models/card_create_request.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/cards/models/card_display_body.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/cards/models/card_display_property.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/cards/models/card_fetch_body.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/cards/models/card_fetch_body_patch.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/cards/models/card_list_response.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/cards/models/card_patch_request.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/cards/models/card_response.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/cards/models/display_option.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/cards/models/integrator_card_payload_response.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/cards/models/integrator_object_result_actions_inner.rb +1 -0
- data/lib/hubspot/codegen/crm/extensions/videoconferencing/models/external_settings.rb +1 -0
- data/lib/hubspot/codegen/files/files/models/collection_response_file.rb +1 -0
- data/lib/hubspot/codegen/files/files/models/file_update_input.rb +1 -0
- data/lib/hubspot/codegen/files/files/models/folder_input.rb +1 -0
- data/lib/hubspot/codegen/files/files/models/folder_update_input.rb +1 -0
- data/lib/hubspot/codegen/files/files/models/folder_update_task_locator.rb +1 -0
- data/lib/hubspot/codegen/files/files/models/hubspot_file.rb +1 -0
- data/lib/hubspot/codegen/files/files/models/import_from_url_task_locator.rb +1 -0
- data/lib/hubspot/codegen/marketing/events/api/marketing_events_external_api.rb +0 -60
- data/lib/hubspot/codegen/marketing/events/api/search_api.rb +90 -0
- data/lib/hubspot/codegen/marketing/events/models/batch_input_marketing_event_email_subscriber.rb +1 -0
- data/lib/hubspot/codegen/marketing/events/models/batch_input_marketing_event_subscriber.rb +1 -0
- data/lib/hubspot/codegen/marketing/events/models/property_value.rb +13 -4
- data/lib/hubspot/codegen/marketing/forms/models/collection_response_form_definition_base_forward_paging_results_inner.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/datepicker_field.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/dependent_field.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/dependent_field_dependent_field.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/dependent_field_filter.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/dropdown_field.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/email_field.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/email_field_validation.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/field_group.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/file_field.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/form_definition_base.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/form_definition_create_request_base.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/form_display_options.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/form_post_submit_action.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/form_style.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/hub_spot_form_definition_patch_request_legal_consent_options.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/mobile_phone_field.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/multi_line_text_field.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/multiple_checkboxes_field.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/number_field.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/number_field_validation.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/phone_field.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/phone_field_validation.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/radio_field.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/single_checkbox_field.rb +1 -0
- data/lib/hubspot/codegen/marketing/forms/models/single_line_text_field.rb +1 -0
- data/lib/hubspot/codegen/marketing/transactional/models/email_send_status_view.rb +1 -0
- data/lib/hubspot/codegen/marketing/transactional/models/event_id_view.rb +1 -0
- data/lib/hubspot/codegen/marketing/transactional/models/public_single_send_email.rb +1 -0
- data/lib/hubspot/codegen/marketing/transactional/models/public_single_send_request_egg.rb +1 -0
- data/lib/hubspot/codegen/marketing/transactional/models/smtp_api_token_request_egg.rb +1 -0
- data/lib/hubspot/codegen/marketing/transactional/models/smtp_api_token_view.rb +1 -0
- data/lib/hubspot/codegen/settings/users/models/public_permission_set.rb +1 -0
- data/lib/hubspot/codegen/settings/users/models/public_team.rb +1 -0
- data/lib/hubspot/codegen/settings/users/models/public_user.rb +1 -0
- data/lib/hubspot/codegen/settings/users/models/public_user_update.rb +1 -0
- data/lib/hubspot/codegen/settings/users/models/user_provision_request.rb +1 -0
- data/lib/hubspot/discovery/marketing/events/api/search_api.rb +13 -0
- data/lib/hubspot/discovery/marketing/events/client.rb +1 -0
- data/lib/hubspot/helpers/signature.rb +62 -0
- data/lib/hubspot/helpers/webhooks_helper.rb +1 -0
- data/lib/hubspot/version.rb +3 -3
- data/spec/discovery/marketing/events/marketing_events_external_api_spec.rb +0 -1
- data/spec/discovery/marketing/events/search_api_spec.rb +7 -0
- data/spec/helpers/camel_case_spec.rb +11 -0
- data/spec/helpers/signature_spec.rb +117 -0
- 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
|
@@ -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
|
data/lib/hubspot/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
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,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.
|
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:
|
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.
|
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
|