Handle ReadTimeouts for LTI consumer properly

This commit is contained in:
Sebastian Serth
2023-02-16 10:04:36 +01:00
parent 339d1b3760
commit 596a04b9da
2 changed files with 2 additions and 2 deletions

View File

@ -174,7 +174,7 @@ module Lti
begin
response = provider.post_replace_result!(normalized_lit_score)
{code: response.response_code, message: response.post_response.body, status: response.code_major, score_sent: normalized_lit_score}
rescue IMS::LTI::XMLParseError
rescue IMS::LTI::XMLParseError, Net::OpenTimeout
# A parsing error might happen if the LTI provider is down and doesn't return a valid XML response
{status: 'error'}
end

View File

@ -589,7 +589,7 @@ class ExercisesController < ApplicationController
redirect_after_submit
else
respond_to do |format|
format.html { redirect_to(implement_exercise_path(@submission.exercise)) }
format.html { redirect_to(implement_exercise_path(@submission.exercise, alert: I18n.t('exercises.submit.failure'))) }
format.json { render(json: {message: I18n.t('exercises.submit.failure')}, status: :service_unavailable) }
end
end