mailhub-sdk 0.1.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.
- checksums.yaml +7 -0
- data/.fern/metadata.json +11 -0
- data/.fernignore +3 -0
- data/.rubocop.yml +103 -0
- data/CONTRIBUTING.md +120 -0
- data/README.md +159 -0
- data/Rakefile +20 -0
- data/custom.gemspec.rb +18 -0
- data/lib/Mailhub/campaign/client.rb +730 -0
- data/lib/Mailhub/campaign/types/add_campaign_media_by_code_request.rb +13 -0
- data/lib/Mailhub/campaign/types/cancel_campaign_request.rb +11 -0
- data/lib/Mailhub/campaign/types/catch_up_campaign_request.rb +11 -0
- data/lib/Mailhub/campaign/types/create_campaign_by_code_request.rb +27 -0
- data/lib/Mailhub/campaign/types/delete_campaign_request.rb +11 -0
- data/lib/Mailhub/campaign/types/get_campaign_activity_request.rb +11 -0
- data/lib/Mailhub/campaign/types/get_campaign_analytics_request.rb +11 -0
- data/lib/Mailhub/campaign/types/get_campaign_link_stats_request.rb +11 -0
- data/lib/Mailhub/campaign/types/get_campaign_media_request.rb +11 -0
- data/lib/Mailhub/campaign/types/get_campaign_rendered_preview_by_code_request.rb +21 -0
- data/lib/Mailhub/campaign/types/get_campaign_request.rb +11 -0
- data/lib/Mailhub/campaign/types/get_campaigns_request.rb +19 -0
- data/lib/Mailhub/campaign/types/pause_campaign_request.rb +11 -0
- data/lib/Mailhub/campaign/types/preview_campaign_request.rb +11 -0
- data/lib/Mailhub/campaign/types/remove_campaign_media_request.rb +13 -0
- data/lib/Mailhub/campaign/types/schedule_campaign_request.rb +11 -0
- data/lib/Mailhub/campaign/types/send_campaign_request.rb +11 -0
- data/lib/Mailhub/campaign/types/test_campaign_by_code_request.rb +23 -0
- data/lib/Mailhub/campaign/types/update_campaign_by_code_request.rb +29 -0
- data/lib/Mailhub/client.rb +55 -0
- data/lib/Mailhub/contact/client.rb +385 -0
- data/lib/Mailhub/contact/types/block_contact_request.rb +11 -0
- data/lib/Mailhub/contact/types/block_contacts_by_guid_request.rb +11 -0
- data/lib/Mailhub/contact/types/create_contact_request.rb +15 -0
- data/lib/Mailhub/contact/types/delete_contact_request.rb +11 -0
- data/lib/Mailhub/contact/types/delete_contacts_by_guid_request.rb +11 -0
- data/lib/Mailhub/contact/types/get_contact_request.rb +11 -0
- data/lib/Mailhub/contact/types/get_contacts_request.rb +21 -0
- data/lib/Mailhub/contact/types/get_import_job_request.rb +11 -0
- data/lib/Mailhub/contact/types/import_contacts_request.rb +9 -0
- data/lib/Mailhub/contact/types/update_contact_request.rb +17 -0
- data/lib/Mailhub/custom_field/client.rb +188 -0
- data/lib/Mailhub/custom_field/types/create_custom_field_request.rb +15 -0
- data/lib/Mailhub/custom_field/types/delete_custom_field_request.rb +11 -0
- data/lib/Mailhub/custom_field/types/get_custom_field_request.rb +11 -0
- data/lib/Mailhub/custom_field/types/update_custom_field_request.rb +15 -0
- data/lib/Mailhub/errors/api_error.rb +8 -0
- data/lib/Mailhub/errors/client_error.rb +17 -0
- data/lib/Mailhub/errors/redirect_error.rb +8 -0
- data/lib/Mailhub/errors/response_error.rb +42 -0
- data/lib/Mailhub/errors/server_error.rb +11 -0
- data/lib/Mailhub/errors/timeout_error.rb +8 -0
- data/lib/Mailhub/internal/errors/constraint_error.rb +10 -0
- data/lib/Mailhub/internal/errors/type_error.rb +10 -0
- data/lib/Mailhub/internal/http/base_request.rb +51 -0
- data/lib/Mailhub/internal/http/raw_client.rb +248 -0
- data/lib/Mailhub/internal/iterators/cursor_item_iterator.rb +28 -0
- data/lib/Mailhub/internal/iterators/cursor_page_iterator.rb +63 -0
- data/lib/Mailhub/internal/iterators/item_iterator.rb +65 -0
- data/lib/Mailhub/internal/iterators/offset_item_iterator.rb +30 -0
- data/lib/Mailhub/internal/iterators/offset_page_iterator.rb +103 -0
- data/lib/Mailhub/internal/json/request.rb +41 -0
- data/lib/Mailhub/internal/json/serializable.rb +25 -0
- data/lib/Mailhub/internal/multipart/multipart_encoder.rb +141 -0
- data/lib/Mailhub/internal/multipart/multipart_form_data.rb +78 -0
- data/lib/Mailhub/internal/multipart/multipart_form_data_part.rb +51 -0
- data/lib/Mailhub/internal/multipart/multipart_request.rb +40 -0
- data/lib/Mailhub/internal/types/array.rb +47 -0
- data/lib/Mailhub/internal/types/boolean.rb +34 -0
- data/lib/Mailhub/internal/types/enum.rb +56 -0
- data/lib/Mailhub/internal/types/hash.rb +36 -0
- data/lib/Mailhub/internal/types/model/field.rb +38 -0
- data/lib/Mailhub/internal/types/model.rb +208 -0
- data/lib/Mailhub/internal/types/type.rb +35 -0
- data/lib/Mailhub/internal/types/union.rb +161 -0
- data/lib/Mailhub/internal/types/unknown.rb +15 -0
- data/lib/Mailhub/internal/types/utils.rb +116 -0
- data/lib/Mailhub/media/client.rb +241 -0
- data/lib/Mailhub/media/types/delete_media_request.rb +11 -0
- data/lib/Mailhub/media/types/download_media_request.rb +11 -0
- data/lib/Mailhub/media/types/get_media_request.rb +11 -0
- data/lib/Mailhub/media/types/get_medias_request.rb +19 -0
- data/lib/Mailhub/media/types/update_media_request.rb +13 -0
- data/lib/Mailhub/media/types/upload_media_request.rb +9 -0
- data/lib/Mailhub/message/client.rb +201 -0
- data/lib/Mailhub/message/types/cancel_message_request.rb +11 -0
- data/lib/Mailhub/message/types/get_message_events_request.rb +11 -0
- data/lib/Mailhub/message/types/get_message_request.rb +11 -0
- data/lib/Mailhub/message/types/get_messages_request.rb +21 -0
- data/lib/Mailhub/message/types/send_message_request.rb +23 -0
- data/lib/Mailhub/segment/client.rb +377 -0
- data/lib/Mailhub/segment/types/create_segment_request.rb +13 -0
- data/lib/Mailhub/segment/types/delete_segment_request.rb +11 -0
- data/lib/Mailhub/segment/types/delete_segments_by_code_request.rb +13 -0
- data/lib/Mailhub/segment/types/get_segment_contacts_request.rb +15 -0
- data/lib/Mailhub/segment/types/get_segment_preview_request.rb +11 -0
- data/lib/Mailhub/segment/types/get_segment_request.rb +11 -0
- data/lib/Mailhub/segment/types/get_segments_request.rb +19 -0
- data/lib/Mailhub/segment/types/get_segments_union_preview_by_code_request.rb +11 -0
- data/lib/Mailhub/segment/types/sync_segment_request.rb +11 -0
- data/lib/Mailhub/segment/types/update_segment_request.rb +15 -0
- data/lib/Mailhub/template/client.rb +301 -0
- data/lib/Mailhub/template/types/create_template_request.rb +13 -0
- data/lib/Mailhub/template/types/delete_template_request.rb +11 -0
- data/lib/Mailhub/template/types/get_template_rendered_preview_request.rb +11 -0
- data/lib/Mailhub/template/types/get_template_request.rb +11 -0
- data/lib/Mailhub/template/types/get_templates_request.rb +19 -0
- data/lib/Mailhub/template/types/preview_template_request.rb +11 -0
- data/lib/Mailhub/template/types/update_template_request.rb +15 -0
- data/lib/Mailhub/types/api_error.rb +16 -0
- data/lib/Mailhub/types/api_error_detail.rb +12 -0
- data/lib/Mailhub/types/campaign_activity_point_model.rb +18 -0
- data/lib/Mailhub/types/campaign_analytics_model.rb +30 -0
- data/lib/Mailhub/types/campaign_link_stat_model.rb +14 -0
- data/lib/Mailhub/types/campaign_media_model.rb +24 -0
- data/lib/Mailhub/types/campaign_model.rb +52 -0
- data/lib/Mailhub/types/campaign_model_paged_result.rb +16 -0
- data/lib/Mailhub/types/campaign_segment_model.rb +14 -0
- data/lib/Mailhub/types/campaign_status.rb +17 -0
- data/lib/Mailhub/types/campaign_type.rb +12 -0
- data/lib/Mailhub/types/contact_import_job_model.rb +22 -0
- data/lib/Mailhub/types/contact_import_model.rb +10 -0
- data/lib/Mailhub/types/contact_import_status.rb +14 -0
- data/lib/Mailhub/types/contact_model.rb +26 -0
- data/lib/Mailhub/types/contact_model_cursor_paged_result.rb +18 -0
- data/lib/Mailhub/types/contact_model_paged_result.rb +16 -0
- data/lib/Mailhub/types/contact_segment_model.rb +14 -0
- data/lib/Mailhub/types/contact_status.rb +13 -0
- data/lib/Mailhub/types/custom_field_model.rb +20 -0
- data/lib/Mailhub/types/custom_field_type.rb +14 -0
- data/lib/Mailhub/types/import_contact_error_model.rb +12 -0
- data/lib/Mailhub/types/media_model.rb +28 -0
- data/lib/Mailhub/types/media_model_paged_result.rb +16 -0
- data/lib/Mailhub/types/message_event_model.rb +16 -0
- data/lib/Mailhub/types/message_event_type.rb +18 -0
- data/lib/Mailhub/types/message_model.rb +36 -0
- data/lib/Mailhub/types/message_model_cursor_paged_result.rb +18 -0
- data/lib/Mailhub/types/preview_segment_model.rb +10 -0
- data/lib/Mailhub/types/running_campaign_stats_model.rb +32 -0
- data/lib/Mailhub/types/segment_filter_group_model.rb +12 -0
- data/lib/Mailhub/types/segment_filter_model.rb +10 -0
- data/lib/Mailhub/types/segment_filter_rule_model.rb +14 -0
- data/lib/Mailhub/types/segment_model.rb +32 -0
- data/lib/Mailhub/types/segment_model_paged_result.rb +16 -0
- data/lib/Mailhub/types/segment_sync_status.rb +14 -0
- data/lib/Mailhub/types/template_expression_model.rb +14 -0
- data/lib/Mailhub/types/template_model.rb +20 -0
- data/lib/Mailhub/types/template_model_paged_result.rb +16 -0
- data/lib/Mailhub/version.rb +5 -0
- data/lib/Mailhub.rb +145 -0
- data/reference.md +3691 -0
- metadata +193 -0
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailhub
|
|
4
|
+
module Contact
|
|
5
|
+
class Client
|
|
6
|
+
# @param client [Mailhub::Internal::Http::RawClient]
|
|
7
|
+
#
|
|
8
|
+
# @return [void]
|
|
9
|
+
def initialize(client:)
|
|
10
|
+
@client = client
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# @param request_options [Hash]
|
|
14
|
+
# @param params [Hash]
|
|
15
|
+
# @option request_options [String] :base_url
|
|
16
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
17
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
18
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
19
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
20
|
+
# @option params [String, nil] :search
|
|
21
|
+
# @option params [Integer, nil] :segment_id
|
|
22
|
+
# @option params [String, nil] :sort_by
|
|
23
|
+
# @option params [String, nil] :sort_direction
|
|
24
|
+
# @option params [Integer, nil] :page_size
|
|
25
|
+
# @option params [String, nil] :cursor
|
|
26
|
+
#
|
|
27
|
+
# @example
|
|
28
|
+
# client.contact.get_contacts
|
|
29
|
+
#
|
|
30
|
+
# @return [Mailhub::Types::ContactModelCursorPagedResult]
|
|
31
|
+
def get_contacts(request_options: {}, **params)
|
|
32
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
33
|
+
query_params = {}
|
|
34
|
+
query_params["search"] = params[:search] if params.key?(:search)
|
|
35
|
+
query_params["segmentId"] = params[:segment_id] if params.key?(:segment_id)
|
|
36
|
+
query_params["sortBy"] = params[:sort_by] if params.key?(:sort_by)
|
|
37
|
+
query_params["sortDirection"] = params[:sort_direction] if params.key?(:sort_direction)
|
|
38
|
+
query_params["pageSize"] = params[:page_size] if params.key?(:page_size)
|
|
39
|
+
query_params["cursor"] = params[:cursor] if params.key?(:cursor)
|
|
40
|
+
|
|
41
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
42
|
+
base_url: request_options[:base_url],
|
|
43
|
+
method: "GET",
|
|
44
|
+
path: "v1/contacts",
|
|
45
|
+
query: query_params,
|
|
46
|
+
request_options: request_options
|
|
47
|
+
)
|
|
48
|
+
begin
|
|
49
|
+
response = @client.send(request)
|
|
50
|
+
rescue Net::HTTPRequestTimeout
|
|
51
|
+
raise Mailhub::Errors::TimeoutError
|
|
52
|
+
end
|
|
53
|
+
code = response.code.to_i
|
|
54
|
+
if code.between?(200, 299)
|
|
55
|
+
Mailhub::Types::ContactModelCursorPagedResult.load(response.body)
|
|
56
|
+
else
|
|
57
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
58
|
+
raise error_class.new(response.body, code: code)
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# @param request_options [Hash]
|
|
63
|
+
# @param params [Mailhub::Contact::Types::CreateContactRequest]
|
|
64
|
+
# @option request_options [String] :base_url
|
|
65
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
66
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
67
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
68
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
69
|
+
#
|
|
70
|
+
# @example
|
|
71
|
+
# client.contact.create_contact
|
|
72
|
+
#
|
|
73
|
+
# @return [Mailhub::Types::ContactModel]
|
|
74
|
+
def create_contact(request_options: {}, **params)
|
|
75
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
76
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
77
|
+
base_url: request_options[:base_url],
|
|
78
|
+
method: "POST",
|
|
79
|
+
path: "v1/contacts",
|
|
80
|
+
body: Mailhub::Contact::Types::CreateContactRequest.new(params).to_h,
|
|
81
|
+
request_options: request_options
|
|
82
|
+
)
|
|
83
|
+
begin
|
|
84
|
+
response = @client.send(request)
|
|
85
|
+
rescue Net::HTTPRequestTimeout
|
|
86
|
+
raise Mailhub::Errors::TimeoutError
|
|
87
|
+
end
|
|
88
|
+
code = response.code.to_i
|
|
89
|
+
if code.between?(200, 299)
|
|
90
|
+
Mailhub::Types::ContactModel.load(response.body)
|
|
91
|
+
else
|
|
92
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
93
|
+
raise error_class.new(response.body, code: code)
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# @param request_options [Hash]
|
|
98
|
+
# @param params [Hash]
|
|
99
|
+
# @option request_options [String] :base_url
|
|
100
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
101
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
102
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
103
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
104
|
+
# @option params [String] :guid
|
|
105
|
+
#
|
|
106
|
+
# @example
|
|
107
|
+
# client.contact.get_contact(guid: "guid")
|
|
108
|
+
#
|
|
109
|
+
# @return [Mailhub::Types::ContactModel]
|
|
110
|
+
def get_contact(request_options: {}, **params)
|
|
111
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
112
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
113
|
+
base_url: request_options[:base_url],
|
|
114
|
+
method: "GET",
|
|
115
|
+
path: "v1/contacts/#{URI.encode_uri_component(params[:guid].to_s)}",
|
|
116
|
+
request_options: request_options
|
|
117
|
+
)
|
|
118
|
+
begin
|
|
119
|
+
response = @client.send(request)
|
|
120
|
+
rescue Net::HTTPRequestTimeout
|
|
121
|
+
raise Mailhub::Errors::TimeoutError
|
|
122
|
+
end
|
|
123
|
+
code = response.code.to_i
|
|
124
|
+
if code.between?(200, 299)
|
|
125
|
+
Mailhub::Types::ContactModel.load(response.body)
|
|
126
|
+
else
|
|
127
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
128
|
+
raise error_class.new(response.body, code: code)
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
# @param request_options [Hash]
|
|
133
|
+
# @param params [Mailhub::Contact::Types::UpdateContactRequest]
|
|
134
|
+
# @option request_options [String] :base_url
|
|
135
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
136
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
137
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
138
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
139
|
+
# @option params [String] :guid
|
|
140
|
+
#
|
|
141
|
+
# @example
|
|
142
|
+
# client.contact.update_contact(guid: "guid")
|
|
143
|
+
#
|
|
144
|
+
# @return [Mailhub::Types::ContactModel]
|
|
145
|
+
def update_contact(request_options: {}, **params)
|
|
146
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
147
|
+
request_data = Mailhub::Contact::Types::UpdateContactRequest.new(params).to_h
|
|
148
|
+
non_body_param_names = %w[guid]
|
|
149
|
+
body = request_data.except(*non_body_param_names)
|
|
150
|
+
|
|
151
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
152
|
+
base_url: request_options[:base_url],
|
|
153
|
+
method: "PUT",
|
|
154
|
+
path: "v1/contacts/#{URI.encode_uri_component(params[:guid].to_s)}",
|
|
155
|
+
body: body,
|
|
156
|
+
request_options: request_options
|
|
157
|
+
)
|
|
158
|
+
begin
|
|
159
|
+
response = @client.send(request)
|
|
160
|
+
rescue Net::HTTPRequestTimeout
|
|
161
|
+
raise Mailhub::Errors::TimeoutError
|
|
162
|
+
end
|
|
163
|
+
code = response.code.to_i
|
|
164
|
+
if code.between?(200, 299)
|
|
165
|
+
Mailhub::Types::ContactModel.load(response.body)
|
|
166
|
+
else
|
|
167
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
168
|
+
raise error_class.new(response.body, code: code)
|
|
169
|
+
end
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
# @param request_options [Hash]
|
|
173
|
+
# @param params [Hash]
|
|
174
|
+
# @option request_options [String] :base_url
|
|
175
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
176
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
177
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
178
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
179
|
+
# @option params [String] :guid
|
|
180
|
+
#
|
|
181
|
+
# @example
|
|
182
|
+
# client.contact.delete_contact(guid: "guid")
|
|
183
|
+
#
|
|
184
|
+
# @return [untyped]
|
|
185
|
+
def delete_contact(request_options: {}, **params)
|
|
186
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
187
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
188
|
+
base_url: request_options[:base_url],
|
|
189
|
+
method: "DELETE",
|
|
190
|
+
path: "v1/contacts/#{URI.encode_uri_component(params[:guid].to_s)}",
|
|
191
|
+
request_options: request_options
|
|
192
|
+
)
|
|
193
|
+
begin
|
|
194
|
+
response = @client.send(request)
|
|
195
|
+
rescue Net::HTTPRequestTimeout
|
|
196
|
+
raise Mailhub::Errors::TimeoutError
|
|
197
|
+
end
|
|
198
|
+
code = response.code.to_i
|
|
199
|
+
return if code.between?(200, 299)
|
|
200
|
+
|
|
201
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
202
|
+
raise error_class.new(response.body, code: code)
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
# @param request_options [Hash]
|
|
206
|
+
# @param params [Hash]
|
|
207
|
+
# @option request_options [String] :base_url
|
|
208
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
209
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
210
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
211
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
212
|
+
# @option params [String] :guid
|
|
213
|
+
#
|
|
214
|
+
# @example
|
|
215
|
+
# client.contact.block_contact(guid: "guid")
|
|
216
|
+
#
|
|
217
|
+
# @return [untyped]
|
|
218
|
+
def block_contact(request_options: {}, **params)
|
|
219
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
220
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
221
|
+
base_url: request_options[:base_url],
|
|
222
|
+
method: "POST",
|
|
223
|
+
path: "v1/contacts/#{URI.encode_uri_component(params[:guid].to_s)}/block",
|
|
224
|
+
request_options: request_options
|
|
225
|
+
)
|
|
226
|
+
begin
|
|
227
|
+
response = @client.send(request)
|
|
228
|
+
rescue Net::HTTPRequestTimeout
|
|
229
|
+
raise Mailhub::Errors::TimeoutError
|
|
230
|
+
end
|
|
231
|
+
code = response.code.to_i
|
|
232
|
+
return if code.between?(200, 299)
|
|
233
|
+
|
|
234
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
235
|
+
raise error_class.new(response.body, code: code)
|
|
236
|
+
end
|
|
237
|
+
|
|
238
|
+
# @param request_options [Hash]
|
|
239
|
+
# @param params [Mailhub::Contact::Types::BlockContactsByGUIDRequest]
|
|
240
|
+
# @option request_options [String] :base_url
|
|
241
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
242
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
243
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
244
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
245
|
+
#
|
|
246
|
+
# @example
|
|
247
|
+
# client.contact.block_contacts
|
|
248
|
+
#
|
|
249
|
+
# @return [untyped]
|
|
250
|
+
def block_contacts(request_options: {}, **params)
|
|
251
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
252
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
253
|
+
base_url: request_options[:base_url],
|
|
254
|
+
method: "POST",
|
|
255
|
+
path: "v1/contacts/block",
|
|
256
|
+
body: Mailhub::Contact::Types::BlockContactsByGUIDRequest.new(params).to_h,
|
|
257
|
+
request_options: request_options
|
|
258
|
+
)
|
|
259
|
+
begin
|
|
260
|
+
response = @client.send(request)
|
|
261
|
+
rescue Net::HTTPRequestTimeout
|
|
262
|
+
raise Mailhub::Errors::TimeoutError
|
|
263
|
+
end
|
|
264
|
+
code = response.code.to_i
|
|
265
|
+
return if code.between?(200, 299)
|
|
266
|
+
|
|
267
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
268
|
+
raise error_class.new(response.body, code: code)
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
# @param request_options [Hash]
|
|
272
|
+
# @param params [Mailhub::Contact::Types::DeleteContactsByGUIDRequest]
|
|
273
|
+
# @option request_options [String] :base_url
|
|
274
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
275
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
276
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
277
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
278
|
+
#
|
|
279
|
+
# @example
|
|
280
|
+
# client.contact.delete_contacts
|
|
281
|
+
#
|
|
282
|
+
# @return [untyped]
|
|
283
|
+
def delete_contacts(request_options: {}, **params)
|
|
284
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
285
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
286
|
+
base_url: request_options[:base_url],
|
|
287
|
+
method: "POST",
|
|
288
|
+
path: "v1/contacts/delete",
|
|
289
|
+
body: Mailhub::Contact::Types::DeleteContactsByGUIDRequest.new(params).to_h,
|
|
290
|
+
request_options: request_options
|
|
291
|
+
)
|
|
292
|
+
begin
|
|
293
|
+
response = @client.send(request)
|
|
294
|
+
rescue Net::HTTPRequestTimeout
|
|
295
|
+
raise Mailhub::Errors::TimeoutError
|
|
296
|
+
end
|
|
297
|
+
code = response.code.to_i
|
|
298
|
+
return if code.between?(200, 299)
|
|
299
|
+
|
|
300
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
301
|
+
raise error_class.new(response.body, code: code)
|
|
302
|
+
end
|
|
303
|
+
|
|
304
|
+
# @param request_options [Hash]
|
|
305
|
+
# @param params [void]
|
|
306
|
+
# @option request_options [String] :base_url
|
|
307
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
308
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
309
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
310
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
311
|
+
#
|
|
312
|
+
# @example
|
|
313
|
+
# client.contact.import_contacts
|
|
314
|
+
#
|
|
315
|
+
# @return [Mailhub::Types::ContactImportModel]
|
|
316
|
+
def import_contacts(request_options: {}, **params)
|
|
317
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
318
|
+
body = Internal::Multipart::FormData.new
|
|
319
|
+
|
|
320
|
+
body.add_part(params[:file].to_form_data_part(name: "file")) if params[:file]
|
|
321
|
+
if params[:validate_email_domain]
|
|
322
|
+
body.add(
|
|
323
|
+
name: "validateEmailDomain",
|
|
324
|
+
value: params[:validate_email_domain]
|
|
325
|
+
)
|
|
326
|
+
end
|
|
327
|
+
|
|
328
|
+
request = Mailhub::Internal::Multipart::Request.new(
|
|
329
|
+
base_url: request_options[:base_url],
|
|
330
|
+
method: "POST",
|
|
331
|
+
path: "v1/contacts/import",
|
|
332
|
+
body: body,
|
|
333
|
+
request_options: request_options
|
|
334
|
+
)
|
|
335
|
+
begin
|
|
336
|
+
response = @client.send(request)
|
|
337
|
+
rescue Net::HTTPRequestTimeout
|
|
338
|
+
raise Mailhub::Errors::TimeoutError
|
|
339
|
+
end
|
|
340
|
+
code = response.code.to_i
|
|
341
|
+
if code.between?(200, 299)
|
|
342
|
+
Mailhub::Types::ContactImportModel.load(response.body)
|
|
343
|
+
else
|
|
344
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
345
|
+
raise error_class.new(response.body, code: code)
|
|
346
|
+
end
|
|
347
|
+
end
|
|
348
|
+
|
|
349
|
+
# @param request_options [Hash]
|
|
350
|
+
# @param params [Hash]
|
|
351
|
+
# @option request_options [String] :base_url
|
|
352
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
353
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
354
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
355
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
356
|
+
# @option params [String] :job_id
|
|
357
|
+
#
|
|
358
|
+
# @example
|
|
359
|
+
# client.contact.get_import_job(job_id: "jobId")
|
|
360
|
+
#
|
|
361
|
+
# @return [Mailhub::Types::ContactImportJobModel]
|
|
362
|
+
def get_import_job(request_options: {}, **params)
|
|
363
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
364
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
365
|
+
base_url: request_options[:base_url],
|
|
366
|
+
method: "GET",
|
|
367
|
+
path: "v1/contacts/import/#{URI.encode_uri_component(params[:job_id].to_s)}",
|
|
368
|
+
request_options: request_options
|
|
369
|
+
)
|
|
370
|
+
begin
|
|
371
|
+
response = @client.send(request)
|
|
372
|
+
rescue Net::HTTPRequestTimeout
|
|
373
|
+
raise Mailhub::Errors::TimeoutError
|
|
374
|
+
end
|
|
375
|
+
code = response.code.to_i
|
|
376
|
+
if code.between?(200, 299)
|
|
377
|
+
Mailhub::Types::ContactImportJobModel.load(response.body)
|
|
378
|
+
else
|
|
379
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
380
|
+
raise error_class.new(response.body, code: code)
|
|
381
|
+
end
|
|
382
|
+
end
|
|
383
|
+
end
|
|
384
|
+
end
|
|
385
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailhub
|
|
4
|
+
module Contact
|
|
5
|
+
module Types
|
|
6
|
+
class CreateContactRequest < Internal::Types::Model
|
|
7
|
+
field :email, -> { String }, optional: true, nullable: false
|
|
8
|
+
|
|
9
|
+
field :name, -> { String }, optional: true, nullable: false
|
|
10
|
+
|
|
11
|
+
field :fields, -> { Internal::Types::Hash[String, Object] }, optional: true, nullable: false
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailhub
|
|
4
|
+
module Contact
|
|
5
|
+
module Types
|
|
6
|
+
class GetContactsRequest < Internal::Types::Model
|
|
7
|
+
field :search, -> { String }, optional: true, nullable: false
|
|
8
|
+
|
|
9
|
+
field :segment_id, -> { Integer }, optional: true, nullable: false, api_name: "segmentId"
|
|
10
|
+
|
|
11
|
+
field :sort_by, -> { String }, optional: true, nullable: false, api_name: "sortBy"
|
|
12
|
+
|
|
13
|
+
field :sort_direction, -> { String }, optional: true, nullable: false, api_name: "sortDirection"
|
|
14
|
+
|
|
15
|
+
field :page_size, -> { Integer }, optional: true, nullable: false, api_name: "pageSize"
|
|
16
|
+
|
|
17
|
+
field :cursor, -> { String }, optional: true, nullable: false
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailhub
|
|
4
|
+
module Contact
|
|
5
|
+
module Types
|
|
6
|
+
class UpdateContactRequest < Internal::Types::Model
|
|
7
|
+
field :guid, -> { String }, optional: false, nullable: false
|
|
8
|
+
|
|
9
|
+
field :email, -> { String }, optional: true, nullable: false
|
|
10
|
+
|
|
11
|
+
field :name, -> { String }, optional: true, nullable: false
|
|
12
|
+
|
|
13
|
+
field :fields, -> { Internal::Types::Hash[String, Object] }, optional: true, nullable: false
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|