diff --git a/app/assets/javascripts/utils/api.js b/app/assets/javascripts/utils/api.js index a18b92d946..6e596df7be 100644 --- a/app/assets/javascripts/utils/api.js +++ b/app/assets/javascripts/utils/api.js @@ -321,23 +321,22 @@ const API = { }); if (!response.ok) { - if (response.status === 422 ) { - const data = await response.json(); - const errorMessage = data.errors?.[0] || 'Unknown error'; - throw new Error(errorMessage);} - else { const data = await response.text(); this.obj = data; this.status = response.statusText; SentryLogger.obj = this.obj; SentryLogger.status = this.status; - Sentry.captureMessage('saveCourse failed', { - level: 'error', - extra: SentryLogger - }); + try { + Sentry.captureMessage('saveCourse failed', { + level: 'error', + extra: SentryLogger + }); + } catch (error) { + console.error("Sentry.captureMessage failed:", error); + }; response.responseText = data; throw response; - }} + } return response.json(); }, diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index dcf824f3af..37e465b822 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -44,19 +44,17 @@ def update validate handle_course_announcement(@course.instructors.first) slug_from_params if should_set_slug? - if @course.update update_params + @course.update update_params update_courses_wikis update_course_wiki_namespaces update_flags ensure_passcode_set UpdateCourseWorker.schedule_edits(course: @course, editing_user: current_user) render json: { course: @course } - else - render json: { errors: @course.errors.full_messages }, status: :unprocessable_entity - end rescue Course::DuplicateCourseSlugError => e message = I18n.t('courses.error.duplicate_slug', slug: e.slug) - render json: { errors: [message] }, status: :unprocessable_entity + render json: { errors: e, message: }, + status: :unprocessable_entity rescue Wiki::InvalidWikiError => e message = I18n.t('courses.error.invalid_wiki', domain: e.domain) diff --git a/app/models/course.rb b/app/models/course.rb index 70939c1faa..57d62f679f 100644 --- a/app/models/course.rb +++ b/app/models/course.rb @@ -607,7 +607,7 @@ class DuplicateCourseSlugError < StandardError def initialize(slug, msg = 'Duplicate Slug') @msg = msg @slug = slug - super('#{msg}: #{slug}') + super(msg) end attr_reader :slug