Method: SimpleSpark::Client#initialize

Defined in:
lib/simple_spark/client.rb

#initialize(opts = {}) ⇒ Client

Returns a new instance of Client.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/simple_spark/client.rb', line 10

def initialize(opts = {})
  @api_key = opts[:api_key] || ENV['SPARKPOST_API_KEY']
  @api_host = opts[:api_host] || 'https://api.sparkpost.com'
  @base_path = opts[:base_path] || '/api/v1/'
  @subaccount_id = opts[:subaccount_id]
  @headers = opts[:headers]

  @logger = opts[:logger] || SimpleSpark::Client.default_logger

  fail Exceptions::InvalidConfiguration.new, 'You must provide a SparkPost API key' unless @api_key
  fail Exceptions::InvalidConfiguration.new, 'You must provide a SparkPost API host' unless @api_host # this should never occur unless the default above is changed
  fail Exceptions::InvalidConfiguration.new, 'You must provide a SparkPost base path' unless @base_path # this should never occur unless the default above is changed
  fail Exceptions::InvalidConfiguration.new, 'The headers options provided must be a valid Hash' if @headers && !@headers.is_a?(Hash)

  rails_development = true & defined?(Rails) && Rails.env.development?

  @debug = opts[:debug].nil? ? rails_development : opts[:debug]

  @session = Excon.new(@api_host, debug: @debug)
end