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