Class: AlfredoClient
- Inherits:
-
Object
- Object
- AlfredoClient
- Defined in:
- lib/alfredo.rb
Instance Method Summary collapse
-
#initialize(api_key:, client_id:, base_url: 'https://api.alfredosend.com') ⇒ AlfredoClient
constructor
A new instance of AlfredoClient.
- #send_transactional(template_id, payload, idempotency_key: nil) ⇒ Object
Constructor Details
#initialize(api_key:, client_id:, base_url: 'https://api.alfredosend.com') ⇒ AlfredoClient
Returns a new instance of AlfredoClient.
5 6 7 8 9 |
# File 'lib/alfredo.rb', line 5 def initialize(api_key:, client_id:, base_url: 'https://api.alfredosend.com') @api_key = api_key @client_id = client_id @base_url = base_url.sub(%r{/$}, '') end |
Instance Method Details
#send_transactional(template_id, payload, idempotency_key: nil) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/alfredo.rb', line 11 def send_transactional(template_id, payload, idempotency_key: nil) uri = URI("#{@base_url}/v1/clients/#{@client_id}/transactional/templates/#{template_id}/send") request = Net::HTTP::Post.new(uri, { 'Authorization' => "Bearer #{@api_key}", 'Content-Type' => 'application/json', }) request['Idempotency-Key'] = idempotency_key if idempotency_key request.body = JSON.generate(payload) response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') { |http| http.request(request) } body = JSON.parse(response.body) raise(body['message'] || "Alfredo respondió #{response.code}.") unless response.is_a?(Net::HTTPSuccess) body end |