lib/tanita/api/client.rb in tanita-api-client-0.1.0 vs lib/tanita/api/client.rb in tanita-api-client-0.1.1
- old
+ new
@@ -1,22 +1,35 @@
# frozen_string_literal: true
require 'tanita/api/client/base'
require 'tanita/api/client/helpers'
+require 'tanita/api/client/configuration'
require 'tanita/api/client/version'
module Tanita
module Api
module Client
+ class << self
+ def configure
+ yield configuration
+ end
+
+ def configuration
+ @configuration ||= Tanita::Api::Client::Configuration.new
+ end
+ end
+
class Auth
include HttpHelper
- def initialize(client_id:, client_secret:, redirect_uri:, scopes: [Scope::INNERSCAN])
- @client_id = client_id
- @client_secret = client_secret
- @redirect_uri = redirect_uri
- @scopes = scopes
+ def initialize(client_id: nil, client_secret: nil, redirect_uri: nil, scopes: nil)
+ config = Tanita::Api::Client.configuration
+ @client_id = client_id || config.client_id
+ @client_secret = client_secret || config.client_secret
+ @redirect_uri = redirect_uri || config.redirect_uri
+ @scopes = scopes || config.scopes
+ check_required_arguments
end
def auth_uri
params = {
:client_id => @client_id,
@@ -39,9 +52,18 @@
token = parse_json(res.body)
raise Error.new("#{self.class}.#{__method__}: #{token[:error]}") if token.key? :error
token
+ end
+
+ private
+
+ def check_required_arguments
+ raise Error.new("param:'client_id' is required.'") if @client_id.nil?
+ raise Error.new("param:'client_secret' is required.'") if @client_secret.nil?
+ raise Error.new("param:'redirect_uri' is required.'") if @redirect_uri.nil?
+ raise Error.new("param:'scopes' is required.'") if @scopes.nil?
end
end
class Innerscan < BaseApiClient
def endpoint