1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
class ScoresController < ApplicationController
allow_unauthenticated_access
before_action :set_tartiflette, only: [ :new, :create, :edit_all, :update_all ]
before_action :scores_params, only: [ :create, :update_all ]
def new
end
def create
if TartifletteScoringService.scored?(@tartiflette, session)
redirect_to root_path, alert: "Vous avez déja noté cette tartiflette."
return
end
TartifletteScoringService.submit_scores(@tartiflette, scores_params, session)
redirect_to root_path,
notice: "Vos scores pour la tartiflette #{@tartiflette.scoring_id} ont été enregistrés."
rescue StandardError => e
redirect_to root_path,
status: :unprocessable_entity,
alert: "Erreur lors de l'enregistrement de vos scores : #{e.message}"
end
def edit_all
@scores = @tartiflette.scores
end
def update_all
scores_params.each do |score_id, score_params|
score = @tartiflette.scores.find(score_id)
score.update!(value: score_params[:value])
end
redirect_to root_path,
notice: "Vos scores pour la tartiflette #{@tartiflette.scoring_id} ont été mis à jour."
rescue StandardError => e
redirect_to root_path,
alert: "Erreur lors de l'enregistrement de vos scores : #{e.message}"
end
private
def set_tartiflette
@tartiflette = Tartiflette.find(params[:tartiflette_id])
end
def scores_params
params.require(:scores).permit!.to_h
end
end
|