Class: Sentdm::Client
- Inherits:
-
Internal::Transport::BaseClient
- Object
- Internal::Transport::BaseClient
- Sentdm::Client
- Defined in:
- lib/sentdm/client.rb
Constant Summary collapse
- DEFAULT_MAX_RETRIES =
Default max number of retries to attempt after a failed retryable request.
2- DEFAULT_TIMEOUT_IN_SECONDS =
Default per-request timeout.
60.0- DEFAULT_INITIAL_RETRY_DELAY =
Default initial retry delay in seconds. Overall delay is calculated using exponential backoff + jitter.
0.5- DEFAULT_MAX_RETRY_DELAY =
Default max retry delay in seconds.
8.0
Constants inherited from Internal::Transport::BaseClient
Internal::Transport::BaseClient::MAX_REDIRECTS, Internal::Transport::BaseClient::PLATFORM_HEADERS
Instance Attribute Summary collapse
-
#api_key ⇒ String
readonly
Customer API key for authentication.
-
#brands ⇒ Sentdm::Resources::Brands
readonly
Register and manage 10DLC brands for SMS compliance.
-
#contacts ⇒ Sentdm::Resources::Contacts
readonly
Create, update, and manage customer contact lists.
- #lookup ⇒ Sentdm::Resources::Lookup readonly
-
#me ⇒ Sentdm::Resources::Me
readonly
Retrieve account details.
-
#messages ⇒ Sentdm::Resources::Messages
readonly
Send and track SMS and WhatsApp messages.
-
#profiles ⇒ Sentdm::Resources::Profiles
readonly
Manage organization profiles.
-
#templates ⇒ Sentdm::Resources::Templates
readonly
Manage message templates with variable substitution.
-
#users ⇒ Sentdm::Resources::Users
readonly
Invite, update, and manage organization users and roles.
-
#webhooks ⇒ Sentdm::Resources::Webhooks
readonly
Configure webhook endpoints for real-time event delivery.
Attributes inherited from Internal::Transport::BaseClient
#base_url, #headers, #idempotency_header, #initial_retry_delay, #max_retries, #max_retry_delay, #requester, #timeout
Instance Method Summary collapse
-
#initialize(api_key: ENV["SENT_DM_API_KEY"], base_url: ENV["SENT_DM_BASE_URL"], max_retries: self.class::DEFAULT_MAX_RETRIES, timeout: self.class::DEFAULT_TIMEOUT_IN_SECONDS, initial_retry_delay: self.class::DEFAULT_INITIAL_RETRY_DELAY, max_retry_delay: self.class::DEFAULT_MAX_RETRY_DELAY) ⇒ Client
constructor
Creates and returns a new client for interacting with the API.
Methods inherited from Internal::Transport::BaseClient
follow_redirect, #inspect, reap_connection!, #request, #send_request, should_retry?, validate!
Methods included from Internal::Util::SorbetRuntimeSupport
#const_missing, #define_sorbet_constant!, #sorbet_constant_defined?, #to_sorbet_type, to_sorbet_type
Constructor Details
#initialize(api_key: ENV["SENT_DM_API_KEY"], base_url: ENV["SENT_DM_BASE_URL"], max_retries: self.class::DEFAULT_MAX_RETRIES, timeout: self.class::DEFAULT_TIMEOUT_IN_SECONDS, initial_retry_delay: self.class::DEFAULT_INITIAL_RETRY_DELAY, max_retry_delay: self.class::DEFAULT_MAX_RETRY_DELAY) ⇒ Client
Creates and returns a new client for interacting with the API.
‘sk_test_*` keys for sandbox/testing. Pass via the `x-api-key` header. Defaults to `ENV`
‘“api.example.com/v2/”`. Defaults to `ENV`
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/sentdm/client.rb', line 81 def initialize( api_key: ENV["SENT_DM_API_KEY"], base_url: ENV["SENT_DM_BASE_URL"], max_retries: self.class::DEFAULT_MAX_RETRIES, timeout: self.class::DEFAULT_TIMEOUT_IN_SECONDS, initial_retry_delay: self.class::DEFAULT_INITIAL_RETRY_DELAY, max_retry_delay: self.class::DEFAULT_MAX_RETRY_DELAY ) base_url ||= "https://api.sent.dm" if api_key.nil? raise ArgumentError.new("api_key is required, and can be set via environ: \"SENT_DM_API_KEY\"") end @api_key = api_key.to_s super( base_url: base_url, timeout: timeout, max_retries: max_retries, initial_retry_delay: initial_retry_delay, max_retry_delay: max_retry_delay ) @webhooks = Sentdm::Resources::Webhooks.new(client: self) @users = Sentdm::Resources::Users.new(client: self) @templates = Sentdm::Resources::Templates.new(client: self) @profiles = Sentdm::Resources::Profiles.new(client: self) @messages = Sentdm::Resources::Messages.new(client: self) @lookup = Sentdm::Resources::Lookup.new(client: self) @contacts = Sentdm::Resources::Contacts.new(client: self) @brands = Sentdm::Resources::Brands.new(client: self) @me = Sentdm::Resources::Me.new(client: self) end |
Instance Attribute Details
#api_key ⇒ String (readonly)
Customer API key for authentication. Use ‘sk_live_*` keys for production and `sk_test_*` keys for sandbox/testing. Pass via the `x-api-key` header.
21 22 23 |
# File 'lib/sentdm/client.rb', line 21 def api_key @api_key end |
#brands ⇒ Sentdm::Resources::Brands (readonly)
Register and manage 10DLC brands for SMS compliance
52 53 54 |
# File 'lib/sentdm/client.rb', line 52 def brands @brands end |
#contacts ⇒ Sentdm::Resources::Contacts (readonly)
Create, update, and manage customer contact lists
48 49 50 |
# File 'lib/sentdm/client.rb', line 48 def contacts @contacts end |
#lookup ⇒ Sentdm::Resources::Lookup (readonly)
44 45 46 |
# File 'lib/sentdm/client.rb', line 44 def lookup @lookup end |
#me ⇒ Sentdm::Resources::Me (readonly)
Retrieve account details
56 57 58 |
# File 'lib/sentdm/client.rb', line 56 def me @me end |
#messages ⇒ Sentdm::Resources::Messages (readonly)
Send and track SMS and WhatsApp messages
41 42 43 |
# File 'lib/sentdm/client.rb', line 41 def @messages end |
#profiles ⇒ Sentdm::Resources::Profiles (readonly)
Manage organization profiles
37 38 39 |
# File 'lib/sentdm/client.rb', line 37 def profiles @profiles end |
#templates ⇒ Sentdm::Resources::Templates (readonly)
Manage message templates with variable substitution
33 34 35 |
# File 'lib/sentdm/client.rb', line 33 def templates @templates end |
#users ⇒ Sentdm::Resources::Users (readonly)
Invite, update, and manage organization users and roles
29 30 31 |
# File 'lib/sentdm/client.rb', line 29 def users @users end |
#webhooks ⇒ Sentdm::Resources::Webhooks (readonly)
Configure webhook endpoints for real-time event delivery
25 26 27 |
# File 'lib/sentdm/client.rb', line 25 def webhooks @webhooks end |