Sha256: 49f09c7ef297e3d89d4a5952b3e5f245a7ce2ce76ec7f4d59515074d02ce061f
Contents?: true
Size: 1.24 KB
Versions: 3
Compression:
Stored size: 1.24 KB
Contents
require 'quiz_api_client/http_client' require 'quiz_api_client/services/jwt_service' module QuizApiClient::Services class BaseApiService attr_reader :consumer_key, :host, :shared_secret, :protocol, :errors def initialize(consumer_key:, host:, shared_secret:, protocol: 'https') @consumer_key = consumer_key @host = host @shared_secret = shared_secret @protocol = protocol @errors = [] end private def token_for_api(default_token = nil, scope = nil, resource_id = nil) return default_token unless default_token.nil? generate_token(scope: scope, resource_id: resource_id) end def uri uri = URI::HTTP.build(host: host) uri.scheme = protocol uri.to_s end def generate_token(scope:, exp: nil, resource_id: nil) jwt_service.grant_permission(scope: scope, exp: exp, resource_id: resource_id) end def jwt_service QuizApiClient::Services::JwtService.new( consumer_key: consumer_key, host: host, shared_secret: shared_secret, protocol: protocol ) end def client(token:) QuizApiClient::HttpClient.new( uri: uri, jwt: token ) end end end
Version data entries
3 entries across 3 versions & 1 rubygems