Class: Notisend::Client
- Inherits:
-
Object
- Object
- Notisend::Client
- Defined in:
- lib/notisend/client.rb
Overview
HTTP core: builds Faraday connections, executes requests, maps errors
Constant Summary collapse
- RETRY_OPTIONS =
{ max: 2, interval: 0.2, backoff_factor: 2, methods: %i[get], exceptions: [Faraday::TimeoutError, Faraday::ConnectionFailed, 'Timeout::Error', Errno::ETIMEDOUT] }.freeze
- DEFAULT_MIME_TYPE =
'application/octet-stream'
Instance Attribute Summary collapse
-
#base_url ⇒ Object
readonly
Returns the value of attribute base_url.
Instance Method Summary collapse
- #balance ⇒ Object
- #campaigns ⇒ Object
- #delete(path) ⇒ Object
- #get(path, params = {}) ⇒ Object
-
#initialize(api_token: nil, base_url: nil, open_timeout: nil, timeout: nil, verify_ssl: nil, ca_bundle_file: nil, logger: nil) ⇒ Client
constructor
A new instance of Client.
- #lists ⇒ Object
- #messages ⇒ Object
- #organizations ⇒ Object
- #parameters ⇒ Object
- #patch(path, payload = {}) ⇒ Object
- #post(path, payload = {}, attachments: nil) ⇒ Object
- #recipients ⇒ Object
- #segments ⇒ Object
- #templates ⇒ Object
- #webhooks ⇒ Object
Constructor Details
#initialize(api_token: nil, base_url: nil, open_timeout: nil, timeout: nil, verify_ssl: nil, ca_bundle_file: nil, logger: nil) ⇒ Client
Returns a new instance of Client.
14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/notisend/client.rb', line 14 def initialize(api_token: nil, base_url: nil, open_timeout: nil, timeout: nil, verify_ssl: nil, ca_bundle_file: nil, logger: nil) defaults = Notisend.configuration @api_token = api_token || defaults.api_token @base_url = base_url || defaults.base_url @open_timeout = open_timeout || defaults.open_timeout @timeout = timeout || defaults.timeout @verify_ssl = verify_ssl.nil? ? defaults.verify_ssl : verify_ssl @ca_bundle_file = ca_bundle_file || defaults.ca_bundle_file @logger = logger || defaults.logger ensure_token! end |
Instance Attribute Details
#base_url ⇒ Object (readonly)
Returns the value of attribute base_url.
12 13 14 |
# File 'lib/notisend/client.rb', line 12 def base_url @base_url end |
Instance Method Details
#balance ⇒ Object
27 |
# File 'lib/notisend/client.rb', line 27 def balance = @balance ||= Resources::Balance.new(self) |
#campaigns ⇒ Object
35 |
# File 'lib/notisend/client.rb', line 35 def campaigns = @campaigns ||= Resources::Campaigns.new(self) |
#delete(path) ⇒ Object
54 55 56 |
# File 'lib/notisend/client.rb', line 54 def delete(path) run_request { connection.delete(path) } end |
#get(path, params = {}) ⇒ Object
38 39 40 |
# File 'lib/notisend/client.rb', line 38 def get(path, params = {}) run_request { connection.get(path, params.compact) } end |
#lists ⇒ Object
30 |
# File 'lib/notisend/client.rb', line 30 def lists = @lists ||= Resources::Lists.new(self) |
#messages ⇒ Object
28 |
# File 'lib/notisend/client.rb', line 28 def = @messages ||= Resources::Messages.new(self) |
#organizations ⇒ Object
34 |
# File 'lib/notisend/client.rb', line 34 def organizations = @organizations ||= Resources::Organizations.new(self) |
#parameters ⇒ Object
31 |
# File 'lib/notisend/client.rb', line 31 def parameters = @parameters ||= Resources::Parameters.new(self) |
#patch(path, payload = {}) ⇒ Object
50 51 52 |
# File 'lib/notisend/client.rb', line 50 def patch(path, payload = {}) run_request { connection.patch(path, payload) } end |
#post(path, payload = {}, attachments: nil) ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/notisend/client.rb', line 42 def post(path, payload = {}, attachments: nil) files = Array() return run_request { connection.post(path, payload) } if files.empty? body = payload.merge(attachments: files.map { |a| file_part(a) }) run_request { multipart_connection.post(path, body) } end |
#recipients ⇒ Object
32 |
# File 'lib/notisend/client.rb', line 32 def recipients = @recipients ||= Resources::Recipients.new(self) |
#segments ⇒ Object
33 |
# File 'lib/notisend/client.rb', line 33 def segments = @segments ||= Resources::Segments.new(self) |