Class: SurgeAPI::Client
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
Internal::Transport::BaseClient::MAX_REDIRECTS, Internal::Transport::BaseClient::PLATFORM_HEADERS
Instance Attribute Summary collapse
#base_url, #headers, #idempotency_header, #initial_retry_delay, #max_retries, #max_retry_delay, #requester, #timeout
Instance Method Summary
collapse
follow_redirect, #inspect, reap_connection!, #request, #send_request, should_retry?, validate!
#const_missing, #define_sorbet_constant!, #sorbet_constant_defined?, #to_sorbet_type, to_sorbet_type
Constructor Details
#initialize(api_key: ENV["SURGE_API_KEY"], base_url: ENV["SURGE_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.
‘“api.example.com/v2/”`. Defaults to `ENV`
80
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
115
116
|
# File 'lib/surge_api/client.rb', line 80
def initialize(
api_key: ENV["SURGE_API_KEY"],
base_url: ENV["SURGE_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.surge.app"
if api_key.nil?
raise ArgumentError.new("api_key is required, and can be set via environ: \"SURGE_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
)
@accounts = SurgeAPI::Resources::Accounts.new(client: self)
@attachments = SurgeAPI::Resources::Attachments.new(client: self)
@audiences = SurgeAPI::Resources::Audiences.new(client: self)
@blasts = SurgeAPI::Resources::Blasts.new(client: self)
@campaigns = SurgeAPI::Resources::Campaigns.new(client: self)
@contacts = SurgeAPI::Resources::Contacts.new(client: self)
@messages = SurgeAPI::Resources::Messages.new(client: self)
@phone_numbers = SurgeAPI::Resources::PhoneNumbers.new(client: self)
@recordings = SurgeAPI::Resources::Recordings.new(client: self)
@users = SurgeAPI::Resources::Users.new(client: self)
@verifications = SurgeAPI::Resources::Verifications.new(client: self)
@webhooks = SurgeAPI::Resources::Webhooks.new(client: self)
end
|
Instance Attribute Details
22
23
24
|
# File 'lib/surge_api/client.rb', line 22
def accounts
@accounts
end
|
#api_key ⇒ String
19
20
21
|
# File 'lib/surge_api/client.rb', line 19
def api_key
@api_key
end
|
25
26
27
|
# File 'lib/surge_api/client.rb', line 25
def attachments
@attachments
end
|
28
29
30
|
# File 'lib/surge_api/client.rb', line 28
def audiences
@audiences
end
|
31
32
33
|
# File 'lib/surge_api/client.rb', line 31
def blasts
@blasts
end
|
34
35
36
|
# File 'lib/surge_api/client.rb', line 34
def campaigns
@campaigns
end
|
37
38
39
|
# File 'lib/surge_api/client.rb', line 37
def contacts
@contacts
end
|
40
41
42
|
# File 'lib/surge_api/client.rb', line 40
def messages
@messages
end
|
43
44
45
|
# File 'lib/surge_api/client.rb', line 43
def phone_numbers
@phone_numbers
end
|
46
47
48
|
# File 'lib/surge_api/client.rb', line 46
def recordings
@recordings
end
|
49
50
51
|
# File 'lib/surge_api/client.rb', line 49
def users
@users
end
|
52
53
54
|
# File 'lib/surge_api/client.rb', line 52
def verifications
@verifications
end
|
55
56
57
|
# File 'lib/surge_api/client.rb', line 55
def webhooks
@webhooks
end
|