Class: Wavix::SmsAndMms::Messages::Client
- Inherits:
-
Object
- Object
- Wavix::SmsAndMms::Messages::Client
- Defined in:
- lib/wavix/sms_and_mms/messages/client.rb
Instance Method Summary collapse
-
#get(request_options: {}, **params) ⇒ Wavix::SmsAndMms::Messages::Types::GetMessagesResponse
Returns the SMS or MMS message identified by
id, including its delivery status and content. - #initialize(client:) ⇒ void constructor
-
#list(request_options: {}, **params) ⇒ Wavix::SmsAndMms::Messages::Types::ListMessagesResponse
Returns a paginated list of SMS and MMS messages for the authenticated account, filtered by direction, date, and other criteria.
-
#list_all(request_options: {}, **params) ⇒ String
Streams matching SMS and MMS messages as newline-delimited JSON (NDJSON), one message per line, for bulk export.
-
#send_(request_options: {}, **params) ⇒ Wavix::Types::SendMessagesResponse
Sends an SMS or MMS message.
Constructor Details
#initialize(client:) ⇒ void
10 11 12 |
# File 'lib/wavix/sms_and_mms/messages/client.rb', line 10 def initialize(client:) @client = client end |
Instance Method Details
#get(request_options: {}, **params) ⇒ Wavix::SmsAndMms::Messages::Types::GetMessagesResponse
Returns the SMS or MMS message identified by id, including its delivery status and content.
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/wavix/sms_and_mms/messages/client.rb', line 119 def get(request_options: {}, **params) params = Wavix::Internal::Types::Utils.normalize_keys(params) request = Wavix::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "v3/messages/#{URI.encode_uri_component(params[:id].to_s)}", request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Wavix::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Wavix::SmsAndMms::Messages::Types::GetMessagesResponse.load(response.body) else error_class = Wavix::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#list(request_options: {}, **params) ⇒ Wavix::SmsAndMms::Messages::Types::ListMessagesResponse
Returns a paginated list of SMS and MMS messages for the authenticated account, filtered by direction, date, and other criteria.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/wavix/sms_and_mms/messages/client.rb', line 36 def list(request_options: {}, **params) params = Wavix::Internal::Types::Utils.normalize_keys(params) query_params = {} query_params["sent_after"] = params[:sent_after] if params.key?(:sent_after) query_params["sent_before"] = params[:sent_before] if params.key?(:sent_before) query_params["type"] = params[:type] if params.key?(:type) query_params["from"] = params[:from] if params.key?(:from) query_params["to"] = params[:to] if params.key?(:to) query_params["status"] = params[:status] if params.key?(:status) query_params["tag"] = params[:tag] if params.key?(:tag) query_params["message_type"] = params[:message_type] if params.key?(:message_type) query_params["page"] = params[:page] if params.key?(:page) query_params["per_page"] = params[:per_page] if params.key?(:per_page) request = Wavix::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "v3/messages", query: query_params, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Wavix::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Wavix::SmsAndMms::Messages::Types::ListMessagesResponse.load(response.body) else error_class = Wavix::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#list_all(request_options: {}, **params) ⇒ String
Streams matching SMS and MMS messages as newline-delimited JSON (NDJSON), one message per line, for bulk export.
161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 |
# File 'lib/wavix/sms_and_mms/messages/client.rb', line 161 def list_all(request_options: {}, **params) params = Wavix::Internal::Types::Utils.normalize_keys(params) query_params = {} query_params["sent_after"] = params[:sent_after] if params.key?(:sent_after) query_params["sent_before"] = params[:sent_before] if params.key?(:sent_before) query_params["type"] = params[:type] if params.key?(:type) query_params["from"] = params[:from] if params.key?(:from) query_params["to"] = params[:to] if params.key?(:to) query_params["status"] = params[:status] if params.key?(:status) query_params["tag"] = params[:tag] if params.key?(:tag) query_params["message_type"] = params[:message_type] if params.key?(:message_type) request = Wavix::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "v3/messages/all", query: query_params, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Wavix::Errors::TimeoutError end code = response.code.to_i return if code.between?(200, 299) error_class = Wavix::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end |
#send_(request_options: {}, **params) ⇒ Wavix::Types::SendMessagesResponse
Sends an SMS or MMS message. MMS is supported for U.S. numbers only. Track delivery using the returned
message_id and the message status callback.
Rate limit: 20 messages per phone number in 24 hours.
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/wavix/sms_and_mms/messages/client.rb', line 84 def send_(request_options: {}, **params) params = Wavix::Internal::Types::Utils.normalize_keys(params) request = Wavix::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "v3/messages", body: Wavix::SmsAndMms::Messages::Types::SendMessagesRequest.new(params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Wavix::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Wavix::Types::SendMessagesResponse.load(response.body) else error_class = Wavix::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |