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,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailhub
|
|
4
|
+
module Message
|
|
5
|
+
module Types
|
|
6
|
+
class GetMessagesRequest < Internal::Types::Model
|
|
7
|
+
field :search, -> { String }, optional: true, nullable: false
|
|
8
|
+
|
|
9
|
+
field :status, -> { String }, optional: true, nullable: false
|
|
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,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailhub
|
|
4
|
+
module Message
|
|
5
|
+
module Types
|
|
6
|
+
class SendMessageRequest < Internal::Types::Model
|
|
7
|
+
field :to_email, -> { String }, optional: true, nullable: false, api_name: "toEmail"
|
|
8
|
+
|
|
9
|
+
field :from_email, -> { String }, optional: true, nullable: false, api_name: "fromEmail"
|
|
10
|
+
|
|
11
|
+
field :subject, -> { String }, optional: true, nullable: false
|
|
12
|
+
|
|
13
|
+
field :body, -> { String }, optional: true, nullable: false
|
|
14
|
+
|
|
15
|
+
field :template_code, -> { String }, optional: true, nullable: false, api_name: "templateCode"
|
|
16
|
+
|
|
17
|
+
field :template_data, -> { Internal::Types::Hash[String, Object] }, optional: true, nullable: false, api_name: "templateData"
|
|
18
|
+
|
|
19
|
+
field :send_at, -> { String }, optional: true, nullable: false, api_name: "sendAt"
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailhub
|
|
4
|
+
module Segment
|
|
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 [String, nil] :sort_by
|
|
22
|
+
# @option params [String, nil] :sort_direction
|
|
23
|
+
# @option params [Integer, nil] :page_size
|
|
24
|
+
# @option params [Integer, nil] :page_index
|
|
25
|
+
#
|
|
26
|
+
# @example
|
|
27
|
+
# client.segment.get_segments
|
|
28
|
+
#
|
|
29
|
+
# @return [Mailhub::Types::SegmentModelPagedResult]
|
|
30
|
+
def get_segments(request_options: {}, **params)
|
|
31
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
32
|
+
query_params = {}
|
|
33
|
+
query_params["search"] = params[:search] if params.key?(:search)
|
|
34
|
+
query_params["sortBy"] = params[:sort_by] if params.key?(:sort_by)
|
|
35
|
+
query_params["sortDirection"] = params[:sort_direction] if params.key?(:sort_direction)
|
|
36
|
+
query_params["pageSize"] = params[:page_size] if params.key?(:page_size)
|
|
37
|
+
query_params["pageIndex"] = params[:page_index] if params.key?(:page_index)
|
|
38
|
+
|
|
39
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
40
|
+
base_url: request_options[:base_url],
|
|
41
|
+
method: "GET",
|
|
42
|
+
path: "v1/segments",
|
|
43
|
+
query: query_params,
|
|
44
|
+
request_options: request_options
|
|
45
|
+
)
|
|
46
|
+
begin
|
|
47
|
+
response = @client.send(request)
|
|
48
|
+
rescue Net::HTTPRequestTimeout
|
|
49
|
+
raise Mailhub::Errors::TimeoutError
|
|
50
|
+
end
|
|
51
|
+
code = response.code.to_i
|
|
52
|
+
if code.between?(200, 299)
|
|
53
|
+
Mailhub::Types::SegmentModelPagedResult.load(response.body)
|
|
54
|
+
else
|
|
55
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
56
|
+
raise error_class.new(response.body, code: code)
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# @param request_options [Hash]
|
|
61
|
+
# @param params [Mailhub::Segment::Types::CreateSegmentRequest]
|
|
62
|
+
# @option request_options [String] :base_url
|
|
63
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
64
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
65
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
66
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
67
|
+
#
|
|
68
|
+
# @example
|
|
69
|
+
# client.segment.create_segment
|
|
70
|
+
#
|
|
71
|
+
# @return [Mailhub::Types::SegmentModel]
|
|
72
|
+
def create_segment(request_options: {}, **params)
|
|
73
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
74
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
75
|
+
base_url: request_options[:base_url],
|
|
76
|
+
method: "POST",
|
|
77
|
+
path: "v1/segments",
|
|
78
|
+
body: Mailhub::Segment::Types::CreateSegmentRequest.new(params).to_h,
|
|
79
|
+
request_options: request_options
|
|
80
|
+
)
|
|
81
|
+
begin
|
|
82
|
+
response = @client.send(request)
|
|
83
|
+
rescue Net::HTTPRequestTimeout
|
|
84
|
+
raise Mailhub::Errors::TimeoutError
|
|
85
|
+
end
|
|
86
|
+
code = response.code.to_i
|
|
87
|
+
if code.between?(200, 299)
|
|
88
|
+
Mailhub::Types::SegmentModel.load(response.body)
|
|
89
|
+
else
|
|
90
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
91
|
+
raise error_class.new(response.body, code: code)
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# @param request_options [Hash]
|
|
96
|
+
# @param params [Hash]
|
|
97
|
+
# @option request_options [String] :base_url
|
|
98
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
99
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
100
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
101
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
102
|
+
# @option params [String] :code
|
|
103
|
+
#
|
|
104
|
+
# @example
|
|
105
|
+
# client.segment.get_segment(code: "code")
|
|
106
|
+
#
|
|
107
|
+
# @return [Mailhub::Types::SegmentModel]
|
|
108
|
+
def get_segment(request_options: {}, **params)
|
|
109
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
110
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
111
|
+
base_url: request_options[:base_url],
|
|
112
|
+
method: "GET",
|
|
113
|
+
path: "v1/segments/#{URI.encode_uri_component(params[:code].to_s)}",
|
|
114
|
+
request_options: request_options
|
|
115
|
+
)
|
|
116
|
+
begin
|
|
117
|
+
response = @client.send(request)
|
|
118
|
+
rescue Net::HTTPRequestTimeout
|
|
119
|
+
raise Mailhub::Errors::TimeoutError
|
|
120
|
+
end
|
|
121
|
+
code = response.code.to_i
|
|
122
|
+
if code.between?(200, 299)
|
|
123
|
+
Mailhub::Types::SegmentModel.load(response.body)
|
|
124
|
+
else
|
|
125
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
126
|
+
raise error_class.new(response.body, code: code)
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
# @param request_options [Hash]
|
|
131
|
+
# @param params [Mailhub::Segment::Types::UpdateSegmentRequest]
|
|
132
|
+
# @option request_options [String] :base_url
|
|
133
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
134
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
135
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
136
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
137
|
+
# @option params [String] :code
|
|
138
|
+
#
|
|
139
|
+
# @example
|
|
140
|
+
# client.segment.update_segment(code: "code")
|
|
141
|
+
#
|
|
142
|
+
# @return [Mailhub::Types::SegmentModel]
|
|
143
|
+
def update_segment(request_options: {}, **params)
|
|
144
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
145
|
+
request_data = Mailhub::Segment::Types::UpdateSegmentRequest.new(params).to_h
|
|
146
|
+
non_body_param_names = %w[code]
|
|
147
|
+
body = request_data.except(*non_body_param_names)
|
|
148
|
+
|
|
149
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
150
|
+
base_url: request_options[:base_url],
|
|
151
|
+
method: "PUT",
|
|
152
|
+
path: "v1/segments/#{URI.encode_uri_component(params[:code].to_s)}",
|
|
153
|
+
body: body,
|
|
154
|
+
request_options: request_options
|
|
155
|
+
)
|
|
156
|
+
begin
|
|
157
|
+
response = @client.send(request)
|
|
158
|
+
rescue Net::HTTPRequestTimeout
|
|
159
|
+
raise Mailhub::Errors::TimeoutError
|
|
160
|
+
end
|
|
161
|
+
code = response.code.to_i
|
|
162
|
+
if code.between?(200, 299)
|
|
163
|
+
Mailhub::Types::SegmentModel.load(response.body)
|
|
164
|
+
else
|
|
165
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
166
|
+
raise error_class.new(response.body, code: code)
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
# @param request_options [Hash]
|
|
171
|
+
# @param params [Hash]
|
|
172
|
+
# @option request_options [String] :base_url
|
|
173
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
174
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
175
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
176
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
177
|
+
# @option params [String] :code
|
|
178
|
+
#
|
|
179
|
+
# @example
|
|
180
|
+
# client.segment.delete_segment(code: "code")
|
|
181
|
+
#
|
|
182
|
+
# @return [untyped]
|
|
183
|
+
def delete_segment(request_options: {}, **params)
|
|
184
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
185
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
186
|
+
base_url: request_options[:base_url],
|
|
187
|
+
method: "DELETE",
|
|
188
|
+
path: "v1/segments/#{URI.encode_uri_component(params[:code].to_s)}",
|
|
189
|
+
request_options: request_options
|
|
190
|
+
)
|
|
191
|
+
begin
|
|
192
|
+
response = @client.send(request)
|
|
193
|
+
rescue Net::HTTPRequestTimeout
|
|
194
|
+
raise Mailhub::Errors::TimeoutError
|
|
195
|
+
end
|
|
196
|
+
code = response.code.to_i
|
|
197
|
+
return if code.between?(200, 299)
|
|
198
|
+
|
|
199
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
200
|
+
raise error_class.new(response.body, code: code)
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
# @param request_options [Hash]
|
|
204
|
+
# @param params [Mailhub::Segment::Types::DeleteSegmentsByCodeRequest]
|
|
205
|
+
# @option request_options [String] :base_url
|
|
206
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
207
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
208
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
209
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
210
|
+
#
|
|
211
|
+
# @example
|
|
212
|
+
# client.segment.delete_segments
|
|
213
|
+
#
|
|
214
|
+
# @return [untyped]
|
|
215
|
+
def delete_segments(request_options: {}, **params)
|
|
216
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
217
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
218
|
+
base_url: request_options[:base_url],
|
|
219
|
+
method: "POST",
|
|
220
|
+
path: "v1/segments/delete",
|
|
221
|
+
body: Mailhub::Segment::Types::DeleteSegmentsByCodeRequest.new(params).to_h,
|
|
222
|
+
request_options: request_options
|
|
223
|
+
)
|
|
224
|
+
begin
|
|
225
|
+
response = @client.send(request)
|
|
226
|
+
rescue Net::HTTPRequestTimeout
|
|
227
|
+
raise Mailhub::Errors::TimeoutError
|
|
228
|
+
end
|
|
229
|
+
code = response.code.to_i
|
|
230
|
+
return if code.between?(200, 299)
|
|
231
|
+
|
|
232
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
233
|
+
raise error_class.new(response.body, code: code)
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
# @param request_options [Hash]
|
|
237
|
+
# @param params [Mailhub::Segment::Types::GetSegmentPreviewRequest]
|
|
238
|
+
# @option request_options [String] :base_url
|
|
239
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
240
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
241
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
242
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
243
|
+
#
|
|
244
|
+
# @example
|
|
245
|
+
# client.segment.preview_segment
|
|
246
|
+
#
|
|
247
|
+
# @return [Mailhub::Types::PreviewSegmentModel]
|
|
248
|
+
def preview_segment(request_options: {}, **params)
|
|
249
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
250
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
251
|
+
base_url: request_options[:base_url],
|
|
252
|
+
method: "POST",
|
|
253
|
+
path: "v1/segments/preview",
|
|
254
|
+
body: Mailhub::Segment::Types::GetSegmentPreviewRequest.new(params).to_h,
|
|
255
|
+
request_options: request_options
|
|
256
|
+
)
|
|
257
|
+
begin
|
|
258
|
+
response = @client.send(request)
|
|
259
|
+
rescue Net::HTTPRequestTimeout
|
|
260
|
+
raise Mailhub::Errors::TimeoutError
|
|
261
|
+
end
|
|
262
|
+
code = response.code.to_i
|
|
263
|
+
if code.between?(200, 299)
|
|
264
|
+
Mailhub::Types::PreviewSegmentModel.load(response.body)
|
|
265
|
+
else
|
|
266
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
267
|
+
raise error_class.new(response.body, code: code)
|
|
268
|
+
end
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
# @param request_options [Hash]
|
|
272
|
+
# @param params [Mailhub::Segment::Types::GetSegmentsUnionPreviewByCodeRequest]
|
|
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.segment.preview_segments_union
|
|
281
|
+
#
|
|
282
|
+
# @return [Mailhub::Types::PreviewSegmentModel]
|
|
283
|
+
def preview_segments_union(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/segments/preview/union",
|
|
289
|
+
body: Mailhub::Segment::Types::GetSegmentsUnionPreviewByCodeRequest.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
|
+
if code.between?(200, 299)
|
|
299
|
+
Mailhub::Types::PreviewSegmentModel.load(response.body)
|
|
300
|
+
else
|
|
301
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
302
|
+
raise error_class.new(response.body, code: code)
|
|
303
|
+
end
|
|
304
|
+
end
|
|
305
|
+
|
|
306
|
+
# @param request_options [Hash]
|
|
307
|
+
# @param params [Mailhub::Segment::Types::GetSegmentContactsRequest]
|
|
308
|
+
# @option request_options [String] :base_url
|
|
309
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
310
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
311
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
312
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
313
|
+
#
|
|
314
|
+
# @example
|
|
315
|
+
# client.segment.query_segment_contacts
|
|
316
|
+
#
|
|
317
|
+
# @return [Mailhub::Types::ContactModelPagedResult]
|
|
318
|
+
def query_segment_contacts(request_options: {}, **params)
|
|
319
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
320
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
321
|
+
base_url: request_options[:base_url],
|
|
322
|
+
method: "POST",
|
|
323
|
+
path: "v1/segments/preview/contacts",
|
|
324
|
+
body: Mailhub::Segment::Types::GetSegmentContactsRequest.new(params).to_h,
|
|
325
|
+
request_options: request_options
|
|
326
|
+
)
|
|
327
|
+
begin
|
|
328
|
+
response = @client.send(request)
|
|
329
|
+
rescue Net::HTTPRequestTimeout
|
|
330
|
+
raise Mailhub::Errors::TimeoutError
|
|
331
|
+
end
|
|
332
|
+
code = response.code.to_i
|
|
333
|
+
if code.between?(200, 299)
|
|
334
|
+
Mailhub::Types::ContactModelPagedResult.load(response.body)
|
|
335
|
+
else
|
|
336
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
337
|
+
raise error_class.new(response.body, code: code)
|
|
338
|
+
end
|
|
339
|
+
end
|
|
340
|
+
|
|
341
|
+
# @param request_options [Hash]
|
|
342
|
+
# @param params [Hash]
|
|
343
|
+
# @option request_options [String] :base_url
|
|
344
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
345
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
346
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
347
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
348
|
+
# @option params [String] :code
|
|
349
|
+
#
|
|
350
|
+
# @example
|
|
351
|
+
# client.segment.sync_segment(code: "code")
|
|
352
|
+
#
|
|
353
|
+
# @return [Mailhub::Types::SegmentModel]
|
|
354
|
+
def sync_segment(request_options: {}, **params)
|
|
355
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
356
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
357
|
+
base_url: request_options[:base_url],
|
|
358
|
+
method: "POST",
|
|
359
|
+
path: "v1/segments/#{URI.encode_uri_component(params[:code].to_s)}/sync",
|
|
360
|
+
request_options: request_options
|
|
361
|
+
)
|
|
362
|
+
begin
|
|
363
|
+
response = @client.send(request)
|
|
364
|
+
rescue Net::HTTPRequestTimeout
|
|
365
|
+
raise Mailhub::Errors::TimeoutError
|
|
366
|
+
end
|
|
367
|
+
code = response.code.to_i
|
|
368
|
+
if code.between?(200, 299)
|
|
369
|
+
Mailhub::Types::SegmentModel.load(response.body)
|
|
370
|
+
else
|
|
371
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
372
|
+
raise error_class.new(response.body, code: code)
|
|
373
|
+
end
|
|
374
|
+
end
|
|
375
|
+
end
|
|
376
|
+
end
|
|
377
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailhub
|
|
4
|
+
module Segment
|
|
5
|
+
module Types
|
|
6
|
+
class CreateSegmentRequest < Internal::Types::Model
|
|
7
|
+
field :name, -> { String }, optional: true, nullable: false
|
|
8
|
+
|
|
9
|
+
field :filter, -> { Mailhub::Types::SegmentFilterModel }, optional: true, nullable: false
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailhub
|
|
4
|
+
module Segment
|
|
5
|
+
module Types
|
|
6
|
+
class DeleteSegmentsByCodeRequest < Internal::Types::Model
|
|
7
|
+
field :all, -> { Internal::Types::Boolean }, optional: true, nullable: false
|
|
8
|
+
|
|
9
|
+
field :codes, -> { Internal::Types::Array[String] }, optional: true, nullable: false
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailhub
|
|
4
|
+
module Segment
|
|
5
|
+
module Types
|
|
6
|
+
class GetSegmentContactsRequest < Internal::Types::Model
|
|
7
|
+
field :filter, -> { Mailhub::Types::SegmentFilterModel }, optional: true, nullable: false
|
|
8
|
+
|
|
9
|
+
field :page_index, -> { Integer }, optional: true, nullable: false, api_name: "pageIndex"
|
|
10
|
+
|
|
11
|
+
field :page_size, -> { Integer }, optional: true, nullable: false, api_name: "pageSize"
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailhub
|
|
4
|
+
module Segment
|
|
5
|
+
module Types
|
|
6
|
+
class GetSegmentsRequest < Internal::Types::Model
|
|
7
|
+
field :search, -> { String }, optional: true, nullable: false
|
|
8
|
+
|
|
9
|
+
field :sort_by, -> { String }, optional: true, nullable: false, api_name: "sortBy"
|
|
10
|
+
|
|
11
|
+
field :sort_direction, -> { String }, optional: true, nullable: false, api_name: "sortDirection"
|
|
12
|
+
|
|
13
|
+
field :page_size, -> { Integer }, optional: true, nullable: false, api_name: "pageSize"
|
|
14
|
+
|
|
15
|
+
field :page_index, -> { Integer }, optional: true, nullable: false, api_name: "pageIndex"
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailhub
|
|
4
|
+
module Segment
|
|
5
|
+
module Types
|
|
6
|
+
class GetSegmentsUnionPreviewByCodeRequest < Internal::Types::Model
|
|
7
|
+
field :segment_codes, -> { Internal::Types::Array[String] }, optional: true, nullable: false, api_name: "segmentCodes"
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailhub
|
|
4
|
+
module Segment
|
|
5
|
+
module Types
|
|
6
|
+
class UpdateSegmentRequest < Internal::Types::Model
|
|
7
|
+
field :code, -> { String }, optional: false, nullable: false
|
|
8
|
+
|
|
9
|
+
field :name, -> { String }, optional: true, nullable: false
|
|
10
|
+
|
|
11
|
+
field :filter, -> { Mailhub::Types::SegmentFilterModel }, optional: true, nullable: false
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|