Class: Pingram::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/pingram/client_wrapper.rb

Overview

High-level Pingram client: holds API key and base URL, exposes tag APIs and send.

Examples:

Webhook verification

event = Pingram::WebhookVerification.construct_event(
  payload: request.body.read,
  signature: request.env['HTTP_X_PINGRAM_SIGNATURE'],
  timestamp: request.env['HTTP_X_PINGRAM_TIMESTAMP'],
  secret: ENV['PINGRAM_WEBHOOK_SECRET']
)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_key:, base_url: nil) ⇒ Client

Returns a new instance of Client.

Parameters:

  • api_key (String)

    API key (e.g. pingram_sk_...) or JWT

  • base_url (String, nil) (defaults to: nil)

    Optional override for base URL (e.g. https://api.pingram.io)



77
78
79
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# File 'lib/pingram/client_wrapper.rb', line 77

def initialize(api_key:, base_url: nil)
  @api_key = api_key
  @base_url = base_url
  @config = Pingram::Configuration.default.dup
  @config.access_token = api_key
  @config.host = base_url.to_s.sub(%r{/$}, '') if base_url && !base_url.to_s.empty?
  @api_client = Pingram::ApiClient.new(@config)

  @account = Pingram::AccountApi.new(@api_client)

  @addresses = Pingram::AddressesApi.new(@api_client)

  @components = Pingram::ComponentsApi.new(@api_client)

  @default_api = Pingram::DefaultApi.new(@api_client)

  @domains = Pingram::DomainsApi.new(@api_client)

  @editor = Pingram::EditorApi.new(@api_client)

  @email = Pingram::EmailApi.new(@api_client)

  @environments = Pingram::EnvironmentsApi.new(@api_client)

  @health = Pingram::HealthApi.new(@api_client)

  @insights = Pingram::InsightsApi.new(@api_client)

  @keys = Pingram::KeysApi.new(@api_client)

  @logs = Pingram::LogsApi.new(@api_client)

  @members = Pingram::MembersApi.new(@api_client)

  @numbers = Pingram::NumbersApi.new(@api_client)

  @profile = Pingram::ProfileApi.new(@api_client)

  @sender = Pingram::SenderApi.new(@api_client)

  @sms = Pingram::SmsApi.new(@api_client)

  @templates = Pingram::TemplatesApi.new(@api_client)

  @types = Pingram::TypesApi.new(@api_client)

  @user = Pingram::UserApi.new(@api_client)

  @users = Pingram::UsersApi.new(@api_client)

  @voice = Pingram::VoiceApi.new(@api_client)

  @webhooks = Pingram::WebhooksApi.new(@api_client)

end

Instance Attribute Details

#api_keyString (readonly)

Returns API key (e.g. pingram_sk_...).

Returns:

  • (String)

    API key (e.g. pingram_sk_...)



70
71
72
# File 'lib/pingram/client_wrapper.rb', line 70

def api_key
  @api_key
end

#base_urlString? (readonly)

Returns Override base URL (default from Configuration).

Returns:

  • (String, nil)

    Override base URL (default from Configuration)



73
74
75
# File 'lib/pingram/client_wrapper.rb', line 73

def base_url
  @base_url
end

Instance Method Details

#accountPingram::AccountApi

Returns:



135
136
137
# File 'lib/pingram/client_wrapper.rb', line 135

def 
  @account
end

#addressesPingram::AddressesApi



141
142
143
# File 'lib/pingram/client_wrapper.rb', line 141

def addresses
  @addresses
end

#componentsPingram::ComponentsApi



147
148
149
# File 'lib/pingram/client_wrapper.rb', line 147

def components
  @components
end

#default_apiPingram::DefaultApi

Returns:



153
154
155
# File 'lib/pingram/client_wrapper.rb', line 153

def default_api
  @default_api
end

#domainsPingram::DomainsApi

Returns:



159
160
161
# File 'lib/pingram/client_wrapper.rb', line 159

def domains
  @domains
end

#editorPingram::EditorApi

Returns:



165
166
167
# File 'lib/pingram/client_wrapper.rb', line 165

def editor
  @editor
end

#emailPingram::EmailApi

Returns:



171
172
173
# File 'lib/pingram/client_wrapper.rb', line 171

def email
  @email
end

#environmentsPingram::EnvironmentsApi



177
178
179
# File 'lib/pingram/client_wrapper.rb', line 177

def environments
  @environments
end

#healthPingram::HealthApi

Returns:



183
184
185
# File 'lib/pingram/client_wrapper.rb', line 183

def health
  @health
end

#insightsPingram::InsightsApi



189
190
191
# File 'lib/pingram/client_wrapper.rb', line 189

def insights
  @insights
end

#keysPingram::KeysApi

Returns:



195
196
197
# File 'lib/pingram/client_wrapper.rb', line 195

def keys
  @keys
end

#logsPingram::LogsApi

Returns:



201
202
203
# File 'lib/pingram/client_wrapper.rb', line 201

def logs
  @logs
end

#membersPingram::MembersApi

Returns:



207
208
209
# File 'lib/pingram/client_wrapper.rb', line 207

def members
  @members
end

#numbersPingram::NumbersApi

Returns:



213
214
215
# File 'lib/pingram/client_wrapper.rb', line 213

def numbers
  @numbers
end

#profilePingram::ProfileApi

Returns:



219
220
221
# File 'lib/pingram/client_wrapper.rb', line 219

def profile
  @profile
end

#send(body) ⇒ Object

Send a notification. Delegates to DefaultApi#call_send (Ruby renames send to call_send).

Parameters:

  • body (Object)

    Request body (e.g. Pingram::SenderPostBody or Hash)

Returns:

  • (Object)

    Response (e.g. Pingram::SenderPostResponse)



276
277
278
# File 'lib/pingram/client_wrapper.rb', line 276

def send(body)
  @default_api.call_send(body)
end

#senderPingram::SenderApi

Returns:



225
226
227
# File 'lib/pingram/client_wrapper.rb', line 225

def sender
  @sender
end

#smsPingram::SmsApi

Returns:



231
232
233
# File 'lib/pingram/client_wrapper.rb', line 231

def sms
  @sms
end

#templatesPingram::TemplatesApi



237
238
239
# File 'lib/pingram/client_wrapper.rb', line 237

def templates
  @templates
end

#typesPingram::TypesApi

Returns:



243
244
245
# File 'lib/pingram/client_wrapper.rb', line 243

def types
  @types
end

#userPingram::UserApi

Returns:



249
250
251
# File 'lib/pingram/client_wrapper.rb', line 249

def user
  @user
end

#usersPingram::UsersApi

Returns:



255
256
257
# File 'lib/pingram/client_wrapper.rb', line 255

def users
  @users
end

#voicePingram::VoiceApi

Returns:



261
262
263
# File 'lib/pingram/client_wrapper.rb', line 261

def voice
  @voice
end

#webhooksPingram::WebhooksApi



267
268
269
# File 'lib/pingram/client_wrapper.rb', line 267

def webhooks
  @webhooks
end