From 4dda45a696bf49f784bd45024f83bd42f2a6bbb3 Mon Sep 17 00:00:00 2001 From: kiragrammel Date: Tue, 26 Sep 2023 16:23:30 +0200 Subject: [PATCH] Send point for opening LimeSurvey --- app/controllers/sessions_controller.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index c0fc5521..79c8dacc 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -72,6 +72,16 @@ class SessionsController < ApplicationController private def redirect_to_survey + # The following code is taken from store_lti_session_data(params) & send_score_for(submission, user) + # It gives a bonus point to users who opened the survey + begin + lti_parameters = params.slice(*Lti::SESSION_PARAMETERS).permit!.to_h + provider = build_tool_provider(consumer: current_user.consumer, parameters: lti_parameters) + provider.post_replace_result!(1.0) + rescue IMS::LTI::XMLParseError, Net::OpenTimeout, Net::ReadTimeout, Errno::ECONNRESET, SocketError, EOFError + # We don't do anything here because it is only a bonus point and we want the users to do the survey + end + # This method is taken from Xikolo and slightly adapted. # Forward arbitrary optional query params to LimeSurvey # and remove tracking and other sensitive user params.