demarches-normaliennes/app/controllers/administrateurs/routing_controller.rb
2023-04-13 10:28:53 +02:00

41 lines
900 B
Ruby

module Administrateurs
class RoutingController < AdministrateurController
include Logic
before_action :retrieve_procedure
def update
left = targeted_champ
right = targeted_champ_changed? ? empty : value
groupe_instructeur.update!(routing_rule: ds_eq(left, right))
end
private
def targeted_champ_changed?
targeted_champ != groupe_instructeur.routing_rule&.left
end
def targeted_champ
Logic.from_json(routing_params[:targeted_champ])
end
def value
Logic.from_json(routing_params[:value])
end
def groupe_instructeur
@groupe_instructeur ||= @procedure.groupe_instructeurs.find(groupe_instructeur_id)
end
def groupe_instructeur_id
routing_params[:groupe_instructeur_id]
end
def routing_params
params.permit(:targeted_champ, :value, :groupe_instructeur_id)
end
end
end