2019-05-02 18:17:27 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2016-08-25 13:14:56 -04:00
|
|
|
require_dependency 'wizard'
|
2016-09-09 16:51:07 -04:00
|
|
|
require_dependency 'wizard/builder'
|
2016-08-25 13:14:56 -04:00
|
|
|
require_dependency 'wizard/step_updater'
|
|
|
|
|
|
|
|
class StepsController < ApplicationController
|
2018-01-31 23:17:59 -05:00
|
|
|
requires_login
|
2016-08-25 13:14:56 -04:00
|
|
|
|
2017-08-31 00:06:56 -04:00
|
|
|
before_action :ensure_wizard_enabled
|
|
|
|
before_action :ensure_admin
|
2016-08-25 13:14:56 -04:00
|
|
|
|
|
|
|
def update
|
2016-09-09 16:51:07 -04:00
|
|
|
wizard = Wizard::Builder.new(current_user).build
|
2016-09-12 14:43:00 -04:00
|
|
|
updater = wizard.create_updater(params[:id], params[:fields])
|
|
|
|
updater.update
|
2016-08-31 13:35:49 -04:00
|
|
|
|
|
|
|
if updater.success?
|
2016-09-07 18:04:01 -04:00
|
|
|
result = { success: 'OK' }
|
|
|
|
result[:refresh_required] = true if updater.refresh_required?
|
|
|
|
render json: result
|
2016-08-31 13:35:49 -04:00
|
|
|
else
|
|
|
|
errors = []
|
|
|
|
updater.errors.messages.each do |field, msg|
|
2017-07-27 21:20:09 -04:00
|
|
|
errors << { field: field, description: msg.join }
|
2016-08-31 13:35:49 -04:00
|
|
|
end
|
|
|
|
render json: { errors: errors }, status: 422
|
|
|
|
end
|
2016-08-25 13:14:56 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
end
|