module QuizApiClient::Services class QuizSessionsService < BaseApiService def token(scope:, exp: nil, resource_id: nil) return unless allowed_scopes.include?(scope) 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 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 def allowed_scopes [scope_create, scope_list] end end end