demarches-normaliennes/app/controllers/administrateurs/routing_controller.rb

57 lines
1.2 KiB
Ruby
Raw Normal View History

2023-03-24 10:27:32 +01:00
module Administrateurs
class RoutingController < AdministrateurController
include Logic
before_action :retrieve_procedure
def update
left = targeted_champ
right = targeted_champ_changed? ? empty : value
2023-03-24 10:27:32 +01:00
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)
2023-03-24 10:27:32 +01:00
end
def update_defaut_groupe_instructeur
new_defaut = @procedure.groupe_instructeurs.find(defaut_groupe_instructeur_id)
@procedure.update!(defaut_groupe_instructeur: new_defaut)
end
2023-03-24 10:27:32 +01:00
private
def targeted_champ_changed?
targeted_champ != groupe_instructeur.routing_rule&.left
end
2023-03-24 10:27:32 +01:00
def targeted_champ
Logic.from_json(params[:targeted_champ])
2023-03-24 10:27:32 +01:00
end
def operator_name
params[:operator_name]
end
2023-03-24 10:27:32 +01:00
def value
Logic.from_json(params[:value])
2023-03-27 15:14:01 +02:00
end
def groupe_instructeur
@groupe_instructeur ||= @procedure.groupe_instructeurs.find(groupe_instructeur_id)
end
2023-03-24 10:27:32 +01:00
def groupe_instructeur_id
params[:groupe_instructeur_id]
2023-03-24 10:27:32 +01:00
end
def defaut_groupe_instructeur_id
params[:defaut_groupe_instructeur_id]
2023-03-24 10:27:32 +01:00
end
end
end