Sha256: dcbaa22f9e8c2d706812aefc1e05787efc6effbee603cf2029013670ee74156b
Contents?: true
Size: 1.23 KB
Versions: 1
Compression:
Stored size: 1.23 KB
Contents
require 'quiz_api_client/http_client' require 'quiz_api_client/services/jwt_service' module QuizApiClient::Services class BaseApiService attr_reader :quiz_api_host, :quiz_api_secret_for_jwt, :protocol, :errors def initialize(quiz_api_host:, quiz_api_secret_for_jwt:, protocol: 'https') @quiz_api_host = quiz_api_host @quiz_api_secret_for_jwt = quiz_api_secret_for_jwt @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 quiz_api_uri uri = URI::HTTP.build(host: quiz_api_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( host: quiz_api_host, jwt_secret: quiz_api_secret_for_jwt, protocol: protocol ) end def quiz_api_client(token:) QuizApiClient::HttpClient.new( uri: quiz_api_uri, jwt: token ) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
quiz_api_client-0.1.1 | lib/quiz_api_client/services/base_api_service.rb |