steps.rb 704 B

12345678910111213141516171819202122
  1. class CustomWizard::StepsController < ApplicationController
  2. before_action :ensure_logged_in
  3. def update
  4. wizard = CustomWizard::Builder.new(current_user, params[:wizard_id].underscore).build
  5. updater = wizard.create_updater(params[:step_id], params[:fields])
  6. updater.update
  7. if updater.success?
  8. result = success_json
  9. result.merge!(updater.result) if updater.result
  10. result[:refresh_required] = true if updater.refresh_required?
  11. render json: result
  12. else
  13. errors = []
  14. updater.errors.messages.each do |field, msg|
  15. errors << { field: field, description: msg.join }
  16. end
  17. render json: { errors: errors }, status: 422
  18. end
  19. end
  20. end