@@ -16,7 +16,11 @@ def task_type(task)
1616
1717 def update_user_progress ( task )
1818 finished_successfully = false
19- user = User . find ( task . user_id )
19+ user = User . find_by ( id : task . user_id )
20+ unless user
21+ Rails . logger . warn ( "KafkaUpdater#update_user_progress: missing user id=#{ task . user_id } task_id=#{ task . id } " )
22+ return true
23+ end
2024 course = Course . find ( task . course_id )
2125 Rails . logger . info ( "Publishing progress for user #{ user . id } with moocfi id: #{ course . moocfi_id } ." )
2226 if !course . moocfi_id || course . moocfi_id . blank?
@@ -69,6 +73,10 @@ def update_course_progress(task)
6973 available_points = AvailablePoint . course_sheet_points ( course , parts )
7074 points_per_user . each do |username , points_by_group |
7175 current_user = User . find_by ( login : username )
76+ unless current_user
77+ Rails . logger . warn ( "KafkaUpdater#update_course_progress: no user for login=#{ username . inspect } course_id=#{ course . id } " )
78+ next
79+ end
7280 Rails . logger . info ( "Publishing progress for user #{ current_user . id } " )
7381 progress = points_by_group . map do |group_name , awarded_points |
7482 max_points = available_points [ group_name ] || 0
@@ -98,8 +106,12 @@ def update_course_progress(task)
98106
99107 def update_user_points ( task )
100108 finished_successfully = false
109+ user = User . find_by ( id : task . user_id )
110+ unless user
111+ Rails . logger . warn ( "KafkaUpdater#update_user_points: missing user id=#{ task . user_id } task_id=#{ task . id } " )
112+ return true
113+ end
101114 course = Course . find ( task . course_id )
102- user = User . find ( task . user_id )
103115 Rails . logger . info ( "Publishing points for user #{ user . id } with moocfi id: #{ course . moocfi_id } ." )
104116 if !course . moocfi_id
105117 Rails . logger . error ( 'Cannot publish points because moocfi id is not specified. Removing extra task (this task never should have been created.)' )
@@ -142,6 +154,10 @@ def update_course_points(task)
142154 exercises = Exercise . where ( course_id : course . id ) . where ( disabled_status : 0 )
143155 points_per_user . each do |username , _points_by_group |
144156 current_user = User . find_by ( login : username )
157+ unless current_user
158+ Rails . logger . warn ( "KafkaUpdater#update_course_points: no user for login=#{ username . inspect } course_id=#{ course . id } " )
159+ next
160+ end
145161 Rails . logger . info ( "Publishing points for user #{ current_user . id } " )
146162 exercises_data = [ ]
147163 exercises . map do |exercise |
@@ -216,8 +232,12 @@ def update_exercises(task)
216232
217233 def update_user_course_points ( task )
218234 finished_successfully = false
235+ user = User . find_by ( id : task . user_id )
236+ unless user
237+ Rails . logger . warn ( "KafkaUpdater#update_user_course_points: missing user id=#{ task . user_id } task_id=#{ task . id } " )
238+ return true
239+ end
219240 course = Course . find ( task . course_id )
220- user = User . find ( task . user_id )
221241 Rails . logger . info ( "Publishing points for user #{ user . id } with moocfi id: #{ course . moocfi_id } ." )
222242 if !course . moocfi_id
223243 Rails . logger . error ( 'Cannot publish points because moocfi id is not specified' )
0 commit comments