From fecd4466ff521ae55111a918b9fd49e74e35d3fd Mon Sep 17 00:00:00 2001 From: usernaimandrey Date: Sat, 24 Aug 2024 00:17:30 +0300 Subject: [PATCH] fix ruby version && logic mutator --- .ruby-version | 2 +- .../web/admin/vacancies_controller.rb | 15 +++++++++------ app/mutators/admin/vacancy_mutator.rb | 18 +++++++----------- config/locales/admin/en.flash.yml | 4 ++-- config/locales/admin/ru.flash.yml | 3 ++- 5 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.ruby-version b/.ruby-version index 15a27998..a0891f56 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.3.0 +3.3.4 diff --git a/app/controllers/web/admin/vacancies_controller.rb b/app/controllers/web/admin/vacancies_controller.rb index 1665e924..852324b9 100644 --- a/app/controllers/web/admin/vacancies_controller.rb +++ b/app/controllers/web/admin/vacancies_controller.rb @@ -58,11 +58,14 @@ def create end def update - @vacancy = resource_vacancy.becomes(Web::Admin::VacancyForm) - if Admin::VacancyMutator.update!(@vacancy, params.permit![:vacancy]) + vacancy = resource_vacancy.becomes(Web::Admin::VacancyForm) + @vacancy = Admin::VacancyMutator.update(vacancy, params.permit![:vacancy]) + + if @vacancy.previous_changes.present? f(:success) redirect_to params[:go_to] || edit_admin_vacancy_path(@vacancy) else + f(:error, now: true, values: { messages: @vacancy.errors.messages }) render :edit, status: :unprocessable_entity end end @@ -87,15 +90,15 @@ def restore end def cancel - @vacancy = resource_vacancy.becomes(Web::Admin::VacancyForm) + vacancy = resource_vacancy.becomes(Web::Admin::VacancyForm) - canceled = Admin::VacancyMutator.cancel!(@vacancy, params.permit![:vacancy]) + @vacancy = Admin::VacancyMutator.cancel!(vacancy, params.permit![:vacancy]) - if canceled + if @vacancy.canceled? f(:success) redirect_to params[:go_to] || new_cancelation_admin_vacancy_path(@vacancy) else - f(:error) + f(:error, now: true, values: { messages: @vacancy.errors.messages }) render :new_cancelation, status: :unprocessable_entity end end diff --git a/app/mutators/admin/vacancy_mutator.rb b/app/mutators/admin/vacancy_mutator.rb index 3e35083e..c4397105 100644 --- a/app/mutators/admin/vacancy_mutator.rb +++ b/app/mutators/admin/vacancy_mutator.rb @@ -7,26 +7,22 @@ def cancel!(vacancy, params = {}) cancelation_reason = params[:cancelation_reason] vacancy.assign_attributes(cancelation_reason:) - ActiveRecord::Base.transaction do - vacancy.cancel! + if vacancy.cancel! user.notifications.create!(kind: :vacancy_cancel, resource: vacancy) end - vacancy.canceled? + vacancy end - def update!(vacancy, params = {}) + def update(vacancy, params = {}) user = vacancy.creator - vacancy_was_not_published = !vacancy.published? + may_create_notification = params[:state_event] == 'publish' && !vacancy.published? - ActiveRecord::Base.transaction do - vacancy.update!(params) - if params[:state_event] == 'publish' && vacancy_was_not_published - user.notifications.create!(kind: :vacancy_publish, resource: vacancy) - end + if vacancy.update(params) && may_create_notification + user.notifications.create!(kind: :vacancy_publish, resource: vacancy) end - true + vacancy end end end diff --git a/config/locales/admin/en.flash.yml b/config/locales/admin/en.flash.yml index 7244627b..6fc435ad 100644 --- a/config/locales/admin/en.flash.yml +++ b/config/locales/admin/en.flash.yml @@ -39,11 +39,11 @@ en: success: Resume published successfully update: success: Resume updated successfully - error: Failed to save changes. Please check form fields and try again. + error: "Failed to update job vacancy. Please correct errors in the form: %{messages}" vacancies: cancel: success: Vacancy canceled successfull - error: Failed to save changes. Please check form fields and try again. + error: "Failed to decline the job. Please correct errors in the form: %{messages}" archive: success: Vacancy archived successfully restore: diff --git a/config/locales/admin/ru.flash.yml b/config/locales/admin/ru.flash.yml index 8e303121..6b2fc6f8 100644 --- a/config/locales/admin/ru.flash.yml +++ b/config/locales/admin/ru.flash.yml @@ -47,11 +47,12 @@ ru: success: Вакансия успешно возвращена на модерацию update: success: Вакансия успешно обновлена + error: "Не удалось обновить вакансию. Исправьте ошибки в форме: %{messages}" create: success: Вакансия созданна cancel: success: Вакансия отклонена - error: Исправьте ошибки в форме + error: "Не удалось отклонить вакансию. Исправьте ошибки в форме: %{messages}" users: update: success: Данные пользователя успешно обновлены