From c4175d6701cd6ab6ee420dd86a46723fccfd4a28 Mon Sep 17 00:00:00 2001 From: Jan Kessler Date: Tue, 25 Jun 2024 08:18:28 +0200 Subject: [PATCH] show a specific error message when a required server type is unavailable (based on https://github.com/blindsidenetworks/scalelite/pull/1091) --- app/assets/locales/en.json | 1 + app/controllers/api/v1/meetings_controller.rb | 2 +- app/javascript/hooks/mutations/rooms/useStartMeeting.jsx | 8 ++++++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/assets/locales/en.json b/app/assets/locales/en.json index 34f15c4e8a..8e603ad8e0 100644 --- a/app/assets/locales/en.json +++ b/app/assets/locales/en.json @@ -441,6 +441,7 @@ }, "error": { "problem_completing_action": "The action can't be completed. \n Please try again.", + "server_type_unavailable": "The required server type is unavailable. Please select a different type in the room settings.", "file_type_not_supported": "The file type is not supported.", "file_size_too_large": "The file size is too large.", "file_upload_error": "The file can't be uploaded.", diff --git a/app/controllers/api/v1/meetings_controller.rb b/app/controllers/api/v1/meetings_controller.rb index be51924d4b..f0a68b5819 100644 --- a/app/controllers/api/v1/meetings_controller.rb +++ b/app/controllers/api/v1/meetings_controller.rb @@ -31,7 +31,7 @@ def start begin MeetingStarter.new(room: @room, base_url: request.base_url, current_user:, provider: current_provider).call rescue BigBlueButton::BigBlueButtonException => e - return render_error status: :bad_request unless e.key == 'idNotUnique' + return render_error status: :bad_request, errors: e.key unless e.key == 'idNotUnique' end render_data data: BigBlueButtonApi.new(provider: current_provider).join_meeting( diff --git a/app/javascript/hooks/mutations/rooms/useStartMeeting.jsx b/app/javascript/hooks/mutations/rooms/useStartMeeting.jsx index bfb944e00d..630d55471b 100644 --- a/app/javascript/hooks/mutations/rooms/useStartMeeting.jsx +++ b/app/javascript/hooks/mutations/rooms/useStartMeeting.jsx @@ -28,8 +28,12 @@ export default function useStartMeeting(friendlyId) { onSuccess: (joinUrl) => { window.location.href = joinUrl; }, - onError: () => { - toast.error(t('toast.error.problem_completing_action')); + onError: (error) => { + if (error.response.data.errors !== 'serverTagUnavailable') { + toast.error(t('toast.error.problem_completing_action')); + } else { + toast.error(t('toast.error.server_type_unavailable')); + } }, }, );