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:) client(token: token).post( "/api/quizzes/#{params[:quiz_id]}/quiz_sessions", quiz_session: params ) end end end