Class: Pinnacle::Messages::Sms::Client
- Inherits:
-
Object
- Object
- Pinnacle::Messages::Sms::Client
- Defined in:
- lib/pinnacle/messages/sms/client.rb
Instance Method Summary collapse
- #initialize(client:) ⇒ void constructor
-
#send_(request_options: {}, **params) ⇒ Pinnacle::Messages::Sms::Types::SmsSendResponse
Send a SMS message immediately or schedule it for future delivery.
-
#validate(request_options: {}, **params) ⇒ Pinnacle::Types::SmsValidationResult
Validate SMS message content without sending it.
Constructor Details
#initialize(client:) ⇒ void
10 11 12 |
# File 'lib/pinnacle/messages/sms/client.rb', line 10 def initialize(client:) @client = client end |
Instance Method Details
#send_(request_options: {}, **params) ⇒ Pinnacle::Messages::Sms::Types::SmsSendResponse
Send a SMS message immediately or schedule it for future delivery.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/pinnacle/messages/sms/client.rb', line 25 def send_(request_options: {}, **params) params = Pinnacle::Internal::Types::Utils.normalize_keys(params) request = Pinnacle::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "messages/send/sms", body: Pinnacle::Messages::Sms::Types::Sms.new(params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Pinnacle::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Pinnacle::Messages::Sms::Types::SmsSendResponse.load(response.body) else error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#validate(request_options: {}, **params) ⇒ Pinnacle::Types::SmsValidationResult
Validate SMS message content without sending it.
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/pinnacle/messages/sms/client.rb', line 59 def validate(request_options: {}, **params) params = Pinnacle::Internal::Types::Utils.normalize_keys(params) request = Pinnacle::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "messages/validate/sms", body: Pinnacle::Types::SmsContent.new(params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Pinnacle::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Pinnacle::Types::SmsValidationResult.load(response.body) else error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |