Sha256: 05a056987f7c4b9ca9d439744b3f95703fb097a85386218c107cde4bcdba3e9f

Contents?: true

Size: 897 Bytes

Versions: 2

Compression:

Stored size: 897 Bytes

Contents

require 'quiz_api_client/services/base_api_service'

module QuizApiClient::Services
  class QuizSessionsService < BaseApiService
    def token(scope:, exp: nil, resource_id: nil)
      return unless (scope == scope_create) || (scope == scope_list)
      generate_token(scope: scope, exp: exp, resource_id: resource_id)
    end

    def create(params:, default_token: nil)
      raise 'Quiz Id Required' unless params && params[:quiz_id]
      post_to_quiz_api(params: params, token: token_for_api(default_token, scope_create, params[:quiz_id]))
    end

    # Allowed scopes
    def scope_create
      'quiz_session.create'
    end

    def scope_list
      'quiz_session.list'
    end

    private

    def post_to_quiz_api(params:, token:)
      quiz_api_client(token: token).post(
        "/api/quizzes/#{params[:quiz_id]}/quiz_sessions",
        quiz_session: params
      )
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
quiz_api_client-0.1.1 lib/quiz_api_client/services/quiz_sessions_service.rb
quiz_api_client-0.1.0 lib/quiz_api_client/services/quiz_sessions_service.rb