lib/qismo/client.rb in qismo-0.8.6 vs lib/qismo/client.rb in qismo-0.8.7

- old
+ new

@@ -2,21 +2,29 @@ module Qismo class Client include Qismo::Api - VALID_OPTIONS = [:app_id, :secret_key, :url, :logger, :instrumentation, :timeout, :proxy] + DEFAULT_APP_ID = ENV["QISCUS_APP_ID"] + DEFAULT_SECRET_KEY = ENV["QISCUS_SECRET_KEY"] + DEFAULT_URL = ENV["QISCUS_OMNICHANNEL_URL"] || "https://qismo.qiscus.com" - attr_accessor(*VALID_OPTIONS) + DEFAULT_OPTIONS = { + app_id: DEFAULT_APP_ID, + secret_key: DEFAULT_SECRET_KEY, + url: DEFAULT_URL, + logger: nil, + instrumentation: nil, + timeout: nil, + proxy: nil, + } + attr_accessor(*DEFAULT_OPTIONS.keys) + def initialize(**opt) - @app_id = opt[:app_id] || ENV["QISCUS_APP_ID"] - @secret_key = opt[:secret_key] || ENV["QISCUS_SECRET_KEY"] - @url = opt[:url] || ENV["QISCUS_OMNICHANNEL_URL"] || "https://qismo.qiscus.com" - @logger = opt[:logger] - @instrumentation = opt[:instrumentation] - @timeout = opt[:timeout] - @proxy = opt[:proxy] + DEFAULT_OPTIONS.merge(opt).each do |key, value| + instance_variable_set("@#{key}", value) + end end def post(path, body = {}) request(:post, path, json: body) end