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,116 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailhub
|
|
4
|
+
module Internal
|
|
5
|
+
module Types
|
|
6
|
+
# Utilities for dealing with and checking types
|
|
7
|
+
module Utils
|
|
8
|
+
# Wraps a type into a type function
|
|
9
|
+
#
|
|
10
|
+
# @param type [Proc, Object]
|
|
11
|
+
# @return [Proc]
|
|
12
|
+
def self.wrap_type(type)
|
|
13
|
+
case type
|
|
14
|
+
when Proc
|
|
15
|
+
type
|
|
16
|
+
else
|
|
17
|
+
-> { type }
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Resolves a type or type function into a type
|
|
22
|
+
#
|
|
23
|
+
# @param type [Proc, Object]
|
|
24
|
+
# @return [Object]
|
|
25
|
+
def self.unwrap_type(type)
|
|
26
|
+
type.is_a?(Proc) ? type.call : type
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.coerce(target, value, strict: false)
|
|
30
|
+
type = unwrap_type(target)
|
|
31
|
+
|
|
32
|
+
case type
|
|
33
|
+
in Array
|
|
34
|
+
case value
|
|
35
|
+
when ::Array
|
|
36
|
+
return type.coerce(value, strict: strict)
|
|
37
|
+
when Set, ::Hash
|
|
38
|
+
return coerce(type, value.to_a)
|
|
39
|
+
end
|
|
40
|
+
in Hash
|
|
41
|
+
case value
|
|
42
|
+
when ::Hash
|
|
43
|
+
return type.coerce(value, strict: strict)
|
|
44
|
+
when ::Array
|
|
45
|
+
return coerce(type, value.to_h)
|
|
46
|
+
end
|
|
47
|
+
in ->(t) { t <= NilClass }
|
|
48
|
+
return nil
|
|
49
|
+
in ->(t) { t <= String }
|
|
50
|
+
case value
|
|
51
|
+
when String, Symbol, Numeric, TrueClass, FalseClass
|
|
52
|
+
return value.to_s
|
|
53
|
+
end
|
|
54
|
+
in ->(t) { t <= Symbol }
|
|
55
|
+
case value
|
|
56
|
+
when Symbol, String
|
|
57
|
+
return value.to_sym
|
|
58
|
+
end
|
|
59
|
+
in ->(t) { t <= Integer }
|
|
60
|
+
case value
|
|
61
|
+
when Numeric, String, Time
|
|
62
|
+
return value.to_i
|
|
63
|
+
end
|
|
64
|
+
in ->(t) { t <= Float }
|
|
65
|
+
case value
|
|
66
|
+
when Numeric, Time, String
|
|
67
|
+
return value.to_f
|
|
68
|
+
end
|
|
69
|
+
in ->(t) { t <= Model }
|
|
70
|
+
case value
|
|
71
|
+
when type
|
|
72
|
+
return value
|
|
73
|
+
when ::Hash
|
|
74
|
+
return type.coerce(value, strict: strict)
|
|
75
|
+
end
|
|
76
|
+
in Module
|
|
77
|
+
case type
|
|
78
|
+
in ->(t) {
|
|
79
|
+
t.singleton_class.included_modules.include?(Enum) ||
|
|
80
|
+
t.singleton_class.included_modules.include?(Union)
|
|
81
|
+
}
|
|
82
|
+
return type.coerce(value, strict: strict)
|
|
83
|
+
else
|
|
84
|
+
value # rubocop:disable Lint/Void
|
|
85
|
+
end
|
|
86
|
+
else
|
|
87
|
+
value # rubocop:disable Lint/Void
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
raise Errors::TypeError, "cannot coerce value of type `#{value.class}` to `#{target}`" if strict
|
|
91
|
+
|
|
92
|
+
value
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def self.symbolize_keys(hash)
|
|
96
|
+
hash.transform_keys(&:to_sym)
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# Converts camelCase keys to snake_case symbols
|
|
100
|
+
# This allows SDK methods to accept both snake_case and camelCase keys
|
|
101
|
+
# e.g., { refundMethod: ... } becomes { refund_method: ... }
|
|
102
|
+
#
|
|
103
|
+
# @param hash [Hash]
|
|
104
|
+
# @return [Hash]
|
|
105
|
+
def self.normalize_keys(hash)
|
|
106
|
+
hash.transform_keys do |key|
|
|
107
|
+
key_str = key.to_s
|
|
108
|
+
# Convert camelCase to snake_case
|
|
109
|
+
snake_case = key_str.gsub(/([a-z\d])([A-Z])/, '\1_\2').downcase
|
|
110
|
+
snake_case.to_sym
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailhub
|
|
4
|
+
module Media
|
|
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.media.get_medias
|
|
28
|
+
#
|
|
29
|
+
# @return [Mailhub::Types::MediaModelPagedResult]
|
|
30
|
+
def get_medias(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/media",
|
|
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::MediaModelPagedResult.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 [void]
|
|
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.media.upload_media
|
|
70
|
+
#
|
|
71
|
+
# @return [Mailhub::Types::MediaModel]
|
|
72
|
+
def upload_media(request_options: {}, **params)
|
|
73
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
74
|
+
body = Internal::Multipart::FormData.new
|
|
75
|
+
|
|
76
|
+
body.add_part(params[:file].to_form_data_part(name: "file")) if params[:file]
|
|
77
|
+
|
|
78
|
+
request = Mailhub::Internal::Multipart::Request.new(
|
|
79
|
+
base_url: request_options[:base_url],
|
|
80
|
+
method: "POST",
|
|
81
|
+
path: "v1/media",
|
|
82
|
+
body: body,
|
|
83
|
+
request_options: request_options
|
|
84
|
+
)
|
|
85
|
+
begin
|
|
86
|
+
response = @client.send(request)
|
|
87
|
+
rescue Net::HTTPRequestTimeout
|
|
88
|
+
raise Mailhub::Errors::TimeoutError
|
|
89
|
+
end
|
|
90
|
+
code = response.code.to_i
|
|
91
|
+
if code.between?(200, 299)
|
|
92
|
+
Mailhub::Types::MediaModel.load(response.body)
|
|
93
|
+
else
|
|
94
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
95
|
+
raise error_class.new(response.body, code: code)
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# @param request_options [Hash]
|
|
100
|
+
# @param params [Hash]
|
|
101
|
+
# @option request_options [String] :base_url
|
|
102
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
103
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
104
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
105
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
106
|
+
# @option params [String] :code
|
|
107
|
+
#
|
|
108
|
+
# @example
|
|
109
|
+
# client.media.get_media(code: "code")
|
|
110
|
+
#
|
|
111
|
+
# @return [Mailhub::Types::MediaModel]
|
|
112
|
+
def get_media(request_options: {}, **params)
|
|
113
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
114
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
115
|
+
base_url: request_options[:base_url],
|
|
116
|
+
method: "GET",
|
|
117
|
+
path: "v1/media/#{URI.encode_uri_component(params[:code].to_s)}",
|
|
118
|
+
request_options: request_options
|
|
119
|
+
)
|
|
120
|
+
begin
|
|
121
|
+
response = @client.send(request)
|
|
122
|
+
rescue Net::HTTPRequestTimeout
|
|
123
|
+
raise Mailhub::Errors::TimeoutError
|
|
124
|
+
end
|
|
125
|
+
code = response.code.to_i
|
|
126
|
+
if code.between?(200, 299)
|
|
127
|
+
Mailhub::Types::MediaModel.load(response.body)
|
|
128
|
+
else
|
|
129
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
130
|
+
raise error_class.new(response.body, code: code)
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
# @param request_options [Hash]
|
|
135
|
+
# @param params [Mailhub::Media::Types::UpdateMediaRequest]
|
|
136
|
+
# @option request_options [String] :base_url
|
|
137
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
138
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
139
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
140
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
141
|
+
# @option params [String] :code
|
|
142
|
+
#
|
|
143
|
+
# @example
|
|
144
|
+
# client.media.update_media(code: "code")
|
|
145
|
+
#
|
|
146
|
+
# @return [Mailhub::Types::MediaModel]
|
|
147
|
+
def update_media(request_options: {}, **params)
|
|
148
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
149
|
+
request_data = Mailhub::Media::Types::UpdateMediaRequest.new(params).to_h
|
|
150
|
+
non_body_param_names = %w[code]
|
|
151
|
+
body = request_data.except(*non_body_param_names)
|
|
152
|
+
|
|
153
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
154
|
+
base_url: request_options[:base_url],
|
|
155
|
+
method: "PUT",
|
|
156
|
+
path: "v1/media/#{URI.encode_uri_component(params[:code].to_s)}",
|
|
157
|
+
body: body,
|
|
158
|
+
request_options: request_options
|
|
159
|
+
)
|
|
160
|
+
begin
|
|
161
|
+
response = @client.send(request)
|
|
162
|
+
rescue Net::HTTPRequestTimeout
|
|
163
|
+
raise Mailhub::Errors::TimeoutError
|
|
164
|
+
end
|
|
165
|
+
code = response.code.to_i
|
|
166
|
+
if code.between?(200, 299)
|
|
167
|
+
Mailhub::Types::MediaModel.load(response.body)
|
|
168
|
+
else
|
|
169
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
170
|
+
raise error_class.new(response.body, code: code)
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
# @param request_options [Hash]
|
|
175
|
+
# @param params [Hash]
|
|
176
|
+
# @option request_options [String] :base_url
|
|
177
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
178
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
179
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
180
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
181
|
+
# @option params [String] :code
|
|
182
|
+
#
|
|
183
|
+
# @example
|
|
184
|
+
# client.media.delete_media(code: "code")
|
|
185
|
+
#
|
|
186
|
+
# @return [untyped]
|
|
187
|
+
def delete_media(request_options: {}, **params)
|
|
188
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
189
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
190
|
+
base_url: request_options[:base_url],
|
|
191
|
+
method: "DELETE",
|
|
192
|
+
path: "v1/media/#{URI.encode_uri_component(params[:code].to_s)}",
|
|
193
|
+
request_options: request_options
|
|
194
|
+
)
|
|
195
|
+
begin
|
|
196
|
+
response = @client.send(request)
|
|
197
|
+
rescue Net::HTTPRequestTimeout
|
|
198
|
+
raise Mailhub::Errors::TimeoutError
|
|
199
|
+
end
|
|
200
|
+
code = response.code.to_i
|
|
201
|
+
return if code.between?(200, 299)
|
|
202
|
+
|
|
203
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
204
|
+
raise error_class.new(response.body, code: code)
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
# @param request_options [Hash]
|
|
208
|
+
# @param params [Hash]
|
|
209
|
+
# @option request_options [String] :base_url
|
|
210
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
211
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
212
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
213
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
214
|
+
# @option params [String] :code
|
|
215
|
+
#
|
|
216
|
+
# @example
|
|
217
|
+
# client.media.download_media(code: "code")
|
|
218
|
+
#
|
|
219
|
+
# @return [untyped]
|
|
220
|
+
def download_media(request_options: {}, **params)
|
|
221
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
222
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
223
|
+
base_url: request_options[:base_url],
|
|
224
|
+
method: "GET",
|
|
225
|
+
path: "v1/media/#{URI.encode_uri_component(params[:code].to_s)}/download",
|
|
226
|
+
request_options: request_options
|
|
227
|
+
)
|
|
228
|
+
begin
|
|
229
|
+
response = @client.send(request)
|
|
230
|
+
rescue Net::HTTPRequestTimeout
|
|
231
|
+
raise Mailhub::Errors::TimeoutError
|
|
232
|
+
end
|
|
233
|
+
code = response.code.to_i
|
|
234
|
+
return if code.between?(200, 299)
|
|
235
|
+
|
|
236
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
237
|
+
raise error_class.new(response.body, code: code)
|
|
238
|
+
end
|
|
239
|
+
end
|
|
240
|
+
end
|
|
241
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailhub
|
|
4
|
+
module Media
|
|
5
|
+
module Types
|
|
6
|
+
class GetMediasRequest < 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,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailhub
|
|
4
|
+
module Media
|
|
5
|
+
module Types
|
|
6
|
+
class UpdateMediaRequest < Internal::Types::Model
|
|
7
|
+
field :code, -> { String }, optional: false, nullable: false
|
|
8
|
+
|
|
9
|
+
field :original_file_name, -> { String }, optional: true, nullable: false, api_name: "originalFileName"
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailhub
|
|
4
|
+
module Message
|
|
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] :status
|
|
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.message.get_messages
|
|
29
|
+
#
|
|
30
|
+
# @return [Mailhub::Types::MessageModelCursorPagedResult]
|
|
31
|
+
def get_messages(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["status"] = params[:status] if params.key?(:status)
|
|
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/messages",
|
|
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::MessageModelCursorPagedResult.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 [Hash]
|
|
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
|
+
# @option params [String] :guid
|
|
70
|
+
#
|
|
71
|
+
# @example
|
|
72
|
+
# client.message.get_message(guid: "guid")
|
|
73
|
+
#
|
|
74
|
+
# @return [Mailhub::Types::MessageModel]
|
|
75
|
+
def get_message(request_options: {}, **params)
|
|
76
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
77
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
78
|
+
base_url: request_options[:base_url],
|
|
79
|
+
method: "GET",
|
|
80
|
+
path: "v1/messages/#{URI.encode_uri_component(params[:guid].to_s)}",
|
|
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::MessageModel.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.message.get_message_events(guid: "guid")
|
|
108
|
+
#
|
|
109
|
+
# @return [Array[Mailhub::Types::MessageEventModel]]
|
|
110
|
+
def get_message_events(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/messages/#{URI.encode_uri_component(params[:guid].to_s)}/events",
|
|
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
|
+
return if code.between?(200, 299)
|
|
125
|
+
|
|
126
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
127
|
+
raise error_class.new(response.body, code: code)
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
# @param request_options [Hash]
|
|
131
|
+
# @param params [Mailhub::Message::Types::SendMessageRequest]
|
|
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
|
+
#
|
|
138
|
+
# @example
|
|
139
|
+
# client.message.send_message
|
|
140
|
+
#
|
|
141
|
+
# @return [Mailhub::Types::MessageModel]
|
|
142
|
+
def send_message(request_options: {}, **params)
|
|
143
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
144
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
145
|
+
base_url: request_options[:base_url],
|
|
146
|
+
method: "POST",
|
|
147
|
+
path: "v1/messages/send",
|
|
148
|
+
body: Mailhub::Message::Types::SendMessageRequest.new(params).to_h,
|
|
149
|
+
request_options: request_options
|
|
150
|
+
)
|
|
151
|
+
begin
|
|
152
|
+
response = @client.send(request)
|
|
153
|
+
rescue Net::HTTPRequestTimeout
|
|
154
|
+
raise Mailhub::Errors::TimeoutError
|
|
155
|
+
end
|
|
156
|
+
code = response.code.to_i
|
|
157
|
+
if code.between?(200, 299)
|
|
158
|
+
Mailhub::Types::MessageModel.load(response.body)
|
|
159
|
+
else
|
|
160
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
161
|
+
raise error_class.new(response.body, code: code)
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
# @param request_options [Hash]
|
|
166
|
+
# @param params [Hash]
|
|
167
|
+
# @option request_options [String] :base_url
|
|
168
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
169
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
170
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
171
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
172
|
+
# @option params [String] :guid
|
|
173
|
+
#
|
|
174
|
+
# @example
|
|
175
|
+
# client.message.cancel_message(guid: "guid")
|
|
176
|
+
#
|
|
177
|
+
# @return [Mailhub::Types::MessageModel]
|
|
178
|
+
def cancel_message(request_options: {}, **params)
|
|
179
|
+
params = Mailhub::Internal::Types::Utils.normalize_keys(params)
|
|
180
|
+
request = Mailhub::Internal::JSON::Request.new(
|
|
181
|
+
base_url: request_options[:base_url],
|
|
182
|
+
method: "PUT",
|
|
183
|
+
path: "v1/messages/#{URI.encode_uri_component(params[:guid].to_s)}/cancel",
|
|
184
|
+
request_options: request_options
|
|
185
|
+
)
|
|
186
|
+
begin
|
|
187
|
+
response = @client.send(request)
|
|
188
|
+
rescue Net::HTTPRequestTimeout
|
|
189
|
+
raise Mailhub::Errors::TimeoutError
|
|
190
|
+
end
|
|
191
|
+
code = response.code.to_i
|
|
192
|
+
if code.between?(200, 299)
|
|
193
|
+
Mailhub::Types::MessageModel.load(response.body)
|
|
194
|
+
else
|
|
195
|
+
error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
|
|
196
|
+
raise error_class.new(response.body, code: code)
|
|
197
|
+
end
|
|
198
|
+
end
|
|
199
|
+
end
|
|
200
|
+
end
|
|
201
|
+
end
|