56 lines
1.2 KiB
Ruby
56 lines
1.2 KiB
Ruby
module Administrateurs
|
|
class RoutingController < AdministrateurController
|
|
include Logic
|
|
|
|
before_action :retrieve_procedure
|
|
|
|
def update
|
|
left = targeted_champ
|
|
|
|
right = targeted_champ_changed? ? empty : value
|
|
|
|
new_routing_rule = case operator_name
|
|
when Eq.name
|
|
ds_eq(left, right)
|
|
when NotEq.name
|
|
ds_not_eq(left, right)
|
|
end
|
|
groupe_instructeur.update!(routing_rule: new_routing_rule)
|
|
end
|
|
|
|
def update_defaut_groupe_instructeur
|
|
new_defaut = @procedure.groupe_instructeurs.find(defaut_groupe_instructeur_id)
|
|
@procedure.update!(defaut_groupe_instructeur: new_defaut)
|
|
end
|
|
|
|
private
|
|
|
|
def targeted_champ_changed?
|
|
targeted_champ != groupe_instructeur.routing_rule&.left
|
|
end
|
|
|
|
def targeted_champ
|
|
Logic.from_json(params[:targeted_champ])
|
|
end
|
|
|
|
def operator_name
|
|
params[:operator_name]
|
|
end
|
|
|
|
def value
|
|
Logic.from_json(params[:value])
|
|
end
|
|
|
|
def groupe_instructeur
|
|
@groupe_instructeur ||= @procedure.groupe_instructeurs.find(groupe_instructeur_id)
|
|
end
|
|
|
|
def groupe_instructeur_id
|
|
params[:groupe_instructeur_id]
|
|
end
|
|
|
|
def defaut_groupe_instructeur_id
|
|
params[:defaut_groupe_instructeur_id]
|
|
end
|
|
end
|
|
end
|