41 lines
900 B
Ruby
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
|