File tree Expand file tree Collapse file tree 2 files changed +13
-7
lines changed Expand file tree Collapse file tree 2 files changed +13
-7
lines changed Original file line number Diff line number Diff line change @@ -39,12 +39,17 @@ def max_intervention_count_per_exercise
39
39
end
40
40
41
41
def batch_update
42
- @exercises = Exercise . all
42
+ update_map = { }
43
+ update_params = params . permit ( exercises : %i[ id public ] )
44
+ update_params [ :exercises ] . each_value do |param |
45
+ update_map [ param [ :id ] ] = param [ :public ]
46
+ end
47
+
48
+ @exercises = Exercise . where ( id : update_map . keys ) . includes ( :execution_environment , :files )
43
49
authorize!
44
- @exercises = params [ :exercises ] . values . map do |exercise_params |
45
- exercise = Exercise . find ( exercise_params . delete ( :id ) )
46
- exercise . update ( exercise_params . permit ( :public ) )
47
- exercise
50
+
51
+ @exercises . each do |exercise |
52
+ exercise . update ( public : update_map [ exercise . id . to_s ] )
48
53
end
49
54
render ( json : { exercises : @exercises } )
50
55
end
Original file line number Diff line number Diff line change 14
14
end
15
15
16
16
describe 'PUT #batch_update' do
17
- let ( :attributes ) { ActionController ::Parameters . new ( public : 'true' ) . permit! }
18
- let ( :perform_request ) { proc { put :batch_update , params : { exercises : { 0 => attributes . merge ( id : exercise . id ) } } } }
17
+ let ( :attributes ) { { public : 'true' } }
18
+ let ( :params ) { ActionController ::Parameters . new ( public : 'true' ) . permit! }
19
+ let ( :perform_request ) { proc { put :batch_update , params : { exercises : { 0 => params . merge ( id : exercise . id ) } } } }
19
20
20
21
before { perform_request . call }
21
22
You can’t perform that action at this time.
0 commit comments